FROM alpine:3.15 as rootfs-stage # environment ENV REL=jammy ENV ARCH=arm64 # install packages RUN \ apk add --no-cache \ bash \ curl \ tzdata \ xz # grab base tarball RUN \ mkdir /root-out && \ curl -o \ /rootfs.tar.gz -L \ https://partner-images.canonical.com/core/${REL}/current/ubuntu-${REL}-core-cloudimg-${ARCH}-root.tar.gz && \ tar xf \ /rootfs.tar.gz -C \ /root-out # Runtime stage FROM scratch COPY --from=rootfs-stage /root-out/ / ARG BUILD_DATE ARG VERSION LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL maintainer="TheLamer" # set version for s6 overlay ARG OVERLAY_VERSION="v2.2.0.3" ARG OVERLAY_ARCH="aarch64" # add s6 overlay ADD https://github.com/just-containers/s6-overlay/releases/download/${OVERLAY_VERSION}/s6-overlay-${OVERLAY_ARCH}-installer /tmp/ RUN chmod +x /tmp/s6-overlay-${OVERLAY_ARCH}-installer && /tmp/s6-overlay-${OVERLAY_ARCH}-installer / && rm /tmp/s6-overlay-${OVERLAY_ARCH}-installer COPY patch/ /tmp/patch # set environment variables ARG DEBIAN_FRONTEND="noninteractive" ENV HOME="/root" \ LANGUAGE="en_US.UTF-8" \ LANG="en_US.UTF-8" \ TERM="xterm" # copy sources COPY sources.list.arm /etc/apt/ RUN \ echo "**** Ripped from Ubuntu Docker Logic ****" && \ set -xe && \ echo '#!/bin/sh' \ > /usr/sbin/policy-rc.d && \ echo 'exit 101' \ >> /usr/sbin/policy-rc.d && \ chmod +x \ /usr/sbin/policy-rc.d && \ dpkg-divert --local --rename --add /sbin/initctl && \ cp -a \ /usr/sbin/policy-rc.d \ /sbin/initctl && \ sed -i \ 's/^exit.*/exit 0/' \ /sbin/initctl && \ echo 'force-unsafe-io' \ > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup && \ echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ > /etc/apt/apt.conf.d/docker-clean && \ echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' \ >> /etc/apt/apt.conf.d/docker-clean && \ echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' \ >> /etc/apt/apt.conf.d/docker-clean && \ echo 'Acquire::Languages "none";' \ > /etc/apt/apt.conf.d/docker-no-languages && \ echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' \ > /etc/apt/apt.conf.d/docker-gzip-indexes && \ echo 'Apt::AutoRemove::SuggestsImportant "false";' \ > /etc/apt/apt.conf.d/docker-autoremove-suggests && \ mkdir -p /run/systemd && \ echo 'docker' \ > /run/systemd/container && \ echo "**** install apt-utils and locales ****" && \ apt-get update && \ apt-get install -y \ apt-utils \ locales && \ echo "**** install packages ****" && \ apt-get install -y \ curl \ gnupg \ patch \ tzdata && \ echo "**** generate locale ****" && \ locale-gen en_US.UTF-8 && \ echo "**** create abc user and make our folders ****" && \ useradd -u 911 -U -d /config -s /bin/false abc && \ usermod -G users abc && \ mkdir -p \ /app \ /config \ /defaults && \ mv /usr/bin/with-contenv /usr/bin/with-contenvb && \ patch -u /etc/s6/init/init-stage2 -i /tmp/patch/etc/s6/init/init-stage2.patch && \ echo "**** add qemu ****" && \ curl -o \ /usr/bin/qemu-aarch64-static -L \ "https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static" && \ chmod +x /usr/bin/qemu-aarch64-static && \ echo "**** cleanup ****" && \ apt-get remove -y patch && \ apt-get autoremove && \ apt-get clean && \ rm -rf \ /tmp/* \ /var/lib/apt/lists/* \ /var/tmp/* # add local files COPY root/ / ENTRYPOINT ["/init"]