Find a file
Stan Hu 3bf80b1b64 Bump yamllint version to 1.25.0
https://packages.debian.org/testing/yamllint bumped the version, so
the previous version no longer exists.
2021-01-07 22:04:06 +05:30
assets Merge branch 'disable-gosec-error-checking' into 'master' 2020-01-20 10:52:26 +00:00
scripts Bump yamllint version to 1.25.0 2021-01-07 22:04:06 +05:30
.gitattributes Add Dockerfile syntax highlighting 2019-03-26 09:52:21 +00:00
.gitignore Add .gitignore for .idea 2020-05-26 22:37:59 -07:00
.gitlab-ci.yml Add missing Ruby v3.0.0 image for GitLab CE/EE 2020-12-28 21:16:36 -08:00
CONTRIBUTING.md Update license and contributing.md 2017-11-14 14:57:23 +01:00
Dockerfile.alpine-aws Ensure that package managers clean up 2018-10-04 23:29:51 +02:00
Dockerfile.alpine-helm Add alpine-helm image used in Charts 2019-09-05 11:18:45 +05:30
Dockerfile.build-git Add Dockerfile to build Git 2020-02-06 16:53:49 +01:00
Dockerfile.custom Upgrade to Git v2.28.0.rc1 2020-07-20 14:10:22 +02:00
Dockerfile.danger Update danger to 8.0.6 2020-10-06 03:37:19 +00:00
Dockerfile.gitlab-charts-build-base Update Helm 2 to latest patch version 2020-08-04 09:25:04 +01:00
Dockerfile.gitlab-charts-build-base-helm-3 Update Helm to 3.4.1 2020-12-17 18:34:39 -05:00
Dockerfile.gitlab-docs Roll docker image versions forward for docs 2020-01-07 15:50:55 +00:00
Dockerfile.gitlab-docs-lint Roll docker image versions forward for docs 2020-01-07 15:50:55 +00:00
Dockerfile.gitlab-helm3-kubectl1.14 Add a new gitlab-helm3-kubectl1.14 image 2020-04-01 11:48:11 +02:00
Dockerfile.gitlab-operator-build-base Add build image for the GitLab Operator 2020-10-14 23:26:50 +00:00
Dockerfile.gitlab-puppeteer Update puppeteer image to use node@12 2019-06-14 12:21:16 +00:00
Dockerfile.gitlab-qa-alpine-ruby-2.6 Update the list of pipeline configuration with Gitlab QA image 2020-02-24 12:09:16 +00:00
Dockerfile.gitlab-qa-alpine-ruby-2.7 Add GitLab QA build images for Ruby 2.7 2020-10-09 14:20:14 -07:00
Dockerfile.gitlab-qa-ruby-2.6 Use Ruby 2.6 for gitlab-qa image 2020-01-17 06:55:15 -08:00
Dockerfile.gitlab-qa-ruby-2.7 Add GitLab QA build images for Ruby 2.7 2020-10-09 14:20:14 -07:00
Dockerfile.golangci-lint-alpine Bump golangci-lint from v1.25.1 to v1.28.1 2020-07-09 16:16:04 -07:00
Dockerfile.omnibus-gitlab-bionic Bump Ruby version to 2.6.5 in omnibus-gitlab images 2020-01-03 13:04:22 +05:30
Dockerfile.omnibus-gitlab-buster Bump Ruby version to 2.6.5 in omnibus-gitlab images 2020-01-03 13:04:22 +05:30
Dockerfile.omnibus-gitlab-centos7 Bump Ruby version to 2.6.5 in omnibus-gitlab images 2020-01-03 13:04:22 +05:30
Dockerfile.omnibus-gitlab-centos8 Bump Ruby version to 2.6.5 in omnibus-gitlab images 2020-01-03 13:04:22 +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 Add Ubuntu 20.04 build image 2020-06-24 10:58:16 +00:00
Dockerfile.omnibus-gitlab-jessie Bump Ruby version to 2.6.5 in omnibus-gitlab images 2020-01-03 13:04:22 +05:30
Dockerfile.omnibus-gitlab-opensuse15.1 Bump Ruby version to 2.6.5 in omnibus-gitlab images 2020-01-03 13:04:22 +05:30
Dockerfile.omnibus-gitlab-opensuse15.2 Add tester image for openSUSE Leap 15.2 2020-10-07 10:21:11 +05:30
Dockerfile.omnibus-gitlab-stretch Bump Ruby version to 2.6.5 in omnibus-gitlab images 2020-01-03 13:04:22 +05:30
Dockerfile.omnibus-gitlab-wheezy Bump Ruby version to 2.6.5 in omnibus-gitlab images 2020-01-03 13:04:22 +05:30
Dockerfile.omnibus-gitlab-xenial Bump Ruby version to 2.6.5 in omnibus-gitlab images 2020-01-03 13:04:22 +05:30
Dockerfile.release-tools Update release-tools to use Ruby v2.7 2020-11-02 13:29:50 -08:00
Dockerfile.ruby-alpine-aws Add Ruby based image with aws cli 2019-06-04 15:22:05 +05:30
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.ubi-release Revert "Use pip3 to grab python3 awscli" 2020-06-26 13:58:52 -07:00
Dockerfile.www-gitlab-com-2.4 Install imagemagick in www-gitlab-com docker image 2018-10-30 17:41:13 +01:00
Dockerfile.www-gitlab-com-2.6 Update www-gitlab-com image to Ruby 2.6.6 2020-10-14 16:58:56 +10:00
LICENSE Update license and contributing.md 2017-11-14 14:57:23 +01:00
README.md Adding of PgBouncer 2020-07-15 15:02:51 +03: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 docker buildfile.
  2. Use a custom image with versioned features.

