Find a file
Rémy Coutable 4af3119f5c Merge branch 'andrey-add-interruptible' into 'master'
Add redundant pipeline cancelation

See merge request https://gitlab.com/gitlab-org/gitlab-build-images/-/merge_requests/609

Merged-by: Rémy Coutable <remy@rymai.me>
Approved-by: Rémy Coutable <remy@rymai.me>
Co-authored-by: Andrejs Cunskis <acunskis@gitlab.com>
2022-11-10 10:11:10 +00:00
.gitlab Add redundant pipeline cancelation 2022-11-10 10:11:10 +00:00
assets Merge branch 'disable-gosec-error-checking' into 'master' 2020-01-20 10:52:26 +00:00
patches Add patches for Ruby 2.7.6 2022-05-19 20:57:43 +00:00
scripts Cache chrome for correct debian version 2022-11-08 12:49:31 +00:00
.dockerignore Experiment: automatically push built images 2022-05-11 12:56:08 +00:00
.gitattributes Add Dockerfile syntax highlighting 2019-03-26 09:52:21 +00:00
.gitignore Add .DS_Store to .gitignore 2022-07-25 04:20:18 +00:00
.gitlab-ci.yml Add redundant pipeline cancelation 2022-11-10 10:11:10 +00:00
CODEOWNERS Add CODEOWNERS file 2021-11-25 10:42:10 +00:00
CONTRIBUTING.md Update license and contributing.md 2017-11-14 14:57:23 +01:00
Dockerfile.alpine-bash-jq-curl-git Add image with tools required to hit and API and parse the JSON response 2021-10-04 16:07:14 +05:30
Dockerfile.apollo Revert "Merge branch 'vs/bump-nodejs-for-apollo-image' into 'master'" 2022-03-28 18:41:45 +00:00
Dockerfile.build-git Add Dockerfile to build Git 2020-02-06 16:53:49 +01:00
Dockerfile.cache-chrome Cache chrome for correct debian version 2022-11-08 12:49:31 +00:00
Dockerfile.custom Cache chrome for correct debian version 2022-11-08 12:49:31 +00:00
Dockerfile.danger Bump Node.js to 16.14.2 2022-03-18 10:07:36 +03:00
Dockerfile.gitlab-charts-build-base-helm-3.7 Update build images to use python3 2022-06-03 16:09:45 +00:00
Dockerfile.gitlab-helm3.5-kubectl1.17 Add kubectl 1.17/Helm 3.5.2-based image 2021-03-30 14:40:18 +00:00
Dockerfile.gitlab-operator-build-base Add go-task to GitLab Operator build base image 2022-07-04 06:19:53 +00:00
Dockerfile.gitlab-vscode-nodeless Create Dockerfile.gitlab-vscode-nodeless 2022-07-28 02:45:10 -07:00
Dockerfile.golangci-lint-alpine Update golangci-lint image for improved Go 1.18 support 2022-06-30 10:22:56 +02:00
Dockerfile.kaniko Add curl and jq to kaniko image 2022-10-17 18:17:28 +01:00
Dockerfile.omnibus-gitlab-amazonlinux2 Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-bionic Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-bullseye Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-buster Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-centos7 Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-centos8 Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-cve-search Add cve-search Docker image 2020-06-10 18:45:51 +00:00
Dockerfile.omnibus-gitlab-depscan Add image used by dependency_scanning job in omnibus-gitlab 2018-12-15 12:18:00 +05:30
Dockerfile.omnibus-gitlab-focal Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-jammy Add Ubuntu 22.04 build image 2022-09-28 15:28:44 +10:00
Dockerfile.omnibus-gitlab-jessie Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-opensuse15.1 Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-opensuse15.2 Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-opensuse15.3 Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-opensuse15.4 Add openSUSE Leap 15.4 image 2022-11-04 11:31:12 +00:00
Dockerfile.omnibus-gitlab-stretch Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-wheezy Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.omnibus-gitlab-xenial Bump bundler version in omnibus-gitlab images to 2.2.33 2022-03-18 16:17:08 +05:30
Dockerfile.release-tools Use C.UTF-8 2021-12-13 10:31:08 +00:00
Dockerfile.sitespeed-gitlab Move static files to assets directory 2019-11-21 09:51:13 -08:00
Dockerfile.terraform add terraform image 2020-03-12 20:19:25 +00:00
Dockerfile.triage-ops-ruby-2.7 Add triage-ops image 2022-02-03 15:34:29 +01:00
Dockerfile.ubi-release Revert "Use pip3 to grab python3 awscli" 2020-06-26 13:58:52 -07:00
Dockerfile.www-gitlab-com-debian-bullseye-ruby-3.0-node-16 Rename www-gitlab-com image to include Debian version 2022-08-16 05:36:12 +00:00
LICENSE Update license and contributing.md 2017-11-14 14:57:23 +01:00
README.md Apply 1 suggestion(s) to 1 file(s) 2022-10-28 14:22:42 +00:00

