mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-09 18:12:55 +01:00
125 lines
3.6 KiB
Docker
125 lines
3.6 KiB
Docker
#
|
|
# The arguments in this file are configured in
|
|
# /scripts/custom-docker-build
|
|
#
|
|
|
|
ARG CUSTOM_BASE_IMAGE
|
|
FROM ${CUSTOM_BASE_IMAGE}
|
|
|
|
ARG BUILD_OS
|
|
# TARGETARCH is automatically populated by buildx --platform argument
|
|
ARG TARGETARCH
|
|
|
|
ADD / /
|
|
|
|
RUN /scripts/install-essentials ${BUILD_OS}
|
|
|
|
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 /scripts/generate-locale
|
|
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}
|