mirror of
https://github.com/dockur/macos.git
synced 2026-10-12 02:13:08 +00:00
91 lines
2.9 KiB
Docker
91 lines
2.9 KiB
Docker
# syntax=docker/dockerfile:1.19
|
|
|
|
FROM scratch AS base
|
|
COPY --from=qemux/qemu:7.50 --exclude=usr/bin/qemu-system-x86_64 / /
|
|
|
|
ARG VERSION_ARG="0.0"
|
|
ARG VERSION_VM_HIDE="2.0.0"
|
|
ARG VERSION_OPENCORE="1.0.7"
|
|
ARG VERSION_KVM_OPENCORE="0.7"
|
|
ARG VERSION_OSX_KVM="326053dd61f49375d5dfb28ee715d38b04b5cd8e"
|
|
|
|
ARG REPO_OPENCORE="https://github.com/acidanthera/OpenCorePkg"
|
|
ARG REPO_VM_HIDE="https://github.com/Carnations-Botanica/VMHide"
|
|
ARG REPO_KVM_OPENCORE="https://github.com/LongQT-sea/OpenCore-ISO"
|
|
ARG REPO_OSX_KVM="https://raw.githubusercontent.com/kholia/OSX-KVM"
|
|
|
|
ARG DEBCONF_NOWARNINGS="yes"
|
|
ARG DEBIAN_FRONTEND="noninteractive"
|
|
ARG DEBCONF_NONINTERACTIVE_SEEN="true"
|
|
|
|
RUN <<EOF
|
|
set -eu
|
|
|
|
apt-get update
|
|
apt-get --no-install-recommends -y install \
|
|
xar \
|
|
cpio \
|
|
gzip \
|
|
mtools \
|
|
libbz2-1.0 \
|
|
xmlstarlet \
|
|
spirv-tools \
|
|
vulkan-tools
|
|
|
|
apt-get clean
|
|
|
|
# Keep matching official RELEASE and DEBUG EFI trees so runtime can switch
|
|
# between normal booting and OpenCore diagnostics without another image build.
|
|
for build in RELEASE DEBUG; do
|
|
flavour=$(printf '%s' "$build" | tr '[:upper:]' '[:lower:]')
|
|
archive="/tmp/opencore-$flavour.zip"
|
|
extract="/tmp/opencore-$flavour"
|
|
|
|
wget "$REPO_OPENCORE/releases/download/$VERSION_OPENCORE/OpenCore-$VERSION_OPENCORE-$build.zip" \
|
|
-O "$archive" -q --timeout=30
|
|
|
|
unzip -q "$archive" 'X64/EFI/*' -d "$extract"
|
|
mkdir -p "/opencore/$flavour"
|
|
cp -a "$extract/X64/EFI" "/opencore/$flavour/EFI"
|
|
|
|
[ -s "/opencore/$flavour/EFI/BOOT/BOOTx64.efi" ]
|
|
[ -s "/opencore/$flavour/EFI/OC/OpenCore.efi" ]
|
|
done
|
|
|
|
# Extract macserial from the matching official release.
|
|
unzip -p /tmp/opencore-release.zip Utilities/macserial/macserial.linux > /usr/local/bin/macserial
|
|
chmod 755 /usr/local/bin/macserial
|
|
printf '%s\n' "$VERSION_OPENCORE" > /opencore/version
|
|
|
|
# Set version file
|
|
echo "$VERSION_ARG" > /etc/version
|
|
|
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
EOF
|
|
|
|
COPY --chmod=755 ./src /run/
|
|
COPY --chmod=755 ./assets /assets/
|
|
COPY --from=qemux/qemu-macos:latest /usr/bin/qemu-system-x86_64 /usr/bin/
|
|
COPY --from=qemux/qemu-macos:latest /usr/share/qemu/reims-vgpu-gop.rom /usr/share/qemu/
|
|
|
|
ADD --chmod=755 https://github.com/qemus/qemu-macos/releases/latest/download/air-dis /usr/local/bin/air-dis
|
|
|
|
ADD --chmod=644 \
|
|
$REPO_OSX_KVM/$VERSION_OSX_KVM/OVMF_CODE.fd \
|
|
$REPO_OSX_KVM/$VERSION_OSX_KVM/OVMF_VARS.fd \
|
|
$REPO_OSX_KVM/$VERSION_OSX_KVM/OVMF_VARS-1024x768.fd \
|
|
$REPO_OSX_KVM/$VERSION_OSX_KVM/OVMF_VARS-1920x1080.fd /usr/share/OVMF/
|
|
|
|
ADD $REPO_VM_HIDE/releases/download/$VERSION_VM_HIDE/VMHide-$VERSION_VM_HIDE-RELEASE.zip /vmh.zip
|
|
ADD $REPO_KVM_OPENCORE/releases/download/v$VERSION_KVM_OPENCORE/LongQT-OpenCore-v$VERSION_KVM_OPENCORE.iso /opencore.iso
|
|
|
|
VOLUME /storage
|
|
EXPOSE 22 5900 8006
|
|
|
|
ENV VERSION="14"
|
|
ENV RAM_SIZE="4G"
|
|
ENV CPU_CORES="2"
|
|
ENV DISK_SIZE="64G"
|
|
|
|
ENTRYPOINT ["/usr/bin/tini", "-s", "/run/entry.sh"]
|