gitlab-build-images/Dockerfile.custom
Patrick Steinhardt d87b0be061 gitaly: Stop installing PgBouncer
Gitaly is using PgBouncer in its CI pipelines to verify that Praefect
works alright with this proxy for Postgres. While it was initially using
the PgBouncer binary directly, the project has since migrate to set up
PgBouncer as a service via a separate image in 0e5953177 (ci: Tie in
PgBouncer as a service, 2021-12-03). Since then the PgBouncer executable
is not needed anymore in the image used by Gitaly.

Stop installing PgBouncer and remove the architecture we have to build
and install it.
2022-07-06 07:42:08 +02:00

127 lines
3.8 KiB
Docker

#
# The arguments in this file are configured in
# /scripts/custom-docker-build
#
ARG CUSTOM_BASE_IMAGE
FROM ${CUSTOM_BASE_IMAGE}
# We are setting this ARG again because it is required in install-essentials
# script. ARG defined before FROM can't be used afterwards.
# Check https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
ARG CUSTOM_BASE_IMAGE
ADD / /
RUN /scripts/install-essentials ${CUSTOM_BASE_IMAGE}
ENV PATH $PATH:/usr/local/go/bin
# Ruby
ARG RUBY_VERSION
ARG RUBY_DOWNLOAD_SHA256
ARG BUNDLER_VERSION
ARG RUBYGEMS_VERSION
RUN if [ -n "$RUBY_VERSION" ]; then /scripts/install-ruby "$RUBY_VERSION" "$RUBY_DOWNLOAD_SHA256" "$BUNDLER_VERSION" "$RUBYGEMS_VERSION" && ruby --version; fi
# Git
ARG GIT_VERSION
ARG GIT_DOWNLOAD_URL
ARG GIT_DOWNLOAD_SHA256
RUN if [ -n "$GIT_VERSION" ]; then /scripts/install-pcre2 && pcre2-config --version; fi
RUN if [ -n "$GIT_VERSION" ]; then /scripts/install-git && git --version; fi
# Chrome
ARG CHROME_VERSION
RUN if [ -n "$CHROME_VERSION" ]; then /scripts/install-chrome $CHROME_VERSION && ( google-chrome --version || chromium --version ); fi
# NodeJS and Yarn
ARG NODE_INSTALL_VERSION
ARG YARN_INSTALL_VERSION
RUN if [ -n "$NODE_INSTALL_VERSION" ] ; then /scripts/install-node $NODE_INSTALL_VERSION $YARN_INSTALL_VERSION && node --version && yarn --version; fi
# Golang
ARG INSTALL_GOLANG_VERSION
ARG GOLANG_DOWNLOAD_SHA256
RUN if [ -n "$INSTALL_GOLANG_VERSION" ] ; then /scripts/install-golang "${INSTALL_GOLANG_VERSION}" "${GOLANG_DOWNLOAD_SHA256}" && go version; fi
# Git LFS (https://git-lfs.github.com/)
ARG LFS_VERSION
ARG LFS_DOWNLOAD_SHA256
RUN if [ -n "$LFS_VERSION" ]; then /scripts/install-lfs && git lfs --version; fi
# Postgres
ARG POSTGRES_VERSION
RUN if [ -n "$POSTGRES_VERSION" ] ; then /scripts/install-postgresql $POSTGRES_VERSION; fi
# GraphicsMagick
ARG GRAPHISMAGICK_VERSION
ARG GRAPHISMAGICK_DOWNLOAD_URL=https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/${GRAPHISMAGICK_VERSION}/GraphicsMagick-${GRAPHISMAGICK_VERSION}.tar.gz
ARG GRAPHISMAGICK_DOWNLOAD_SHA256
RUN if [ -n "$GRAPHISMAGICK_VERSION" ]; then /scripts/install-graphicsmagick && gm version; fi
# Docker
ARG DOCKER_VERSION
RUN if [ -n "$DOCKER_VERSION" ]; then /scripts/install-docker $DOCKER_VERSION; fi
# Docker buildx plugin
ARG BUILDX_VERSION
ARG BUILDX_DOWNLOAD_SHA256
RUN if [ -n "$BUILDX_VERSION" ]; then /scripts/install-buildx $BUILDX_VERSION $BUILDX_DOWNLOAD_SHA256; fi
# Bazelisk
ARG BAZELISK_VERSION
ARG BAZELISK_DOWNLOAD_SHA256
RUN if [ -n "$BAZELISK_VERSION" ] ; then /scripts/install-bazelisk $BAZELISK_VERSION $BAZELISK_DOWNLOAD_SHA256; fi
# Google-cloud-sdk
ARG GCLOUD_VERSION
RUN if [ -n "$GCLOUD_VERSION" ] ; then /scripts/install-gcloud $GCLOUD_VERSION; fi
# Kubectl
ARG KUBECTL_VERSION
ARG KUBECTL_DOWNLOAD_SHA256
RUN if [ -n "$KUBECTL_VERSION" ] ; then /scripts/install-kubectl $KUBECTL_VERSION $KUBECTL_DOWNLOAD_SHA256; fi
# Helm
ARG HELM_VERSION
ARG HELM_DOWNLOAD_SHA256
RUN if [ -n "$HELM_VERSION" ] ; then /scripts/install-helm $HELM_VERSION $HELM_DOWNLOAD_SHA256; fi
RUN locale-gen C.UTF-8
ENV LANG=C.UTF-8 \
LANGUAGE=C \
LC_ALL=C.UTF-8
RUN /scripts/validate-binaries-architecture
# Set as env variables all versions configured
ENV RUBY_VERSION=${RUBY_VERSION} \
RUBYGEMS_VERSION=${RUBYGEMS_VERSION} \
GIT_VERSION=${GIT_VERSION} \
CHROME_VERSION=${CHROME_VERSION} \
NODE_VERSION=${NODE_INSTALL_VERSION} \
YARN_VERSION=${YARN_INSTALL_VERSION} \
GOLANG_VERSION=${INSTALL_GOLANG_VERSION} \
LFS_VERSION=${LFS_VERSION} \
POSTGRES_VERSION=${POSTGRES_VERSION} \
GRAPHISMAGICK_VERSION=${GRAPHISMAGICK_VERSION} \
DOCKER_VERSION=${DOCKER_VERSION} \
BAZELISK_VERSION=${BAZELISK_VERSION} \
GCLOUD_VERSION=${GCLOUD_VERSION} \
KUBECTL_VERSION=${KUBECTL_VERSION} \
CUSTOM_BASE_IMAGE=${CUSTOM_BASE_IMAGE}