Use a docker buildfile

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.

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

  1. Add a test task: new-image test: *test_build.
  2. Add a new build task: new-image: *build_and_deploy.
  3. Add a Dockerfile: Dockerfile.new-image.

Use a custom image with versioned features

To add a new image to the build, edit .gitlab-ci.yml.

With custom images, the name of the image is used to define the contents (as opposed to use a bespoke Dockerfile build).

For this reason, the name needs to be correctly defined.

The name is defined as [feature]-[version] pairs, separated by -.

Here are some example build names:

  1. ruby-2.1-git-2.7
  2. ruby-2.3.3-golang-1.8-git-2.7-chrome-60.0-node-7.1-postgresql-9.6
  3. ruby-2.4.1-golang-1.8-git-2.7-node-7.1-postgresql-9.6

The first pair represents the base image and version. So ruby-2.1-... will use the ruby:2.1 base image, while golang-1.8 will use the golang:1.8 base image.

Each of the following parts represents another feature and version. Available options are:

  1. golang
  2. git
  3. chrome
  4. node
  5. yarn
  6. postgres
  7. terraform
  8. ansible
  9. graphicsmagick
  10. pgbouncer

Adding a new build

As an example, if you want to add new image for Ruby 2.4 with git 2.14 and golang 1.9, the name would be ruby-2.4-golang-1.9-git-2.14.

  1. Add a test task: ruby-2.4-golang-1.9-git-2.14 test: *test_custom
  2. Add a new build task: ruby-2.4-golang-1.9-git-2.14: *build_and_deploy_custom

Forcing custom images to be rebuilt

By default, once a custom image is built, tagged and pushed to the registry, it's not rebuilt to ensure an upstream dependency doesn't end up breaking our images unexpectedly.

For reference, this happened in the past: https://gitlab.com/gitlab-org/gitlab/issues/205192

In the rare case where the Dockerfile.custom file is updated and all custom images shoulld be rebuild, you can start a new pipeline and set the variable FORCE_BUILD to true.

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 .deb into an S3 bucket. The install for Chrome will attempt to retrieve from the bucket if it cannot find the file in the apt repository. See scripts/cache-google-chrome for more details.

Contributing

See Contributing