debian/Dockerfile

59 lines
1.7 KiB
Docker

FROM debian:stable as builder
RUN set -xe;\
apt-get update &&\
apt-get install -y debootstrap &&\
mount &&\
debootstrap --include=apt,ca-certificates,curl --foreign --variant=minbase bullseye /dest &&\
sed -i 's/setup_proc//' /dest/debootstrap/suite-script
FROM scratch as bootstrapped
COPY --from=builder /dest /
RUN set -xe;\
/debootstrap/debootstrap --second-stage &&\
rm -rf /var/cache/apt/archives/* &&\
rm -rf /var/lib/apt/lists/*
FROM bootstrapped as toolbuilder
ENV GOSU_VERSION="1.14"
ENV SUEXEC_VERSION="0.2"
ENV DUMB_INIT_VERSION="1.2.5"
RUN set -xe;\
apt-get update &&\
apt-get install -y git golang &&\
git clone https://github.com/tianon/gosu.git /build &&\
cd /build &&\
git checkout $GOSU_VERSION &&\
go mod download &&\
go build
RUN set -xe;\
apt-get install -y build-essential &&\
cd / &&\
curl -LO https://github.com/Yelp/dumb-init/archive/v${DUMB_INIT_VERSION}.tar.gz &&\
tar xvzf v${DUMB_INIT_VERSION}.tar.gz &&\
cd dumb-init-${DUMB_INIT_VERSION} &&\
make &&\
cp dumb-init /
RUN set -xe;\
apt-get install -y libc6-dev make gcc &&\
cd / &&\
curl -LO https://github.com/ncopa/su-exec/archive/refs/tags/v0.2.tar.gz &&\
tar xvaf v0.2.tar.gz &&\
cd su-exec-* &&\
make &&\
cp su-exec /
FROM bootstrapped
ARG DATE
ENV GOSU_VERSION="1.12"
ENV DUMB_INIT_VERSION="1.2.3"
COPY --from=toolbuilder /build/gosu /usr/local/sbin/gosu
COPY --from=toolbuilder /dumb-init /usr/local/sbin/dumb-init
COPY --from=toolbuilder /su-exec /usr/local/sbin/su-exec
COPY apt-install /bin/apt-install
COPY checkupdates /bin/checkupdates
CMD "bash"
LABEL version.debian=bullseye \
version.gosu=$GOSU_VERSION \
version.dumb-init=$DUMB_INIT_VERSION \
build.date=$DATE