From d090d6055d2707a5eb98d7834ac4775dd9770871 Mon Sep 17 00:00:00 2001 From: Steven Achilles Date: Tue, 26 May 2026 21:15:39 +0200 Subject: [PATCH 1/3] Upgrade GitLab CE to 19.0.0 --- Changelog.md | 8 ++++ Dockerfile | 10 ++--- README.md | 54 ++++++++++++------------- VERSION | 2 +- contrib/docker-swarm/docker-compose.yml | 2 +- docker-compose.swarm.yml | 2 +- docker-compose.yml | 2 +- docs/container_registry.md | 10 ++--- docs/docker-compose-keycloak.yml | 2 +- docs/docker-compose-registry.yml | 2 +- kubernetes/gitlab-rc.yml | 2 +- 11 files changed, 52 insertions(+), 44 deletions(-) diff --git a/Changelog.md b/Changelog.md index 0104ccf91..f2d22a529 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,14 @@ 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. +## 19.0.0 + +- gitlab: upgrade CE to v19.0.0 +- gitaly: upgrade to v19.0.0 +- gitlab-pages: upgrade to v19.0.0 +- gitlab-shell: upgrade to v14.51.0 +- rubygems: upgrade to v4.0.12 + ## 18.11.3 - gitlab: upgrade CE to v18.11.3 diff --git a/Dockerfile b/Dockerfile index 022f70bcf..415ae0aa3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,15 @@ FROM ubuntu:noble-20260410 -ARG VERSION=18.11.3 +ARG VERSION=19.0.0 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=3.3.11 \ RUBY_SOURCE_SHA256SUM="59f0fafb1a59a05dc3765117af3fa68e153eb48254708549f321c1e9e078d7a0" \ - RUBYGEMS_VERSION=4.0.11 \ + RUBYGEMS_VERSION=4.0.12 \ GOLANG_VERSION=1.26.3 \ - GITLAB_SHELL_VERSION=14.49.0 \ - GITLAB_PAGES_VERSION=18.11.3 \ - GITALY_SERVER_VERSION=18.11.3 \ + GITLAB_SHELL_VERSION=14.51.0 \ + GITLAB_PAGES_VERSION=19.0.0 \ + GITALY_SERVER_VERSION=19.0.0 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index babad17b5..0c42b3c64 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# sameersbn/gitlab:18.11.3 +# sameersbn/gitlab:19.0.0 [![CircleCI](https://circleci.com/gh/sameersbn/docker-gitlab/tree/master.svg?style=svg)](https://circleci.com/gh/sameersbn/docker-gitlab/tree/master) @@ -129,7 +129,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:18.11.3 +docker pull sameersbn/gitlab:19.0.0 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -211,7 +211,7 @@ docker run --name gitlab -d \ --env 'GITLAB_SECRETS_ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=["long-and-random-alpha-numeric-string"]' \ --env 'GITLAB_SECRETS_ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=long-and-random-alpha-numeric-string' \ --volume /srv/docker/gitlab/gitlab:/home/git/data \ - sameersbn/gitlab:18.11.3 + sameersbn/gitlab:19.0.0 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -246,7 +246,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:18.11.3 + sameersbn/gitlab:19.0.0 ``` ### Database @@ -311,7 +311,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:18.11.3 + sameersbn/gitlab:19.0.0 ``` ##### Linking to PostgreSQL Container @@ -355,7 +355,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:18.11.3 + sameersbn/gitlab:19.0.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: @@ -393,7 +393,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:18.11.3 + sameersbn/gitlab:19.0.0 ``` #### Linking to Redis Container @@ -420,7 +420,7 @@ We are now ready to start the GitLab application. ```bash docker run --name gitlab -d --link gitlab-redis:redisio \ - sameersbn/gitlab:18.11.3 + sameersbn/gitlab:19.0.0 ``` #### Mail @@ -433,7 +433,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:18.11.3 + sameersbn/gitlab:19.0.0 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -473,7 +473,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:18.11.3 + sameersbn/gitlab:19.0.0 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -557,7 +557,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:18.11.3 + sameersbn/gitlab:19.0.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. @@ -573,7 +573,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:18.11.3 + sameersbn/gitlab:19.0.0 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -596,7 +596,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:18.11.3 + sameersbn/gitlab:19.0.0 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -644,7 +644,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:18.11.3 + sameersbn/gitlab:19.0.0 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -871,14 +871,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:18.11.3 + sameersbn/gitlab:19.0.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:18.11.3 app:sanitize + sameersbn/gitlab:19.0.0 app:sanitize ``` #### Piwik @@ -2677,7 +2677,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.11.3 app:rake gitlab:backup:create + sameersbn/gitlab:19.0.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. @@ -2712,14 +2712,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.11.3 app:rake db:setup + sameersbn/gitlab:19.0.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:18.11.3 app:rake gitlab:backup:restore + sameersbn/gitlab:19.0.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. @@ -2728,7 +2728,7 @@ To avoid user interaction in the restore operation, specify the timestamp, date ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.11.3 app:rake gitlab:backup:restore BACKUP=1515629493_2020_12_06_13.0.6 + sameersbn/gitlab:19.0.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. @@ -2777,7 +2777,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:18.11.3 app:rake gitlab:env:info + sameersbn/gitlab:19.0.0 app:rake gitlab:env:info ``` You can also use `docker exec` to run rake tasks on running gitlab instance. For example, @@ -2790,7 +2790,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.11.3 app:rake gitlab:import:repos + sameersbn/gitlab:19.0.0 app:rake gitlab:import:repos ``` Or @@ -2821,7 +2821,7 @@ Copy all the **bare** git repositories to the `repositories/` directory of the [ ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.11.3 app:rake gitlab:import:repos + sameersbn/gitlab:19.0.0 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -2852,12 +2852,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:18.11.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:19.0.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:18.11.3 +docker pull sameersbn/gitlab:19.0.0 ``` - **Step 2**: Stop and remove the currently running image @@ -2887,7 +2887,7 @@ Replace `x.x.x` with the version you are upgrading from. For example, if you are > **Note**: Since Gitlab 17.8 you need to provide `GITLAB_SECRETS_ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY`,`GITLAB_SECRETS_ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY` and `GITLAB_SECRETS_ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT`. If not provided, these keys will be generated by gitlab. The image can be started without setting these parameters, **but you will lose the settings when you shutting down the container without taking a backup of `secrets.yml` and settings stored securely (such as the Dependency Proxy) will be unusable and unrecoverable.** ```bash -docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:18.11.3 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:19.0.0 ``` ### Shell Access @@ -2923,7 +2923,7 @@ You can also set your `docker-compose.yml` [healthcheck](https://docs.docker.com ```yml services: gitlab: - image: sameersbn/gitlab:18.11.3 + image: sameersbn/gitlab:19.0.0 healthcheck: test: ["CMD", "/usr/local/sbin/healthcheck"] interval: 1m diff --git a/VERSION b/VERSION index 9fff3949b..49e3587fb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -18.11.3 +19.0.0 diff --git a/contrib/docker-swarm/docker-compose.yml b/contrib/docker-swarm/docker-compose.yml index 80997cf6b..700917342 100644 --- a/contrib/docker-swarm/docker-compose.yml +++ b/contrib/docker-swarm/docker-compose.yml @@ -20,7 +20,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:18.11.3 + image: sameersbn/gitlab:19.0.0 depends_on: - redis - postgresql diff --git a/docker-compose.swarm.yml b/docker-compose.swarm.yml index d53aae52f..6467b958c 100644 --- a/docker-compose.swarm.yml +++ b/docker-compose.swarm.yml @@ -62,7 +62,7 @@ services: - traefik-public gitlab: - image: sameersbn/gitlab:18.11.3 + image: sameersbn/gitlab:19.0.0 depends_on: - redis - postgresql diff --git a/docker-compose.yml b/docker-compose.yml index 51b6d802f..b46ef8f2a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,7 +21,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:18.11.3 + image: sameersbn/gitlab:19.0.0 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index 9b0cc658c..053444d4e 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -298,7 +298,7 @@ Execute the rake task with a removeable container. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.11.3 app:rake gitlab:backup:create + sameersbn/gitlab:19.0.0 app:rake gitlab:backup:create ``` ### Restoring Backups @@ -315,7 +315,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:18.11.3 app:rake gitlab:backup:restore + sameersbn/gitlab:19.0.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. @@ -324,7 +324,7 @@ To avoid user interaction in the restore operation, specify the timestamp of the ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.11.3 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:19.0.0 app:rake gitlab:backup:restore BACKUP=1417624827 ``` ## Upgrading from an existing GitLab installation @@ -334,7 +334,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:18.11.3 +docker pull sameersbn/gitlab:19.0.0 ``` - **Step 2**: Stop and remove the currently running image @@ -388,7 +388,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:18.11.3 +sameersbn/gitlab:19.0.0 ``` [storage-config]: https://docs.docker.com/registry/configuration/#storage diff --git a/docs/docker-compose-keycloak.yml b/docs/docker-compose-keycloak.yml index c06e29ef6..31cf5cc39 100644 --- a/docs/docker-compose-keycloak.yml +++ b/docs/docker-compose-keycloak.yml @@ -20,7 +20,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:18.11.3 + image: sameersbn/gitlab:19.0.0 depends_on: - redis - postgresql diff --git a/docs/docker-compose-registry.yml b/docs/docker-compose-registry.yml index 8f6ee9078..1563ac091 100644 --- a/docs/docker-compose-registry.yml +++ b/docs/docker-compose-registry.yml @@ -20,7 +20,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:18.11.3 + image: sameersbn/gitlab:19.0.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 a7b8978aa..87e28e1df 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:18.11.3 + image: sameersbn/gitlab:19.0.0 env: - name: TZ value: Asia/Kolkata From 432c58eef59b6e65d0bfe2fa3a14561421b1dc69 Mon Sep 17 00:00:00 2001 From: Steven Achilles Date: Tue, 26 May 2026 21:24:59 +0200 Subject: [PATCH 2/3] Update script to generate release notes --- scripts/release-notes.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/release-notes.sh b/scripts/release-notes.sh index db67c17fd..727369be2 100755 --- a/scripts/release-notes.sh +++ b/scripts/release-notes.sh @@ -42,8 +42,8 @@ Don't forget to consider the version specific upgrading instructions for [GitLab Please note: -- Before upgrading to GitLab 18 make sure to read and understand the [notes about breaking changes](https://about.gitlab.com/blog/2025/04/18/a-guide-to-the-breaking-changes-in-gitlab-18-0/). -- In GitLab 18.0 and later, [PostgreSQL 16 or later is required](https://docs.gitlab.com/install/installation/#software-requirements). +- Before upgrading to [GitLab 19](https://docs.gitlab.com/releases/19/gitlab-19-0-released/) make sure to read and understand the [notes about breaking changes](https://about.gitlab.com/blog/a-guide-to-the-breaking-changes-in-gitlab-19-0/). +- In GitLab 19.0 and later, [PostgreSQL 17 is the minimum supported version](https://docs.gitlab.com/releases/19/gitlab-19-0-released/#postgresql-17-minimum-requirement). - See issues to be aware of when upgrading: . ## Contributing From 63fece7f95c813fbc558ae3202d41406aee0db75 Mon Sep 17 00:00:00 2001 From: Steven Achilles Date: Tue, 26 May 2026 22:29:37 +0200 Subject: [PATCH 3/3] Compiling node asses as git user --- assets/build/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/build/install.sh b/assets/build/install.sh index ee1ba2668..b923c83c4 100755 --- a/assets/build/install.sh +++ b/assets/build/install.sh @@ -211,7 +211,7 @@ chown ${GITLAB_USER}: ${GITLAB_INSTALL_DIR}/config/database.yml exec_as_git yarn install --production --pure-lockfile echo "Compiling assets. Please be patient, this could take a while..." -node scripts/frontend/infection_scanner/infection_scanner.mjs +exec_as_git node scripts/frontend/infection_scanner/infection_scanner.mjs exec_as_git bundle exec rake gitlab:assets:compile USE_DB=false SKIP_STORAGE_VALIDATION=true NODE_OPTIONS="--max-old-space-size=8192" # remove auto generated ${GITLAB_DATA_DIR}/config/secrets.yml