diff --git a/Changelog.md b/Changelog.md index 1ebc8bbd9..c35ba8135 100644 --- a/Changelog.md +++ b/Changelog.md @@ -2,6 +2,13 @@ This file only reflects the changes that are made in this image. Please refer to the upstream GitLab [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md) for the list of changes in GitLab. +**15.1.0** + +- gitlab: upgrade CE to v15.1.0 +- gitaly: upgrade to v15.1.0 +- gitlab-shell: upgrade to v14.7.4 +- gitlab-pages: upgrade to v1.59.0 + **15.0.3** - gitlab: upgrade CE to v15.0.3 - gitaly: upgrade to v15.0.3 diff --git a/Dockerfile b/Dockerfile index 48064b423..6a9713416 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,14 @@ FROM ubuntu:focal-20220531 -ARG VERSION=15.0.3 +ARG VERSION=15.1.0 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.7.6 \ RUBY_SOURCE_SHA256SUM="e7203b0cc09442ed2c08936d483f8ac140ec1c72e37bb5c401646b7866cb5d10" \ GOLANG_VERSION=1.17.11 \ - GITLAB_SHELL_VERSION=14.3.0 \ - GITLAB_PAGES_VERSION=1.58.0 \ - GITALY_SERVER_VERSION=15.0.3 \ + GITLAB_SHELL_VERSION=14.7.4 \ + GITLAB_PAGES_VERSION=1.59.0 \ + GITALY_SERVER_VERSION=15.1.0 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index 019a220fe..f6d4e59c1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# sameersbn/gitlab:15.0.3 +# sameersbn/gitlab:15.1.0 [![CircleCI](https://circleci.com/gh/sameersbn/docker-gitlab/tree/master.svg?style=svg)](https://circleci.com/gh/sameersbn/docker-gitlab/tree/master) @@ -125,7 +125,7 @@ Your docker host needs to have 1GB or more of available RAM to run GitLab. Pleas Automated builds of the image are available on [Dockerhub](https://hub.docker.com/r/sameersbn/gitlab) and is the recommended method of installation. ```bash -docker pull sameersbn/gitlab:15.0.3 +docker pull sameersbn/gitlab:15.1.0 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -194,7 +194,7 @@ docker run --name gitlab -d \ --env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' \ --env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' \ --volume /srv/docker/gitlab/gitlab:/home/git/data \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -229,7 +229,7 @@ Volumes can be mounted in docker by specifying the `-v` option in the docker run ```bash docker run --name gitlab -d \ --volume /srv/docker/gitlab/gitlab:/home/git/data \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` ### Database @@ -264,7 +264,7 @@ docker run --name gitlab -d \ --env 'DB_NAME=gitlabhq_production' \ --env 'DB_USER=gitlab' --env 'DB_PASS=password' \ --volume /srv/docker/gitlab/gitlab:/home/git/data \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` ##### Linking to PostgreSQL Container @@ -308,7 +308,7 @@ We are now ready to start the GitLab application. ```bash docker run --name gitlab -d --link gitlab-postgresql:postgresql \ --volume /srv/docker/gitlab/gitlab:/home/git/data \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` Here the image will also automatically fetch the `DB_NAME`, `DB_USER` and `DB_PASS` variables from the postgresql container as they are specified in the `docker run` command for the postgresql container. This is made possible using the magic of docker links and works with the following images: @@ -347,7 +347,7 @@ The image can be configured to use an external redis server. The configuration s ```bash docker run --name gitlab -it --rm \ --env 'REDIS_HOST=192.168.1.100' --env 'REDIS_PORT=6379' \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` #### Linking to Redis Container @@ -374,7 +374,7 @@ We are now ready to start the GitLab application. ```bash docker run --name gitlab -d --link gitlab-redis:redisio \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` #### Mail @@ -387,7 +387,7 @@ If you are using Gmail then all you need to do is: docker run --name gitlab -d \ --env 'SMTP_USER=USER@gmail.com' --env 'SMTP_PASS=PASSWORD' \ --volume /srv/docker/gitlab/gitlab:/home/git/data \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -407,7 +407,7 @@ docker run --name gitlab -d \ --env 'IMAP_USER=USER@gmail.com' --env 'IMAP_PASS=PASSWORD' \ --env 'GITLAB_INCOMING_EMAIL_ADDRESS=USER+%{key}@gmail.com' \ --volume /srv/docker/gitlab/gitlab:/home/git/data \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -491,7 +491,7 @@ docker run --name gitlab -d \ --env 'GITLAB_SSH_PORT=10022' --env 'GITLAB_PORT=10443' \ --env 'GITLAB_HTTPS=true' --env 'SSL_SELF_SIGNED=true' \ --volume /srv/docker/gitlab/gitlab:/home/git/data \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` In this configuration, any requests made over the plain http protocol will automatically be redirected to use the https protocol. However, this is not optimal when using a load balancer. @@ -507,7 +507,7 @@ docker run --name gitlab -d \ --env 'GITLAB_HTTPS=true' --env 'SSL_SELF_SIGNED=true' \ --env 'NGINX_HSTS_MAXAGE=2592000' \ --volume /srv/docker/gitlab/gitlab:/home/git/data \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -530,7 +530,7 @@ docker run --name gitlab -d \ --env 'GITLAB_SSH_PORT=10022' --env 'GITLAB_PORT=443' \ --env 'GITLAB_HTTPS=true' --env 'SSL_SELF_SIGNED=true' \ --volume /srv/docker/gitlab/gitlab:/home/git/data \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -578,7 +578,7 @@ Let's assume we want to deploy our application to '/git'. GitLab needs to know t docker run --name gitlab -it --rm \ --env 'GITLAB_RELATIVE_URL_ROOT=/git' \ --volume /srv/docker/gitlab/gitlab:/home/git/data \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -758,14 +758,14 @@ Also the container processes seem to be executed as the host's user/group `1000` ```bash docker run --name gitlab -it --rm [options] \ --env "USERMAP_UID=$(id -u git)" --env "USERMAP_GID=$(id -g git)" \ - sameersbn/gitlab:15.0.3 + sameersbn/gitlab:15.1.0 ``` When changing this mapping, all files and directories in the mounted data volume `/home/git/data` have to be re-owned by the new ids. This can be achieved automatically using the following command: ```bash docker run --name gitlab -d [OPTIONS] \ - sameersbn/gitlab:15.0.3 app:sanitize + sameersbn/gitlab:15.1.0 app:sanitize ``` #### Piwik @@ -2407,7 +2407,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:15.0.3 app:rake gitlab:backup:create + sameersbn/gitlab:15.1.0 app:rake gitlab:backup:create ``` A backup will be created in the backups folder of the [Data Store](#data-store). You can change the location of the backups using the `GITLAB_BACKUP_DIR` configuration parameter. @@ -2442,14 +2442,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:15.0.3 app:rake db:setup + sameersbn/gitlab:15.1.0 app:rake db:setup ``` Execute the rake task to restore a backup. Make sure you run the container in interactive mode `-it`. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:15.0.3 app:rake gitlab:backup:restore + sameersbn/gitlab:15.1.0 app:rake gitlab:backup:restore ``` The list of all available backups will be displayed in reverse chronological order. Select the backup you want to restore and continue. @@ -2458,7 +2458,7 @@ To avoid user interaction in the restore operation, specify the timestamp, date ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:15.0.3 app:rake gitlab:backup:restore BACKUP=1515629493_2020_12_06_13.0.6 + sameersbn/gitlab:15.1.0 app:rake gitlab:backup:restore BACKUP=1515629493_2020_12_06_13.0.6 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -2507,7 +2507,7 @@ The `app:rake` command allows you to run gitlab rake tasks. To run a rake task s ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:15.0.3 app:rake gitlab:env:info + sameersbn/gitlab:15.1.0 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -2520,7 +2520,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:15.0.3 app:rake gitlab:import:repos + sameersbn/gitlab:15.1.0 app:rake gitlab:import:repos ``` Or @@ -2551,7 +2551,7 @@ Copy all the **bare** git repositories to the `repositories/` directory of the [ ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:15.0.3 app:rake gitlab:import:repos + sameersbn/gitlab:15.1.0 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -2575,12 +2575,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:15.0.3` from `sameersbn/gitlab:7.x.x` can cause issues. It is therefore required that you first upgrade to `sameersbn/gitlab:8.0.5-1` before upgrading to `sameersbn/gitlab:8.1.0` or higher. +> Upgrading to `sameersbn/gitlab:15.1.0` from `sameersbn/gitlab:7.x.x` can cause issues. It is therefore required that you first upgrade to `sameersbn/gitlab:8.0.5-1` before upgrading to `sameersbn/gitlab:8.1.0` or higher. - **Step 1**: Update the docker image. ```bash -docker pull sameersbn/gitlab:15.0.3 +docker pull sameersbn/gitlab:15.1.0 ``` - **Step 2**: Stop and remove the currently running image @@ -2605,7 +2605,7 @@ Replace `x.x.x` with the version you are upgrading from. For example, if you are > **Note**: Since GitLab `8.11.0` you need to provide the `GITLAB_SECRETS_SECRET_KEY_BASE` and `GITLAB_SECRETS_OTP_KEY_BASE` parameters while starting the image. These should initially both have the same value as the contents of the `/home/git/data/.secret` file. See [Available Configuration Parameters](#available-configuration-parameters) for more information on these parameters. ```bash -docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:15.0.3 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:15.1.0 ``` ### Shell Access @@ -2643,7 +2643,7 @@ version: '2.3' services: gitlab: - image: sameersbn/gitlab:15.0.3 + image: sameersbn/gitlab:15.1.0 healthcheck: test: ["CMD", "/usr/local/sbin/healthcheck"] interval: 1m diff --git a/VERSION b/VERSION index 13577ced6..d14dfbac3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -15.0.3 +15.1.0 diff --git a/assets/build/config/database.yml.postgresql b/assets/build/config/database.yml.postgresql new file mode 100644 index 000000000..180f8b018 --- /dev/null +++ b/assets/build/config/database.yml.postgresql @@ -0,0 +1,100 @@ +# HINT: This file is identical to the corresponding configuration file from the +# upstream repository, where the additional defined entries for `geo` had to be +# removed. Otherwise, it is not possible to build the image, since the build +# will fail with the error message: +# +# > rake aborted! +# > ERROR: This installation of GitLab uses unsupported database names in 'config/database.yml': geo. The only supported ones are main, ci. +# +# This adjustment is hopefully only a temporary workaround (see +# ). + +# +# PRODUCTION +# +production: + main: + adapter: postgresql + encoding: unicode + database: gitlabhq_production + username: git + password: "secure password" + host: localhost + # load_balancing: + # hosts: + # - host1.example.com + # - host2.example.com + # discover: + # nameserver: 1.2.3.4 + # port: 8600 + # record: secondary.postgresql.service.consul + # interval: 300 +# geo: +# adapter: postgresql +# encoding: unicode +# database: gitlabhq_geo_production +# username: git +# password: "secure password" +# host: localhost + +# +# Development specific +# +development: + main: + adapter: postgresql + encoding: unicode + database: gitlabhq_development + username: postgres + password: "secure password" + host: localhost + variables: + statement_timeout: 15s +# geo: +# adapter: postgresql +# encoding: unicode +# database: gitlabhq_geo_development +# username: postgres +# password: "secure password" +# host: localhost + +# +# Staging specific +# +staging: + main: + adapter: postgresql + encoding: unicode + database: gitlabhq_staging + username: git + password: "secure password" + host: localhost +# geo: +# adapter: postgresql +# encoding: unicode +# database: gitlabhq_geo_staging +# username: git +# password: "secure password" +# host: localhost + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: &test + main: + adapter: postgresql + encoding: unicode + database: gitlabhq_test + username: postgres + password: + host: localhost + prepared_statements: false + variables: + statement_timeout: 15s +# geo: +# adapter: postgresql +# encoding: unicode +# database: gitlabhq_geo_test +# username: postgres +# password: +# host: localhost diff --git a/assets/build/install.sh b/assets/build/install.sh index 3d488e156..f35bc1555 100755 --- a/assets/build/install.sh +++ b/assets/build/install.sh @@ -187,7 +187,11 @@ chown -R ${GITLAB_USER}: ${GITLAB_HOME} # gitlab.yml and database.yml are required for `assets:precompile` exec_as_git cp ${GITLAB_INSTALL_DIR}/config/resque.yml.example ${GITLAB_INSTALL_DIR}/config/resque.yml exec_as_git cp ${GITLAB_INSTALL_DIR}/config/gitlab.yml.example ${GITLAB_INSTALL_DIR}/config/gitlab.yml -exec_as_git cp ${GITLAB_INSTALL_DIR}/config/database.yml.postgresql ${GITLAB_INSTALL_DIR}/config/database.yml +# +# Temporary workaround, see +# +# exec_as_git cp ${GITLAB_INSTALL_DIR}/config/database.yml.postgresql ${GITLAB_INSTALL_DIR}/config/database.yml +exec_as_git cp ${GITLAB_BUILD_DIR}/config/database.yml.postgresql ${GITLAB_INSTALL_DIR}/config/database.yml # Installs nodejs packages required to compile webpack exec_as_git yarn install --production --pure-lockfile diff --git a/contrib/docker-swarm/docker-compose.yml b/contrib/docker-swarm/docker-compose.yml index 7a4ef6903..d4ffcce7b 100644 --- a/contrib/docker-swarm/docker-compose.yml +++ b/contrib/docker-swarm/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:15.0.3 + image: sameersbn/gitlab:15.1.0 depends_on: - redis - postgresql diff --git a/docker-compose.swarm.yml b/docker-compose.swarm.yml index e73d29d2d..edcd69cb5 100644 --- a/docker-compose.swarm.yml +++ b/docker-compose.swarm.yml @@ -63,7 +63,7 @@ services: - traefik-public gitlab: - image: sameersbn/gitlab:15.0.3 + image: sameersbn/gitlab:15.1.0 depends_on: - redis - postgresql diff --git a/docker-compose.yml b/docker-compose.yml index f8b1ba667..61b59a0c3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:15.0.3 + image: sameersbn/gitlab:15.1.0 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index fb9e873ac..00aaa6f51 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -289,7 +289,7 @@ docker stop registry gitlab && docker rm registry gitlab Execute the rake task with a removeable container. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:15.0.3 app:rake gitlab:backup:create + sameersbn/gitlab:15.1.0 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -305,7 +305,7 @@ Execute the rake task to restore a backup. Make sure you run the container in in ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:15.0.3 app:rake gitlab:backup:restore + sameersbn/gitlab:15.1.0 app:rake gitlab:backup:restore ``` The list of all available backups will be displayed in reverse chronological order. Select the backup you want to restore and continue. @@ -314,7 +314,7 @@ To avoid user interaction in the restore operation, specify the timestamp of the ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:15.0.3 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:15.1.0 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -325,7 +325,7 @@ If you want enable this feature for an existing instance of GitLab you need to d - **Step 1**: Update the docker image. ```bash -docker pull sameersbn/gitlab:15.0.3 +docker pull sameersbn/gitlab:15.1.0 ``` - **Step 2**: Stop and remove the currently running image @@ -378,7 +378,7 @@ docker run --name gitlab -d [PREVIOUS_OPTIONS] \ --env 'GITLAB_REGISTRY_CERT_PATH=/certs/registry-auth.crt' \ --env 'GITLAB_REGISTRY_KEY_PATH=/certs/registry-auth.key' \ --link registry:registry -sameersbn/gitlab:15.0.3 +sameersbn/gitlab:15.1.0 ``` diff --git a/docs/docker-compose-keycloak.yml b/docs/docker-compose-keycloak.yml index f0ac45286..9a5a027a7 100644 --- a/docs/docker-compose-keycloak.yml +++ b/docs/docker-compose-keycloak.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:15.0.3 + image: sameersbn/gitlab:15.1.0 depends_on: - redis - postgresql diff --git a/docs/docker-compose-registry.yml b/docs/docker-compose-registry.yml index a4f258f47..7447fe332 100644 --- a/docs/docker-compose-registry.yml +++ b/docs/docker-compose-registry.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:15.0.3 + image: sameersbn/gitlab:15.1.0 volumes: - gitlab-data:/home/git/data:Z - gitlab-logs:/var/log/gitlab diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index ea5e8eda8..192bb1d25 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:15.0.3 + image: sameersbn/gitlab:15.1.0 env: - name: TZ value: Asia/Kolkata diff --git a/scripts/release-notes.sh b/scripts/release-notes.sh index f84c2ba23..bc5140e16 100755 --- a/scripts/release-notes.sh +++ b/scripts/release-notes.sh @@ -40,6 +40,16 @@ Please note that this version does not yet include any rework as a consequence o You are kindly invited to provide contributions. +### Version-specific instructions for upgrades + +Please consider the version specific upgrading instructions for [GitLab CE 15.0.x](https://docs.gitlab.com/ee/update/#1500) and [GitLab CE 15.1.x](https://docs.gitlab.com/ee/update/#1510) + +* Elasticsearch 6.8 is no longer supported. Before you upgrade to GitLab 15.0, update Elasticsearch to any 7.x version. +* If you run external PostgreSQL, particularly AWS RDS, check you have a PostgreSQL bug fix to avoid the database crashing. +* The use of encrypted S3 buckets with storage-specific configuration is no longer supported after removing support for using background_upload. +* The certificate-based Kubernetes integration (DEPRECATED) is disabled by default, but you can be re-enable it through the certificate_based_clusters feature flag until GitLab 16.0. +* In GitLab 15.1.0, we are switching Rails ActiveSupport::Digest to use SHA256 instead of MD5. This affects ETag key generation for resources such as raw Snippet file downloads. In order to ensure consistent ETag key generation across multiple web nodes when upgrading, all servers must first be upgraded to 15.1.Z before upgrading to 15.2.0 or later. + ## Contributing If you find this image useful here's how you can help: