Page MenuHomePhabricator
Paste P35459

Dockerfile for build-bare-slim.sh environment
ActivePublic

Authored by pfischer on Oct 13 2022, 11:16 AM.
Referenced Files
F35566103: Dockerfile for build-bare-slim.sh environment
Oct 13 2022, 11:16 AM
Subscribers
None
Tokens
"Barnstar" token, awarded by GreenReaper.
ARG DISTRO=buster
FROM debian:${DISTRO}-slim
ARG DISTRO=buster
RUN apt-get -yq update
RUN apt-get -yq install ca-certificates curl gnupg lsb-release
RUN mkdir -p /etc/apt/keyrings
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
RUN apt-get -yq update
RUN apt-get -yq install docker-ce-cli
RUN apt-get -yq install debuerreotype
RUN mkdir -p /tmp/build/sources
WORKDIR /tmp/build
ENV SRCDIR /tmp/build
# mimic puppet templating
RUN cp /etc/apt/sources.list /tmp/build/sources/${DISTRO}.sources.list
RUN echo "# wikimedia\n\
deb http://mirrors.wikimedia.org/debian/ ${DISTRO}-updates main\n\
deb http://mirrors.wikimedia.org/debian/ ${DISTRO}-backports main contrib\n\
deb http://apt.wikimedia.org/wikimedia ${DISTRO}-wikimedia main" >> /tmp/build/sources/buster.sources.list
COPY . .
RUN cp wikimedia-apt-preferences wikimedia.preferences
RUN cp Dockerfile.slim Dockerfile
ENV DISTRO ${DISTRO}
CMD ./build-bare-slim.sh ${DISTRO}

Event Timeline

Goal

Create a (Debian) -- as it would be done via puppet -- that matches the host architecture.

Usage

Clone the puppet repository and create the build environment image:

export DISTRO=buster
git clone --branch production ssh://gerrit.wikimedia.org:29418/operations/puppet
cd puppet/modules/docker/files
docker build --build-arg DISTRO=$DISTRO --no-cache -f path/to/Dockerfile -t $DISTRO-docker-debuerreotype:latest .

Once the build environment is ready, build the base image:

docker run --privileged -v /var/run/docker.sock:/var/run/docker.sock --rm $DISTRO-docker-debuerreotype:latest
docker tag docker-registry.discovery.wmnet/buster:20221007 docker-registry.wikimedia.org/wikimedia-$DISTRO:latest

Continue with docker-pkg:

git clone ssh://gerrit.wikimedia.org:29418/releng/dev-images
cd dev-images
docker-pkg --debug -c dockerfiles/config.yaml build --select '*$DISTRO-php74*' --no-pull dockerfiles