镜像构建历史
# 2025-06-06 18:11:48 0.00B 设置默认要执行的命令
CMD ["/bin/bash" "-c" "! [[ -e \"${BASESYSTEM_IMAGE:-BaseSystem.img}\" ]] && printf '%s\\n' \"No BaseSystem.img available, downloading ${SHORTNAME}\" && make && qemu-img convert BaseSystem.dmg -O qcow2 -p -c ${BASESYSTEM_IMAGE:-BaseSystem.img} && rm ./BaseSystem.dmg ; sudo touch /dev/kvm /dev/snd \"${IMAGE_PATH}\" \"${BOOTDISK}\" \"${ENV}\" 2>/dev/null || true ; sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd \"${IMAGE_PATH}\" \"${BOOTDISK}\" \"${ENV}\" 2>/dev/null || true ; [[ \"${NOPICKER}\" == true ]] && { sed -i '/^.*InstallMedia.*/d' Launch.sh && export BOOTDISK=\"${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore-nopicker.qcow2}\" ; } || export BOOTDISK=\"${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}\" ; [[ \"${GENERATE_UNIQUE}\" == true ]] && { ./Docker-OSX/osx-serial-generator/generate-unique-machine-values.sh --master-plist-url=\"${MASTER_PLIST_URL}\" --count 1 --tsv ./serial.tsv --bootdisks --width \"${WIDTH:-1920}\" --height \"${HEIGHT:-1080}\" --output-bootdisk \"${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}\" --output-env \"${ENV:=/env}\" || exit 1 ; } ; [[ \"${GENERATE_SPECIFIC}\" == true ]] && { source \"${ENV:=/env}\" 2>/dev/null ; ./Docker-OSX/osx-serial-generator/generate-specific-bootdisk.sh --master-plist-url=\"${MASTER_PLIST_URL}\" --model \"${DEVICE_MODEL}\" --serial \"${SERIAL}\" --board-serial \"${BOARD_SERIAL}\" --uuid \"${UUID}\" --mac-address \"${MAC_ADDRESS}\" --width \"${WIDTH:-1920}\" --height \"${HEIGHT:-1080}\" --output-bootdisk \"${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}\" || exit 1 ; } ; ./enable-ssh.sh && /bin/bash -c ./Launch.sh"]
# 2025-06-06 18:11:48 0.00B 设置环境变量 BASESYSTEM_IMAGE
ENV BASESYSTEM_IMAGE=BaseSystem.img
# 2025-06-06 18:11:48 0.00B 设置环境变量 SHORTNAME
ENV SHORTNAME=sequoia
# 2025-06-06 18:11:48 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/tmp/.X11-unix]
# 2025-06-06 18:11:48 0.00B 设置环境变量 HEIGHT
ENV HEIGHT=1080
# 2025-06-06 18:11:48 0.00B 设置环境变量 WIDTH
ENV WIDTH=1920
# 2025-06-06 18:11:48 0.00B 设置环境变量 RAM
ENV RAM=4
# 2025-06-06 18:11:48 0.00B 设置环境变量 NOPICKER
ENV NOPICKER=false
# 2025-06-06 18:11:48 0.00B 设置环境变量 NETWORKING
ENV NETWORKING=vmxnet3
# 2025-06-06 18:11:48 0.00B 设置环境变量 MASTER_PLIST_URL
ENV MASTER_PLIST_URL=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist
# 2025-06-06 18:11:48 0.00B 设置环境变量 KVM
ENV KVM=accel=kvm:tcg
# 2025-06-06 18:11:48 0.00B 设置环境变量 IMAGE_FORMAT
ENV IMAGE_FORMAT=qcow2
# 2025-06-06 18:11:48 0.00B 设置环境变量 IMAGE_PATH
ENV IMAGE_PATH=/home/arch/OSX-KVM/mac_hdd_ng.img
# 2025-06-06 18:11:48 0.00B 设置环境变量 GENERATE_SPECIFIC
ENV GENERATE_SPECIFIC=false
# 2025-06-06 18:11:48 0.00B 设置环境变量 GENERATE_UNIQUE
ENV GENERATE_UNIQUE=false
# 2025-06-06 18:11:48 0.00B 设置环境变量 ENV
ENV ENV=/env
# 2025-06-06 18:11:48 0.00B 设置环境变量 DISPLAY
ENV DISPLAY=:0.0
# 2025-06-06 18:11:48 0.00B 设置环境变量 CPUID_FLAGS
ENV CPUID_FLAGS=vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check,
# 2025-06-06 18:11:48 0.00B 设置环境变量 CPU
ENV CPU=Penryn
# 2025-06-06 18:11:48 0.00B 设置环境变量 BOOTDISK
ENV BOOTDISK=
# 2025-06-06 18:11:48 0.00B 设置环境变量 BOOT_ARGS
ENV BOOT_ARGS=
# 2025-06-06 18:11:48 0.00B 设置环境变量 BASESYSTEM_FORMAT
ENV BASESYSTEM_FORMAT=qcow2
# 2025-06-06 18:11:48 0.00B 设置环境变量 ADDITIONAL_PORTS
ENV ADDITIONAL_PORTS=
# 2025-06-06 18:11:48 27.00B 执行命令并创建新的镜像层
RUN |20 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 SIGLEVEL=Never LINUX=true BRANCH=master REPO=https://github.com/sickcodes/Docker-OSX.git STOCK_DEVICE_MODEL=iMacPro1,1 STOCK_SERIAL=C02TM2ZBHX87 STOCK_BOARD_SERIAL=C02717306J9JG361M STOCK_UUID=007076A6-F2A2-4461-BBE5-BAD019F8025A STOCK_MAC_ADDRESS=00:0A:27:00:00:00 STOCK_WIDTH=1920 STOCK_HEIGHT=1080 STOCK_MASTER_PLIST_URL=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist STOCK_MASTER_PLIST_URL_NOPICKER=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-nopicker-custom.plist STOCK_BOOTDISK=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2 STOCK_BOOTDISK_NOPICKER=/home/arch/OSX-KVM/OpenCore/OpenCore-nopicker.qcow2 /bin/bash -c ln -s /home/arch/OSX-KVM/OpenCore /home/arch/OSX-KVM/OpenCore-Catalina || true # buildkit
# 2025-06-06 18:11:48 18.85MB 执行命令并创建新的镜像层
RUN |20 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 SIGLEVEL=Never LINUX=true BRANCH=master REPO=https://github.com/sickcodes/Docker-OSX.git STOCK_DEVICE_MODEL=iMacPro1,1 STOCK_SERIAL=C02TM2ZBHX87 STOCK_BOARD_SERIAL=C02717306J9JG361M STOCK_UUID=007076A6-F2A2-4461-BBE5-BAD019F8025A STOCK_MAC_ADDRESS=00:0A:27:00:00:00 STOCK_WIDTH=1920 STOCK_HEIGHT=1080 STOCK_MASTER_PLIST_URL=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist STOCK_MASTER_PLIST_URL_NOPICKER=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-nopicker-custom.plist STOCK_BOOTDISK=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2 STOCK_BOOTDISK_NOPICKER=/home/arch/OSX-KVM/OpenCore/OpenCore-nopicker.qcow2 /bin/bash -c ./Docker-OSX/osx-serial-generator/generate-specific-bootdisk.sh --master-plist-url="${STOCK_MASTER_PLIST_URL_NOPICKER}" --model "${STOCK_DEVICE_MODEL}" --serial "${STOCK_SERIAL}" --board-serial "${STOCK_BOARD_SERIAL}" --uuid "${STOCK_UUID}" --mac-address "${STOCK_MAC_ADDRESS}" --width "${STOCK_WIDTH}" --height "${STOCK_HEIGHT}" --output-bootdisk "${STOCK_BOOTDISK_NOPICKER}" || exit 1 ; rm -rf /var/tmp/.guestfs-* # buildkit
# 2025-06-06 18:11:11 35.56MB 执行命令并创建新的镜像层
RUN |20 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 SIGLEVEL=Never LINUX=true BRANCH=master REPO=https://github.com/sickcodes/Docker-OSX.git STOCK_DEVICE_MODEL=iMacPro1,1 STOCK_SERIAL=C02TM2ZBHX87 STOCK_BOARD_SERIAL=C02717306J9JG361M STOCK_UUID=007076A6-F2A2-4461-BBE5-BAD019F8025A STOCK_MAC_ADDRESS=00:0A:27:00:00:00 STOCK_WIDTH=1920 STOCK_HEIGHT=1080 STOCK_MASTER_PLIST_URL=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist STOCK_MASTER_PLIST_URL_NOPICKER=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-nopicker-custom.plist STOCK_BOOTDISK=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2 STOCK_BOOTDISK_NOPICKER=/home/arch/OSX-KVM/OpenCore/OpenCore-nopicker.qcow2 /bin/bash -c ./Docker-OSX/osx-serial-generator/generate-specific-bootdisk.sh --master-plist-url="${STOCK_MASTER_PLIST_URL}" --model "${STOCK_DEVICE_MODEL}" --serial "${STOCK_SERIAL}" --board-serial "${STOCK_BOARD_SERIAL}" --uuid "${STOCK_UUID}" --mac-address "${STOCK_MAC_ADDRESS}" --width "${STOCK_WIDTH}" --height "${STOCK_HEIGHT}" --output-bootdisk "${STOCK_BOOTDISK}" || exit 1 ; rm -rf /var/tmp/.guestfs-* # buildkit
# 2025-06-06 18:10:34 0.00B 定义构建参数
ARG STOCK_BOOTDISK_NOPICKER=/home/arch/OSX-KVM/OpenCore/OpenCore-nopicker.qcow2
# 2025-06-06 18:10:34 0.00B 定义构建参数
ARG STOCK_BOOTDISK=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2
# 2025-06-06 18:10:34 0.00B 定义构建参数
ARG STOCK_MASTER_PLIST_URL_NOPICKER=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-nopicker-custom.plist
# 2025-06-06 18:10:34 0.00B 定义构建参数
ARG STOCK_MASTER_PLIST_URL=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist
# 2025-06-06 18:10:34 0.00B 定义构建参数
ARG STOCK_HEIGHT=1080
# 2025-06-06 18:10:34 0.00B 定义构建参数
ARG STOCK_WIDTH=1920
# 2025-06-06 18:10:34 0.00B 定义构建参数
ARG STOCK_MAC_ADDRESS=00:0A:27:00:00:00
# 2025-06-06 18:10:34 0.00B 定义构建参数
ARG STOCK_UUID=007076A6-F2A2-4461-BBE5-BAD019F8025A
# 2025-06-06 18:10:34 0.00B 定义构建参数
ARG STOCK_BOARD_SERIAL=C02717306J9JG361M
# 2025-06-06 18:10:34 0.00B 定义构建参数
ARG STOCK_SERIAL=C02TM2ZBHX87
# 2025-06-06 18:10:34 0.00B 定义构建参数
ARG STOCK_DEVICE_MODEL=iMacPro1,1
# 2025-06-06 18:10:34 0.00B 设置环境变量 LIBGUESTFS_TRACE
ENV LIBGUESTFS_TRACE=1
# 2025-06-06 18:10:34 0.00B 设置环境变量 LIBGUESTFS_DEBUG
ENV LIBGUESTFS_DEBUG=1
# 2025-06-06 18:10:34 0.00B 设置环境变量 USER
ENV USER=arch
# 2025-06-06 18:10:34 0.00B 指定运行容器时使用的用户
USER arch
# 2025-06-06 18:10:34 1.78KB 执行命令并创建新的镜像层
RUN |9 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 SIGLEVEL=Never LINUX=true BRANCH=master REPO=https://github.com/sickcodes/Docker-OSX.git /bin/bash -c grep -v InstallMedia ./Launch.sh > ./Launch-nopicker.sh && chmod +x ./Launch-nopicker.sh && sed -i -e s/OpenCore\.qcow2/OpenCore\-nopicker\.qcow2/ ./Launch-nopicker.sh # buildkit
# 2025-06-06 18:10:34 1.93KB 执行命令并创建新的镜像层
RUN |9 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 SIGLEVEL=Never LINUX=true BRANCH=master REPO=https://github.com/sickcodes/Docker-OSX.git /bin/bash -c touch Launch.sh && chmod +x ./Launch.sh && tee -a Launch.sh <<< '#!/bin/bash' && tee -a Launch.sh <<< 'set -eux' && tee -a Launch.sh <<< 'sudo chown $(id -u):$(id -g) /dev/kvm 2>/dev/null || true' && tee -a Launch.sh <<< 'sudo chown -R $(id -u):$(id -g) /dev/snd 2>/dev/null || true' && tee -a Launch.sh <<< '[[ "${RAM}" = max ]] && export RAM="$(("$(head -n1 /proc/meminfo | tr -dc "[:digit:]") / 1000000"))"' && tee -a Launch.sh <<< '[[ "${RAM}" = half ]] && export RAM="$(("$(head -n1 /proc/meminfo | tr -dc "[:digit:]") / 2000000"))"' && tee -a Launch.sh <<< 'sudo chown -R $(id -u):$(id -g) /dev/snd 2>/dev/null || true' && tee -a Launch.sh <<< 'exec qemu-system-x86_64 -m ${RAM:-4}000 \' && tee -a Launch.sh <<< '-cpu ${CPU:-Penryn},${CPUID_FLAGS:-vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check,}${BOOT_ARGS} \' && tee -a Launch.sh <<< '-machine q35,${KVM-"accel=kvm:tcg"} \' && tee -a Launch.sh <<< '-smp ${CPU_STRING:-${SMP:-4},cores=${CORES:-4}} \' && tee -a Launch.sh <<< '-device qemu-xhci,id=xhci \' && tee -a Launch.sh <<< '-device usb-kbd,bus=xhci.0 -device usb-tablet,bus=xhci.0 \' && tee -a Launch.sh <<< '-device isa-applesmc,osk=ourhardworkbythesewordsguardedpleasedontsteal\(c\)AppleComputerInc \' && tee -a Launch.sh <<< '-drive if=pflash,format=raw,readonly=on,file=/home/arch/OSX-KVM/OVMF_CODE.fd \' && tee -a Launch.sh <<< '-drive if=pflash,format=raw,file=/home/arch/OSX-KVM/OVMF_VARS-1024x768.fd \' && tee -a Launch.sh <<< '-smbios type=2 \' && tee -a Launch.sh <<< '-audiodev ${AUDIO_DRIVER:-alsa},id=hda -device ich9-intel-hda -device hda-duplex,audiodev=hda \' && tee -a Launch.sh <<< '-device ich9-ahci,id=sata \' && tee -a Launch.sh <<< '-drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file=${BOOTDISK:-/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2} \' && tee -a Launch.sh <<< '-device ide-hd,bus=sata.2,drive=OpenCoreBoot \' && tee -a Launch.sh <<< '-device ide-hd,bus=sata.3,drive=InstallMedia \' && tee -a Launch.sh <<< '-drive id=InstallMedia,if=none,file=/home/arch/OSX-KVM/BaseSystem.img,format=${BASESYSTEM_FORMAT:-qcow2} \' && tee -a Launch.sh <<< '-drive id=MacHDD,if=none,file=${IMAGE_PATH:-/home/arch/OSX-KVM/mac_hdd_ng.img},format=${IMAGE_FORMAT:-qcow2} \' && tee -a Launch.sh <<< '-device ide-hd,bus=sata.4,drive=MacHDD \' && tee -a Launch.sh <<< '-netdev user,id=net0,hostfwd=tcp::${INTERNAL_SSH_PORT:-10022}-:22,hostfwd=tcp::${SCREEN_SHARE_PORT:-5900}-:5900,${ADDITIONAL_PORTS} \' && tee -a Launch.sh <<< '-device ${NETWORKING:-vmxnet3},netdev=net0,id=net0,mac=${MAC_ADDRESS:-52:54:00:09:49:17} \' && tee -a Launch.sh <<< '-monitor stdio \' && tee -a Launch.sh <<< '-boot menu=on \' && tee -a Launch.sh <<< '-vga vmware \' && tee -a Launch.sh <<< '${EXTRA:-}' # buildkit
# 2025-06-06 18:10:34 28.66MB 执行命令并创建新的镜像层
RUN |9 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 SIGLEVEL=Never LINUX=true BRANCH=master REPO=https://github.com/sickcodes/Docker-OSX.git /bin/bash -c git clone --recurse-submodules --depth 1 --branch "${BRANCH:=master}" "${REPO:=https://github.com/sickcodes/Docker-OSX.git}" # buildkit
# 2025-06-06 18:10:33 0.00B 定义构建参数
ARG REPO=https://github.com/sickcodes/Docker-OSX.git
# 2025-06-06 18:10:33 0.00B 定义构建参数
ARG BRANCH=master
# 2025-06-06 18:10:33 642.39MB 执行命令并创建新的镜像层
RUN |7 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 SIGLEVEL=Never LINUX=true /bin/bash -c if [[ "${LINUX}" == true ]]; then sudo pacman -Syu linux linux-headers archlinux-keyring guestfs-tools mkinitcpio pcre pcre2 --noconfirm && libguestfs-test-tool && rm -rf /var/tmp/.guestfs-* && yes | sudo pacman -Scc ; fi # buildkit
# 2025-06-06 18:09:25 0.00B 定义构建参数
ARG LINUX=true
# 2025-06-06 18:09:25 3.63KB 执行命令并创建新的镜像层
RUN |6 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 SIGLEVEL=Never /bin/bash -c sudo tee -a /etc/pacman.conf <<< "SigLevel = ${SIGLEVEL}" && sudo tee -a /etc/pacman.conf <<< 'RemoteFileSigLevel = Optional' && sudo sed -i -e 's/^\#RemoteFileSigLevel/RemoteFileSigLevel/g' /etc/pacman.conf # buildkit
# 2025-06-06 18:09:25 0.00B 定义构建参数
ARG SIGLEVEL=Never
# 2025-06-06 18:09:25 0.00B 设置工作目录为/home/arch/OSX-KVM
WORKDIR /home/arch/OSX-KVM
# 2025-06-06 18:09:25 737.63MB 执行命令并创建新的镜像层
RUN |5 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 /bin/bash -c yes | sudo pacman -Syu bc qemu-desktop libvirt dnsmasq virt-manager bridge-utils openresolv jack2 ebtables edk2-ovmf netctl libvirt-dbus wget scrot --overwrite --noconfirm && yes | sudo pacman -Scc # buildkit
# 2025-06-06 18:08:59 186.00B 执行命令并创建新的镜像层
RUN |5 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 /bin/bash -c touch enable-ssh.sh && chmod +x ./enable-ssh.sh && tee -a enable-ssh.sh <<< '[[ -f /etc/ssh/ssh_host_rsa_key ]] || \' && tee -a enable-ssh.sh <<< '[[ -f /etc/ssh/ssh_host_ed25519_key ]] || \' && tee -a enable-ssh.sh <<< '[[ -f /etc/ssh/ssh_host_ed25519_key ]] || \' && tee -a enable-ssh.sh <<< 'sudo /usr/bin/ssh-keygen -A' && tee -a enable-ssh.sh <<< 'nohup sudo /usr/bin/sshd -D &' # buildkit
# 2025-06-06 18:08:59 0.00B 设置工作目录为/home/arch/OSX-KVM
WORKDIR /home/arch/OSX-KVM
# 2025-06-06 18:08:59 0.00B 指定运行容器时使用的用户
USER arch
# 2025-06-06 18:08:59 157.79MB 执行命令并创建新的镜像层
RUN |5 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 /bin/bash -c git clone --recurse-submodules --depth 1 https://github.com/kholia/OSX-KVM.git /home/arch/OSX-KVM # buildkit
# 2025-06-06 18:08:55 0.00B 指定运行容器时使用的用户
USER arch
# 2025-06-06 18:08:55 3.55KB 执行命令并创建新的镜像层
RUN |5 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 /bin/bash -c tee -a sshd_config <<< 'AllowTcpForwarding yes' && tee -a sshd_config <<< 'PermitTunnel yes' && tee -a sshd_config <<< 'X11Forwarding yes' && tee -a sshd_config <<< 'PasswordAuthentication yes' && tee -a sshd_config <<< 'PermitRootLogin yes' && tee -a sshd_config <<< 'PubkeyAuthentication yes' && tee -a sshd_config <<< 'HostKey /etc/ssh/ssh_host_rsa_key' && tee -a sshd_config <<< 'HostKey /etc/ssh/ssh_host_ecdsa_key' && tee -a sshd_config <<< 'HostKey /etc/ssh/ssh_host_ed25519_key' # buildkit
# 2025-06-06 18:08:55 0.00B 设置工作目录为/etc/ssh
WORKDIR /etc/ssh
# 2025-06-06 18:08:55 0.00B 执行命令并创建新的镜像层
RUN |5 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 /bin/bash -c touch authorized_keys && chmod 644 authorized_keys # buildkit
# 2025-06-06 18:08:55 0.00B 设置工作目录为/root/.ssh
WORKDIR /root/.ssh
# 2025-06-06 18:08:55 0.00B 执行命令并创建新的镜像层
RUN |5 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 /bin/bash -c mkdir -p -m 700 /root/.ssh # buildkit
# 2025-06-06 18:08:55 126.20MB 执行命令并创建新的镜像层
RUN |5 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 /bin/bash -c pacman -Syu git zip vim nano alsa-utils openssh --noconfirm && ln -s /bin/vim /bin/vi && useradd arch -p arch && tee -a /etc/sudoers <<< 'arch ALL=(ALL) NOPASSWD: ALL' && mkdir -p /home/arch && chown arch:arch /home/arch # buildkit
# 2025-06-06 18:08:49 322.00B 执行命令并创建新的镜像层
RUN |5 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 /bin/bash -c tee -a /etc/pacman.d/gnupg/gpg.conf <<< 'keyserver hkp://keyserver.ubuntu.com' && tee -a /etc/pacman.d/gnupg/gpg.conf <<< 'keyserver hkps://hkps.pool.sks-keyservers.net:443' && tee -a /etc/pacman.d/gnupg/gpg.conf <<< 'keyserver hkp://pgp.mit.edu:11371' && tee -a /etc/pacman.d/gnupg/gpg.conf <<< 'keyserver hkps://keys.openpgp.org' && tee -a /etc/pacman.d/gnupg/gpg.conf <<< 'keyserver hkps://keys.mailvelope.com' # buildkit
# 2025-06-06 18:08:49 0.00B 执行命令并创建新的镜像层
RUN |5 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 /bin/bash -c if [[ "${RANKMIRRORS}" ]]; then { pacman -Sy wget --noconfirm || pacman -Syu wget --noconfirm ; } ; wget -O ./rankmirrors "https://raw.githubusercontent.com/sickcodes/Docker-OSX/${BRANCH:=master}/rankmirrors" ; wget -O- "https://www.archlinux.org/mirrorlist/?country=${MIRROR_COUNTRY:-US}&protocol=https&use_mirror_status=on" | sed -e 's/^#Server/Server/' -e '/^#/d' | head -n "$((${MIRROR_COUNT:-10}+1))" | bash ./rankmirrors --verbose --max-time 5 - > /etc/pacman.d/mirrorlist && cat /etc/pacman.d/mirrorlist ; fi # buildkit
# 2025-06-06 18:08:49 12.29MB 执行命令并创建新的镜像层
RUN |5 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 /bin/bash -c pacman -Sy archlinux-keyring --noconfirm && rm -rf /etc/pacman.d/gnupg && pacman-key --init && pacman-key --populate archlinux # buildkit
# 2025-06-06 18:08:34 181.00B 执行命令并创建新的镜像层
RUN |5 SIZE=200G PARALLEL_DOWNLOADS=30 RANKMIRRORS= MIRROR_COUNTRY=US MIRROR_COUNT=10 /bin/bash -c tee /etc/pacman.d/mirrorlist <<< 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch' && tee -a /etc/pacman.d/mirrorlist <<< 'Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch' && tee -a /etc/pacman.d/mirrorlist <<< 'Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch' # buildkit
# 2025-06-06 18:08:34 0.00B 定义构建参数
ARG MIRROR_COUNT=10
# 2025-06-06 18:08:34 0.00B 定义构建参数
ARG MIRROR_COUNTRY=US
# 2025-06-06 18:08:34 0.00B 定义构建参数
ARG RANKMIRRORS
# 2025-06-06 18:08:34 3.58KB 执行命令并创建新的镜像层
RUN |2 SIZE=200G PARALLEL_DOWNLOADS=30 /bin/bash -c perl -i -p -e s/^\#Color/Color$'\n'ParallelDownloads\ =\ ${PARALLEL_DOWNLOADS:=30}/g /etc/pacman.conf # buildkit
# 2025-06-06 18:08:34 0.00B 定义构建参数
ARG PARALLEL_DOWNLOADS=30
# 2025-06-06 18:08:34 0.00B 定义构建参数
ARG SIZE=200G
# 2025-06-06 18:08:34 0.00B
SHELL [/bin/bash -c]
# 2025-06-06 18:08:34 0.00B 添加元数据标签
LABEL maintainer=https://twitter.com/sickcodes <https://sick.codes>
# 2025-06-01 08:08:08 0.00B 设置默认要执行的命令
CMD ["/usr/bin/bash"]
# 2025-06-01 08:08:08 0.00B 设置环境变量 LANG
ENV LANG=C.UTF-8
# 2025-06-01 08:08:08 36.78KB 执行命令并创建新的镜像层
RUN /bin/sh -c ldconfig && sed -i '/BUILD_ID/a VERSION_ID=20250601.0.358000' /etc/os-release # buildkit
# 2025-06-01 08:08:08 879.86MB 复制新文件或目录到容器中
COPY /rootfs/ / # buildkit
# 2025-06-01 08:08:08 0.00B 添加元数据标签
LABEL org.opencontainers.image.created=2025-06-01T00:08:08+00:00
# 2025-06-01 08:08:08 0.00B 添加元数据标签
LABEL org.opencontainers.image.revision=ae0527df18a9c5b94b28351b2265a20012d2fda0
# 2025-06-01 08:08:08 0.00B 添加元数据标签
LABEL org.opencontainers.image.version=20250601.0.358000
# 2025-06-01 08:08:08 0.00B 添加元数据标签
LABEL org.opencontainers.image.licenses=GPL-3.0-or-later
# 2025-06-01 08:08:08 0.00B 添加元数据标签
LABEL org.opencontainers.image.source=https://gitlab.archlinux.org/archlinux/archlinux-docker
# 2025-06-01 08:08:08 0.00B 添加元数据标签
LABEL org.opencontainers.image.documentation=https://wiki.archlinux.org/title/Docker#Arch_Linux
# 2025-06-01 08:08:08 0.00B 添加元数据标签
LABEL org.opencontainers.image.url=https://gitlab.archlinux.org/archlinux/archlinux-docker/-/blob/master/README.md
# 2025-06-01 08:08:08 0.00B 添加元数据标签
LABEL org.opencontainers.image.authors=Santiago Torres-Arias <santiago@archlinux.org> (@SantiagoTorres), Christian Rebischke <Chris.Rebischke@archlinux.org> (@shibumi), Justin Kromlinger <hashworks@archlinux.org> (@hashworks)
# 2025-06-01 08:08:08 0.00B 添加元数据标签
LABEL org.opencontainers.image.description=Official containerd image of Arch Linux, a simple, lightweight Linux distribution aimed for flexibility.
# 2025-06-01 08:08:08 0.00B 添加元数据标签
LABEL org.opencontainers.image.title=Arch Linux base-devel Image
镜像信息
{
"Id": "sha256:d21f6e2bc79e69cfb37fb704d52b31ea8e9cf5436e6a246f7ccd304a4e6e2d9d",
"RepoTags": [
"sickcodes/docker-osx:latest",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/sickcodes/docker-osx:latest"
],
"RepoDigests": [
"sickcodes/docker-osx@sha256:d5ef4096ed66499df3841a06fec3bd310c23b34478f2553302a1ac5db61c766f",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/sickcodes/docker-osx@sha256:d5ef4096ed66499df3841a06fec3bd310c23b34478f2553302a1ac5db61c766f"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-06-06T10:11:48.611974008Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "arch",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=C.UTF-8",
"USER=arch",
"LIBGUESTFS_DEBUG=1",
"LIBGUESTFS_TRACE=1",
"ADDITIONAL_PORTS=",
"BASESYSTEM_FORMAT=qcow2",
"BOOT_ARGS=",
"BOOTDISK=",
"CPU=Penryn",
"CPUID_FLAGS=vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check,",
"DISPLAY=:0.0",
"ENV=/env",
"GENERATE_UNIQUE=false",
"GENERATE_SPECIFIC=false",
"IMAGE_PATH=/home/arch/OSX-KVM/mac_hdd_ng.img",
"IMAGE_FORMAT=qcow2",
"KVM=accel=kvm:tcg",
"MASTER_PLIST_URL=https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist",
"NETWORKING=vmxnet3",
"NOPICKER=false",
"RAM=4",
"WIDTH=1920",
"HEIGHT=1080",
"SHORTNAME=sequoia",
"BASESYSTEM_IMAGE=BaseSystem.img"
],
"Cmd": [
"/bin/bash",
"-c",
"! [[ -e \"${BASESYSTEM_IMAGE:-BaseSystem.img}\" ]] \u0026\u0026 printf '%s\\n' \"No BaseSystem.img available, downloading ${SHORTNAME}\" \u0026\u0026 make \u0026\u0026 qemu-img convert BaseSystem.dmg -O qcow2 -p -c ${BASESYSTEM_IMAGE:-BaseSystem.img} \u0026\u0026 rm ./BaseSystem.dmg ; sudo touch /dev/kvm /dev/snd \"${IMAGE_PATH}\" \"${BOOTDISK}\" \"${ENV}\" 2\u003e/dev/null || true ; sudo chown -R $(id -u):$(id -g) /dev/kvm /dev/snd \"${IMAGE_PATH}\" \"${BOOTDISK}\" \"${ENV}\" 2\u003e/dev/null || true ; [[ \"${NOPICKER}\" == true ]] \u0026\u0026 { sed -i '/^.*InstallMedia.*/d' Launch.sh \u0026\u0026 export BOOTDISK=\"${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore-nopicker.qcow2}\" ; } || export BOOTDISK=\"${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}\" ; [[ \"${GENERATE_UNIQUE}\" == true ]] \u0026\u0026 { ./Docker-OSX/osx-serial-generator/generate-unique-machine-values.sh --master-plist-url=\"${MASTER_PLIST_URL}\" --count 1 --tsv ./serial.tsv --bootdisks --width \"${WIDTH:-1920}\" --height \"${HEIGHT:-1080}\" --output-bootdisk \"${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}\" --output-env \"${ENV:=/env}\" || exit 1 ; } ; [[ \"${GENERATE_SPECIFIC}\" == true ]] \u0026\u0026 { source \"${ENV:=/env}\" 2\u003e/dev/null ; ./Docker-OSX/osx-serial-generator/generate-specific-bootdisk.sh --master-plist-url=\"${MASTER_PLIST_URL}\" --model \"${DEVICE_MODEL}\" --serial \"${SERIAL}\" --board-serial \"${BOARD_SERIAL}\" --uuid \"${UUID}\" --mac-address \"${MAC_ADDRESS}\" --width \"${WIDTH:-1920}\" --height \"${HEIGHT:-1080}\" --output-bootdisk \"${BOOTDISK:=/home/arch/OSX-KVM/OpenCore/OpenCore.qcow2}\" || exit 1 ; } ; ./enable-ssh.sh \u0026\u0026 /bin/bash -c ./Launch.sh"
],
"ArgsEscaped": true,
"Image": "",
"Volumes": {
"/tmp/.X11-unix": {}
},
"WorkingDir": "/home/arch/OSX-KVM",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"dockerfile-path": "Dockerfile",
"maintainer": "https://twitter.com/sickcodes \u003chttps://sick.codes\u003e",
"org.opencontainers.image.authors": "Santiago Torres-Arias \u003csantiago@archlinux.org\u003e (@SantiagoTorres), Christian Rebischke \u003cChris.Rebischke@archlinux.org\u003e (@shibumi), Justin Kromlinger \u003chashworks@archlinux.org\u003e (@hashworks)",
"org.opencontainers.image.created": "2025-06-01T00:08:08+00:00",
"org.opencontainers.image.description": "Official containerd image of Arch Linux, a simple, lightweight Linux distribution aimed for flexibility.",
"org.opencontainers.image.documentation": "https://wiki.archlinux.org/title/Docker#Arch_Linux",
"org.opencontainers.image.licenses": "GPL-3.0-or-later",
"org.opencontainers.image.revision": "ae0527df18a9c5b94b28351b2265a20012d2fda0",
"org.opencontainers.image.source": "https://gitlab.archlinux.org/archlinux/archlinux-docker",
"org.opencontainers.image.title": "Arch Linux base-devel Image",
"org.opencontainers.image.url": "https://gitlab.archlinux.org/archlinux/archlinux-docker/-/blob/master/README.md",
"org.opencontainers.image.version": "20250601.0.358000"
},
"Shell": [
"/bin/bash",
"-c"
]
},
"Architecture": "amd64",
"Os": "linux",
"Size": 2639283490,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/2fd3432acc2efc91e26c5a06d7889752110668b65d5c937eeb351ba4a7aebefa/diff:/var/lib/docker/overlay2/c10fc06cf4c1b5d5e71b5784104298d993a6efdd8cd7c75caf4dd46f937d1379/diff:/var/lib/docker/overlay2/4406b634d52c08c9ec84aa03f310bd2a0b2448e7390402e72c6bf8619d25dc80/diff:/var/lib/docker/overlay2/5ead177a28646689f1018ac73fd79161a03a64cdc228e299c7c00aa2aa1ca4de/diff:/var/lib/docker/overlay2/d31766a55e35aa3d64d07245bca7c0197721ea76385c979c2742e04d9eaea469/diff:/var/lib/docker/overlay2/d73a17568fcffd8c9a9dccb544bd03bbc85c5e60323bfa7be3955a18e1a3725b/diff:/var/lib/docker/overlay2/75a0d528fc5bffc9270e8cd819ce6fa6f7eb6c71d357290446c5fb4b6f93106e/diff:/var/lib/docker/overlay2/5ff92dd9dd58692d8166c2bf3ca47cde4ced6b6d47abef0e09d0432d062b9c60/diff:/var/lib/docker/overlay2/9e90d71299edec807e4eed4a3f2af0bd372b08586b45032a94b5ce2aaa1c0ad3/diff:/var/lib/docker/overlay2/b4db3fdfe0a010f01416543086bf9780c5162ac992254f663c30205a1187335c/diff:/var/lib/docker/overlay2/dd138ad91f9259477eade82d47b1530a5c1c64e4bbdce41a2f9fc310d032c460/diff:/var/lib/docker/overlay2/c960c127ead99f54753ec76f20be44fd1c221e08fe0d81bbec15adec15d5a5e6/diff:/var/lib/docker/overlay2/9c959264b9379e36ccc8dbacfe0a0e5204bb573333cf8cbdb81e2d282171b041/diff:/var/lib/docker/overlay2/79f052298232cf9ddc0df364ceaf87412b9d33f89b8660ae0d624aba575ec5cb/diff:/var/lib/docker/overlay2/e1a1bee89561db2620f43d2ef9244e9460541c5460e0952d8ddb4f65ed56c772/diff:/var/lib/docker/overlay2/da508a98e830da86e92cf7a0294e20905f40832ea3b66d7b20d731be845ab765/diff:/var/lib/docker/overlay2/22c0c1a178fd2cf820a0a7d0fc4a19d74a8dd407918becf69a7e3433c348b7b4/diff:/var/lib/docker/overlay2/d66d485e37cbcdffeb85ea346d0cbfa365c3b13a2c5a38a79b9725b40cb094c3/diff:/var/lib/docker/overlay2/bbbe9d786535b8dcfadb968351cf61b9f8624e459fca3a88265b552048fa783a/diff:/var/lib/docker/overlay2/d4f778045f013a7247fdcb5f20baca478db633546fa78be7c7e50bff17bda59f/diff:/var/lib/docker/overlay2/94003a5b457c919a28c649ab5ca28ea0851a053623e9f0c601a92a69fa118c95/diff:/var/lib/docker/overlay2/64ffa47311e75105c4aa2355ca745dcd744991ba21ee9af4f2647d641d081266/diff:/var/lib/docker/overlay2/f083ac9f3e957c7f69bf02db05305a789cc9c0ed599719cb48fd470345df1c01/diff:/var/lib/docker/overlay2/90306d89fa37e594df0ec4add1e28cd160a5c3c5084d10423bfba88575cb5260/diff:/var/lib/docker/overlay2/c03da9f926615dc1b9efaef5fa3df159e4cbc5520b0e054e6107d72253c3e32b/diff",
"MergedDir": "/var/lib/docker/overlay2/5430112909bf3c918fe8cce52838557d3b581ee5840fbba1724a3f27f91afd90/merged",
"UpperDir": "/var/lib/docker/overlay2/5430112909bf3c918fe8cce52838557d3b581ee5840fbba1724a3f27f91afd90/diff",
"WorkDir": "/var/lib/docker/overlay2/5430112909bf3c918fe8cce52838557d3b581ee5840fbba1724a3f27f91afd90/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:c8d2cf01b534a52a033a69f834ba8fe00db7be98201e4132ca2f2d7acb37a6cd",
"sha256:0b71762e9ecbe01a706e2b98be30baf609094e8dea40ace85023d4c9df639228",
"sha256:e6e529706fa9ac7c4030ce5499ef2aada80ca5d76e089a7cba870e1ff966d639",
"sha256:a539ff0303cb4fb6df8c87858a7f57a500a9e10bc067354eba9f440e7257d562",
"sha256:bfac55f85112f305e68b943e062ee4b50b51a095af357217fc28af7950c0dfe8",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:1ce986d762de9550f2d1fa259e6e7a7f5fe4b3a52bb0b0399e624c0f1834703e",
"sha256:16b3f91291cc9ea1e5ac5c9ef5719f566d279f73565ba33ef11b49ccd8f6e967",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:3bedd92d0920167f487129d9c299762f321d5aeb901651b3896882382af8cc9e",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:3718969811a2ac1f4e8f1cd0ac9c15599fe55a2a6f7ab69f32fad660e60778f9",
"sha256:0b227821be5356e0ad2752ffed324b8584fb6c551fcf2162f117d91e9f1b209f",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:0af22532d0940daf44aa1a35e92149e106376eb6367fb6dbb24ca1df6c3fdc63",
"sha256:3716ce9cc4ab7cb913d6ded25c8c4382b561941930a891a5dbf4d38b939a3e06",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:f284803d3206bf96863a8e82ec7e7b50f1d205b79772803484292289e458bfca",
"sha256:060625b1df0e0bb49232ca5a1266b497c534ae14dfd58fe6a0e45c16495e8813",
"sha256:04ebcae97d5cfac0f50c3e40f8d8dfb1367ca60a19609fd838e25a89bc249f4a",
"sha256:a7916b4f96980b69a5a4562613f1fd980ac030f26e7e8389f819d6cedb453f0e",
"sha256:92199f940e65f8e29647997e3ee6abf5a323945a8e3ef7709bd174932bcd057d",
"sha256:48160e211a2fab4f9aa8a800c8b25952320a51dfc87cd48e9a5c3a57445d0423",
"sha256:03f4d79b6e4de0028a19a5d12ed800524a20589b75296f9c029de59daffed2ee",
"sha256:be00881e1adc838437877a771d1d58e86cda3d6e6de261494696d3a504795d6d"
]
},
"Metadata": {
"LastTagTime": "2025-07-12T15:27:07.094299463+08:00"
}
}