| # debian.sh --arch 'arm64' out/ 'trixie' '@1783900800' |
| ARG TARGETOS=linux |
| ARG TARGETARCH=arm64 |
| RUN |2 TARGETOS=linux TARGETARCH=arm64 /bin/sh -c if [ -z "${TARGETOS}" ] || [ -z "${TARGETARCH}" ]; then echo "TARGETOS and TARGETARCH must be set" >&2; exit 1; fi # buildkit |
| COPY ipv6.conf /etc/sysctl.d/ipv6.conf # buildkit |
| ARG APT_PROXY=http://mirror.lan:3142 |
| RUN |3 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 /bin/sh -c set -eux; if [ -n "${APT_PROXY:-}" ]; then printf 'Acquire::http::Proxy "%s";\n' "$APT_PROXY" > /etc/apt/apt.conf.d/01proxy; fi; apt-get -y update && apt-get install -y --no-install-recommends ca-certificates tzdata locales nano rsync curl wget iputils-ping openssl gnupg debian-keyring debian-archive-keyring apt-transport-https && rm -rf /var/lib/apt/lists/* /etc/apt/apt.conf.d/01proxy # buildkit |
| RUN |3 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 /bin/sh -c curl -fsSL https://deb.42i.org/debian/repository.key -o /etc/apt/keyrings/gitea-42i.asc && echo "deb [signed-by=/etc/apt/keyrings/gitea-42i.asc] https://deb.42i.org/debian trixie main" > /etc/apt/sources.list.d/42i.list # buildkit |
| COPY intranet.crt /usr/local/share/ca-certificates/intranet-root-ca.crt # buildkit |
| RUN |3 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 /bin/sh -c update-ca-certificates # buildkit |
| RUN |3 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 /bin/sh -c echo "de_DE.UTF-8 UTF-8" >> /etc/locale.gen && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && /usr/sbin/locale-gen && update-locale LANG=de_DE.UTF-8 echo "LANG=de_DE.UTF-8" > /etc/default/locale && echo "LC_ALL=de_DE.UTF-8" >> /etc/default/locale # buildkit |
| COPY root /root # buildkit |
| RUN |3 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 /bin/sh -c ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime # buildkit |
| ENV LANG=de_DE.UTF-8 |
| ENV LANGUAGE=de_DE:de |
| ENV LC_ALL=de_DE.UTF-8 |
| WORKDIR /root |
| ARG TARGETOS=linux |
| ARG TARGETARCH=arm64 |
| ARG APT_PROXY=http://mirror.lan:3142 |
| ARG NODE_MAJOR=22 |
| ENV BUN_INSTALL=/root/.bun |
| ENV PATH=/root/.bun/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| RUN |4 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 /bin/sh -c if [ -z "${TARGETOS}" ] || [ -z "${TARGETARCH}" ]; then echo "TARGETOS and TARGETARCH must be set" >&2; exit 1; fi # buildkit |
| RUN |4 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 /bin/sh -c cat << 'EOF' >> /root/.bashrc
alias k='kubectl'
mkdir -p ${HOME}/.kube
export KUBECONFIG=$(for YAML in $(find ${HOME}/.kube/ -name 'config.*') ; do echo -n ":${YAML}"; done)
EOF # buildkit |
| RUN |4 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 /bin/sh -c install -m 0755 -d /etc/apt/keyrings && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_${NODE_MAJOR}.x nodistro main" > /etc/apt/sources.list.d/nodesource.list # buildkit |
| RUN |4 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 /bin/sh -c set -eux; if [ -n "${APT_PROXY:-}" ]; then printf 'Acquire::http::Proxy "%s";\n' "$APT_PROXY" > /etc/apt/apt.conf.d/01proxy; fi; apt-get -y update && apt-get install -y --no-install-recommends zip unzip git jq ssh make ripgrep qrencode qrterminal golang skopeo python3 python3-pip imagemagick librsvg2-bin poppler-utils nodejs fonts-liberation libasound2t64 libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libcairo2 libcups2t64 libdbus-1-3 libdrm2 libgbm1 libglib2.0-0t64 libgtk-3-0t64 libnspr4 libnss3 libpango-1.0-0 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 libxshmfence1 && rm -rf /var/lib/apt/lists/* /etc/apt/apt.conf.d/01proxy # buildkit |
| RUN |4 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 /bin/sh -c curl -fsSL https://bun.com/install | bash && ln -sf "${BUN_INSTALL}/bin/bun" /usr/local/bin/bun && ln -sf "${BUN_INSTALL}/bin/bunx" /usr/local/bin/bunx && bun --version && bunx --version # buildkit |
| RUN |4 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 /bin/sh -c go install -v github.com/go-delve/delve/cmd/dlv@latest # buildkit |
| RUN |4 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 /bin/sh -c set -eux; if [ -n "${APT_PROXY:-}" ]; then printf 'Acquire::http::Proxy "%s";\n' "$APT_PROXY" > /etc/apt/apt.conf.d/01proxy; fi; apt-get -y update && apt-get install -y --no-install-recommends build-essential dpkg-dev fakeroot devscripts equivs libdistro-info-perl && rm -rf /var/lib/apt/lists/* /etc/apt/apt.conf.d/01proxy # buildkit |
| RUN |4 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 /bin/sh -c curl -fsSL -o /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_${TARGETOS}_${TARGETARCH} && chmod +x /usr/local/bin/yq # buildkit |
| RUN |4 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 /bin/sh -c npm install -g @quasar/cli && npm install -g chart.js && npm audit fix || true # buildkit |
| ARG PLAYWRIGHT_VERSION=1.58.2 |
| RUN |5 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 PLAYWRIGHT_VERSION=1.58.2 /bin/sh -c set -eux; bunx playwright@${PLAYWRIGHT_VERSION} install chromium firefox; ls /root/.cache/ms-playwright # buildkit |
| RUN |5 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 PLAYWRIGHT_VERSION=1.58.2 /bin/sh -c install -m 0755 -d /etc/apt/keyrings && curl -fsSL https://download.docker.com/$TARGETOS/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/$TARGETOS/debian $(. /etc/os-release; echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list # buildkit |
| RUN |5 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 PLAYWRIGHT_VERSION=1.58.2 /bin/sh -c set -eux; if [ -n "${APT_PROXY:-}" ]; then printf 'Acquire::http::Proxy "%s";\n' "$APT_PROXY" > /etc/apt/apt.conf.d/01proxy; fi; apt-get update && apt-get install -y --no-install-recommends docker-ce-cli docker-compose-plugin docker-buildx-plugin && rm -rf /var/lib/apt/lists/* /etc/apt/apt.conf.d/01proxy # buildkit |
| ENV TEA_VERSION=0.11.1 |
| RUN |5 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 PLAYWRIGHT_VERSION=1.58.2 /bin/sh -c curl -L https://dl.gitea.com/tea/${TEA_VERSION}/tea-${TEA_VERSION}-${TARGETOS}-${TARGETARCH} -o /usr/local/bin/tea && chmod +x /usr/local/bin/tea # buildkit |
| ENV HUGO_VERSION=0.152.2 |
| RUN |5 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 PLAYWRIGHT_VERSION=1.58.2 /bin/sh -c curl -L https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_${TARGETOS}-${TARGETARCH}.tar.gz | tar -xz -C /usr/local/bin hugo # buildkit |
| RUN |5 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 PLAYWRIGHT_VERSION=1.58.2 /bin/sh -c set -eux; if [ -n "${APT_PROXY:-}" ]; then printf 'Acquire::http::Proxy "%s";\n' "$APT_PROXY" > /etc/apt/apt.conf.d/01proxy; fi; apt-get update && apt-get install -y --no-install-recommends mkdocs python3-pip python3-pymdownx && pip3 install --no-cache-dir --break-system-packages --ignore-installed "mkdocs-material>=9.7" && rm -rf /var/lib/apt/lists/* /etc/apt/apt.conf.d/01proxy # buildkit |
| RUN |5 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 PLAYWRIGHT_VERSION=1.58.2 /bin/sh -c curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/$TARGETOS/$TARGETARCH/kubectl" && chmod +x ./kubectl && mv ./kubectl /usr/local/bin/kubectl && curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 && chmod +x get_helm.sh && ./get_helm.sh && rm ./get_helm.sh # buildkit |
| COPY /out/helm-docs /usr/bin/helm-docs # buildkit |
| ARG HELM_SCHEMA_VERSION=0.20.0 |
| RUN |6 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 PLAYWRIGHT_VERSION=1.58.2 HELM_SCHEMA_VERSION=0.20.0 /bin/sh -c helm plugin install https://github.com/dadav/helm-schema --version ${HELM_SCHEMA_VERSION} # buildkit |
| ARG KUBE_LINTER_VERSION=0.8.1 |
| RUN |7 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 PLAYWRIGHT_VERSION=1.58.2 HELM_SCHEMA_VERSION=0.20.0 KUBE_LINTER_VERSION=0.8.1 /bin/sh -c case "${TARGETARCH}" in arm64) KUBE_LINTER_ARCH=linux_arm64 ;; amd64) KUBE_LINTER_ARCH=linux ;; *) echo "unsupported arch: ${TARGETARCH}" >&2; exit 1 ;; esac && curl -L -o /usr/local/bin/kube-linter "https://github.com/stackrox/kube-linter/releases/download/v${KUBE_LINTER_VERSION}/kube-linter-${KUBE_LINTER_ARCH}" && chmod +x /usr/local/bin/kube-linter # buildkit |
| RUN |7 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 PLAYWRIGHT_VERSION=1.58.2 HELM_SCHEMA_VERSION=0.20.0 KUBE_LINTER_VERSION=0.8.1 /bin/sh -c set -e ; pip3 install --break-system-packages jsonlines; pip3 install --break-system-packages qrcode; pip3 install --break-system-packages pypng; pip3 install --break-system-packages jinja2-cli # buildkit |
| RUN |7 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 PLAYWRIGHT_VERSION=1.58.2 HELM_SCHEMA_VERSION=0.20.0 KUBE_LINTER_VERSION=0.8.1 /bin/sh -c curl -L https://github.com/hairyhenderson/gomplate/releases/latest/download/gomplate_${TARGETOS}-${TARGETARCH} -o /usr/local/bin/gomplate && chmod +x /usr/local/bin/gomplate # buildkit |
| ARG OPENCODE_VERSION=1.17.16 |
| RUN |8 TARGETOS=linux TARGETARCH=arm64 APT_PROXY=http://mirror.lan:3142 NODE_MAJOR=22 PLAYWRIGHT_VERSION=1.58.2 HELM_SCHEMA_VERSION=0.20.0 KUBE_LINTER_VERSION=0.8.1 OPENCODE_VERSION=1.17.16 /bin/sh -c set -eux; if [ -n "${OPENCODE_VERSION}" ]; then export VERSION="${OPENCODE_VERSION}"; fi; curl -fsSL https://opencode.ai/install | bash; ln -sf /root/.opencode/bin/opencode /usr/local/bin/opencode; opencode --version # buildkit |
| WORKDIR /root |