2024-11-13 07:12:13 UTC
254 MB
A035C8C19219BA821ECEA86B64E628F8D684696D
LANGC.UTF-8
PATH/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PYTHON_SHA25607a4356e912900e61a15cb0949a06c4a05012e213ecd6b4e84d0f67aabbee372
PYTHON_VERSION3.11.10
[#000] sha256:2d429b9e73a6cf90a5bb85105c8118b30a1b2deedeae3ea9587055ffcb80eb45 - 10.93% (27.8 MB)
[#001] sha256:14dbff54af923889a0e26a829553caa713f43c3b921620fd2d5db341386ecfb2 - 1.32% (3.35 MB)
[#002] sha256:71ba669986f7c60a5e178baa52bc67b3821d038c49d6bf03741d3fd43edd4e84 - 6.08% (15.5 MB)
[#003] sha256:173289c0cbe5b5760030dda93a84319ef683a489a0b33b176284679a3ab27be1 - 0.0% (250 Bytes)
[#004] sha256:a28e258672a1728ed200feb95b65516c199d661bed4ecfb3549f828daa9c0cce - 4.12% (10.5 MB)
[#005] sha256:e0823d59e95869ae98f7f02019180f7185e1d3e13d2980f69c568ecd1821a7a1 - 0.0% (667 Bytes)
[#006] sha256:f728bc82281af6fdd8ebe022efc43372a4a2dda6b70990faf270166811629a3e - 0.0% (94 Bytes)
[#007] sha256:ff1bf9750c07222239d3c9b6da14b517419101127aae73ff046e8e63af9e60dc - 77.56% (197 MB)
ADD rootfs.tar.xz / # buildkit
2024-10-18 23:23:40 UTC (buildkit.dockerfile.v0)CMD ["bash"]
2024-10-18 23:23:40 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2024-10-18 23:23:40 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2024-10-18 23:23:40 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; rm -rf /var/lib/apt/lists/* # buildkit
2024-10-18 23:23:40 UTC (buildkit.dockerfile.v0)ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D
2024-10-18 23:23:40 UTC (buildkit.dockerfile.v0)ENV PYTHON_VERSION=3.11.10
2024-10-18 23:23:40 UTC (buildkit.dockerfile.v0)ENV PYTHON_SHA256=07a4356e912900e61a15cb0949a06c4a05012e213ecd6b4e84d0f67aabbee372
2024-10-18 23:23:40 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev gcc gnupg libbluetooth-dev libbz2-dev libc6-dev libdb-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev make tk-dev uuid-dev wget xz-utils zlib1g-dev ; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; gpg --batch --verify python.tar.xz.asc python.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME" python.tar.xz.asc; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-optimizations --enable-option-checking=fatal --enable-shared --with-lto --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:--Wl},--strip-all"; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:--Wl},-rpath='\$\$ORIGIN/../lib'" python ; make install; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; ldconfig; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 install --disable-pip-version-check --no-cache-dir --no-compile 'setuptools==65.5.1' wheel ; pip3 --version # buildkit
2024-10-18 23:23:40 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit
2024-10-18 23:23:40 UTC (buildkit.dockerfile.v0)CMD ["python3"]
2024-11-13 07:10:05 UTC (buildkit.dockerfile.v0)ARG MCDR_VERSION_REQUIREMENT=2.14.0a3
2024-11-13 07:10:05 UTC (buildkit.dockerfile.v0)ARG PYPI_INDEX=https://pypi.org/simple
2024-11-13 07:10:05 UTC (buildkit.dockerfile.v0)RUN |2 MCDR_VERSION_REQUIREMENT=2.14.0a3 PYPI_INDEX=https://pypi.org/simple /bin/sh -c set -eux export PIP_ROOT_USER_ACTION=ignore python3 -m pip install -U pip if [ "$MCDR_VERSION_REQUIREMENT" = "latest" ]; then pip3 install mcdreforged else pip3 install "mcdreforged==${MCDR_VERSION_REQUIREMENT}" -i "$PYPI_INDEX" --extra-index-url https://pypi.org/simple fi pip3 cache purge && rm -rf ~/.cache/ # buildkit
2024-11-13 07:10:05 UTC (buildkit.dockerfile.v0)RUN |2 MCDR_VERSION_REQUIREMENT=2.14.0a3 PYPI_INDEX=https://pypi.org/simple /bin/sh -c set -eux mkdir -p "$(python3 -m site --user-site)" cat <<EOF > /etc/pip.conf [global] user = true EOF cat <<EOF >> ~/.bashrc # Add Python user bin to PATH export PATH="\$PATH:$(python3 -m site --user-base)/bin" EOF # buildkit
2024-11-13 07:10:05 UTC (buildkit.dockerfile.v0)WORKDIR /mcdr
2024-11-13 07:10:05 UTC (buildkit.dockerfile.v0)CMD ["python3" "-m" "mcdreforged" "start" "--auto-init"]
2024-11-13 07:12:13 UTC (buildkit.dockerfile.v0)ARG JAVA=17
2024-11-13 07:12:13 UTC (buildkit.dockerfile.v0)RUN |1 JAVA=17 /bin/sh -c set -eux export DEBIAN_FRONTEND="noninteractive" apt-get update apt-get install -y gnupg ca-certificates curl curl -so- https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor -o /etc/apt/trusted.gpg.d/adoptium.gpg echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list apt-get update # The temurin source is currently very unstable, add more retries for it # https://github.com/adoptium/adoptium-support/issues/554 # https://github.com/adoptium/installer/issues/766 set +e wait_times="1 3 5 5 5 5 5 5 5" attempts=$(echo "$wait_times" | awk '{print NF}') # 9 attempts for attempt in $(seq 1 $attempts); do if apt-get install -y "temurin-${JAVA}-jdk"; then break fi if [ "$attempt" != "$attempts" ]; then wait_time=$(echo "$wait_times" | cut -d ' ' -f $attempt) echo "Install attempt #$attempt failed. Waiting ${wait_time} minutes for another attempt..." sleep $((wait_time * 60)) else echo "All $attempts attempts failed" exit 1 fi done set -e java -version javac -version rm -rf /var/lib/apt/lists/* # buildkit
Please be careful as this will not just delete the reference but also the actual content!
For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.