GitLab Build Images

This repository is used to build docker images that are used to build and test various parts of GitLab:

  1. Build Omnibus packages
  2. Test GitLab-CE/EE project
  3. Build gitlab-org/www-gitlab-com project

Adding a new image

There are two methods to adding a new image:

  1. Use a Dockerfile.
  2. Use a custom image with versioned features.

Use a Dockerfile

A bespoke image is one that uses it's own Dockerfile. In the interests of avoiding repetition, it's better to use the custom docker build if possible.

Images from a custom Dockerfile are built from job definitions in custom.images.yml

Assuming the image you want to add is called new-image:

  1. Add a new build job:
new-image:
  extends: .build_and_deploy
  1. Add a Dockerfile: Dockerfile.new-image.

Use a custom image with versioned features

To add a new image to the build, create a new images definition file like gitlab.images.yml.

With custom images, the components and versions define the resulting image name and tag.

Major components define image path. Base image is defined by OS component. Supported base images are:

  1. debian:$version
  2. ubi:$version

Supported major components are:

  1. OS
  2. RUBY
  3. GOLANG
  4. NODE
  5. POSTGRES

Minor components define tag name. Supported minor components are:

  1. BUNDLER
  2. RUBYGEMS
  3. GIT
  4. LFS
  5. CHROME
  6. YARN
  7. GRAPHICSMAGICK
  8. BAZELISK
  9. DOCKER
  10. BUILDX
  11. GCLOUD
  12. KUBECTL
  13. HELM

The names are defined as [feature]-[version] pairs, separated by -.

Here are some example build names:

  1. debian-bullseye-ruby-2.7-golang-1.15:git-2.29
  2. debian-bullseye-ruby-3.0.0-node-14.15:git-2.29-lfs-2.9-yarn-1.22-graphicsmagick-1.3.34
  3. debian-bullseye-ruby-3.0.0.patched-golang-1.14-postgresql-12:git-2.29-lfs-2.9-chrome-87-node-14.15-yarn-1.22-graphicsmagick-1.3.34

Adding a new build

As an example, if you want to add new image for Ruby 3.0 with git 2.29 and golang 1.15 based on debian bullseye, following job definition would have to be created:

new_image:
  extends:
    - .build_and_push
  variables:
    OS: 'debian:bullseye'
    RUBY: '3.0'
    GOLANG: '1.15'
    GIT: '2.29'

Note that tag name is limited to 128 characters so amount of minor components an image can have is limited by it.

Pushing a rebuild image

Images are built and pushed automatically after a merge request is merged.

Note regarding Google Chrome

Google has a policy of yanking older versions of Google Chrome from their PPA whenever a new major version is released. To help maintain consistent build images, there is a CI step that saves the latest Google Chrome and Chromium .deb into an the GitLab package registry. The install for Chrome will use registry to fetch corresponding packages. Make sure a certain version is cached before updating it in build jobs. See scripts/cache-google-chrome for more details.

Contributing

See Contributing