diff --git a/Changelog.md b/Changelog.md index bec58acda..4bb828551 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,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. +## 18.7.0 + +- gitlab: upgrade CE to v18.7.0 +- gitaly: upgrade to v18.7.0 +- gitlab-pages: upgrade to v18.7.0 +- gitlab-shell: upgrade to v14.45.5 + ## 18.6.2 - gitlab: upgrade CE to v18.6.2 diff --git a/Dockerfile b/Dockerfile index debfcd7c7..45c53dbaf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,25 @@ FROM ubuntu:noble-20251013 -ARG VERSION=18.6.2 +ARG VERSION=18.7.0 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=3.2.9 \ RUBY_SOURCE_SHA256SUM="abbad98db9aeb152773b0d35868e50003b8c467f3d06152577c4dfed9d88ed2a" \ RUBYGEMS_VERSION=3.7.2 \ GOLANG_VERSION=1.24.11 \ - GITLAB_SHELL_VERSION=14.45.3 \ - GITLAB_PAGES_VERSION=18.6.2 \ - GITALY_SERVER_VERSION=18.6.2 \ + GITLAB_SHELL_VERSION=14.45.5 \ + GITLAB_PAGES_VERSION=18.7.0 \ + GITALY_SERVER_VERSION=18.7.0 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ GITLAB_CACHE_DIR="/etc/docker-gitlab" \ RAILS_ENV=production \ NODE_ENV=production \ - NO_SOURCEMAPS=true + NO_SOURCEMAPS=true \ + # v18.5.2 : minimum = 16.5, maximum = 17.x (currently 17.6, is 170006) + POSTGRESQL_SERVER_REQUIRED_VERSION_MINIMUM=160005 \ + POSTGRESQL_SERVER_REQUIRED_VERSION_MAXIMUM=170100 ENV GITLAB_INSTALL_DIR="${GITLAB_HOME}/gitlab" \ GITLAB_SHELL_INSTALL_DIR="${GITLAB_HOME}/gitlab-shell" \ @@ -49,7 +52,7 @@ RUN set -ex && \ && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ sudo supervisor logrotate locales curl \ nginx openssh-server redis-tools \ - postgresql-client-13 postgresql-client-14 postgresql-client-15 postgresql-client-16 postgresql-client-17 \ + postgresql-client-16 postgresql-client-17 postgresql-client-18 \ python3 python3-docutils nodejs yarn gettext-base graphicsmagick \ libpq5 zlib1g libyaml-dev libssl-dev libgdbm-dev libre2-dev \ libreadline-dev libncurses5-dev libffi-dev curl openssh-server libxml2-dev libxslt-dev \ diff --git a/README.md b/README.md index c0685382f..b2a816d07 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# sameersbn/gitlab:18.6.2 +# sameersbn/gitlab:18.7.0 [![CircleCI](https://circleci.com/gh/sameersbn/docker-gitlab/tree/master.svg?style=svg)](https://circleci.com/gh/sameersbn/docker-gitlab/tree/master) @@ -128,7 +128,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.6.2 +docker pull sameersbn/gitlab:18.7.0 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -210,7 +210,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.6.2 + sameersbn/gitlab:18.7.0 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -245,7 +245,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.6.2 + sameersbn/gitlab:18.7.0 ``` ### Database @@ -310,7 +310,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.6.2 + sameersbn/gitlab:18.7.0 ``` ##### Linking to PostgreSQL Container @@ -354,7 +354,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.6.2 + sameersbn/gitlab:18.7.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: @@ -392,7 +392,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.6.2 + sameersbn/gitlab:18.7.0 ``` #### Linking to Redis Container @@ -419,7 +419,7 @@ We are now ready to start the GitLab application. ```bash docker run --name gitlab -d --link gitlab-redis:redisio \ - sameersbn/gitlab:18.6.2 + sameersbn/gitlab:18.7.0 ``` #### Mail @@ -432,7 +432,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.6.2 + sameersbn/gitlab:18.7.0 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -452,7 +452,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.6.2 + sameersbn/gitlab:18.7.0 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -536,7 +536,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.6.2 + sameersbn/gitlab:18.7.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. @@ -552,7 +552,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.6.2 + sameersbn/gitlab:18.7.0 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -575,7 +575,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.6.2 + sameersbn/gitlab:18.7.0 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -623,7 +623,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.6.2 + sameersbn/gitlab:18.7.0 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -850,14 +850,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.6.2 + sameersbn/gitlab:18.7.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.6.2 app:sanitize + sameersbn/gitlab:18.7.0 app:sanitize ``` #### Piwik @@ -2620,7 +2620,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.6.2 app:rake gitlab:backup:create + sameersbn/gitlab:18.7.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. @@ -2655,14 +2655,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.6.2 app:rake db:setup + sameersbn/gitlab:18.7.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.6.2 app:rake gitlab:backup:restore + sameersbn/gitlab:18.7.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. @@ -2671,7 +2671,7 @@ To avoid user interaction in the restore operation, specify the timestamp, date ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.6.2 app:rake gitlab:backup:restore BACKUP=1515629493_2020_12_06_13.0.6 + sameersbn/gitlab:18.7.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. @@ -2720,7 +2720,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.6.2 app:rake gitlab:env:info + sameersbn/gitlab:18.7.0 app:rake gitlab:env:info ``` You can also use `docker exec` to run rake tasks on running gitlab instance. For example, @@ -2733,7 +2733,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.6.2 app:rake gitlab:import:repos + sameersbn/gitlab:18.7.0 app:rake gitlab:import:repos ``` Or @@ -2764,7 +2764,7 @@ Copy all the **bare** git repositories to the `repositories/` directory of the [ ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.6.2 app:rake gitlab:import:repos + sameersbn/gitlab:18.7.0 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -2795,12 +2795,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:18.6.2` 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:18.7.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.6.2 +docker pull sameersbn/gitlab:18.7.0 ``` - **Step 2**: Stop and remove the currently running image @@ -2830,7 +2830,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.6.2 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:18.7.0 ``` ### Shell Access @@ -2866,7 +2866,7 @@ You can also set your `docker-compose.yml` [healthcheck](https://docs.docker.com ```yml services: gitlab: - image: sameersbn/gitlab:18.6.2 + image: sameersbn/gitlab:18.7.0 healthcheck: test: ["CMD", "/usr/local/sbin/healthcheck"] interval: 1m diff --git a/VERSION b/VERSION index fc558a423..fb67e3d51 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -18.6.2 +18.7.0 diff --git a/assets/runtime/functions b/assets/runtime/functions index d714f8c80..6de9c4c3f 100644 --- a/assets/runtime/functions +++ b/assets/runtime/functions @@ -190,13 +190,25 @@ gitlab_generate_postgresqlrc() { echo "- Detected server version: ${DB_SERVER_VERSION}" + # remove leading zero (prior to 10.x it was like "090605" so that cannot treated as number) + DB_SERVER_VERSION="${DB_SERVER_VERSION##+(0)}" + # Anyway, we can get major version (8, 9, 10 and so on) by dividing by 10000. # DB_SERVER_VERSION_MAJOR=${DB_SERVER_VERSION%%.*} DB_SERVER_VERSION_MAJOR=$((DB_SERVER_VERSION/10000)) DB_CLIENT_VERSION_PACKAGE_NAME= + # Check version requirement + if [[ "${DB_SERVER_VERSION}" -lt "${POSTGRESQL_SERVER_REQUIRED_VERSION_MINIMUM}" + || "${DB_SERVER_VERSION}" -gt "${POSTGRESQL_SERVER_REQUIRED_VERSION_MAXIMUM}" + ]]; then + echo " Version requirement mismatch! (${POSTGRESQL_SERVER_REQUIRED_VERSION_MINIMUM} < ${DB_SERVER_VERSION} < ${POSTGRESQL_SERVER_REQUIRED_VERSION_MAXIMUM})" + echo " Aborting.." + return 1 + fi + if [[ "${DB_SERVER_VERSION_MAJOR}" -ge 10 ]]; then - # v10 or later: use "rought major version" as version number in package name + # v10 or later: use "rough major version" as version number in package name DB_CLIENT_VERSION_PACKAGE_NAME=${DB_SERVER_VERSION_MAJOR} else # prior to v10: convert diff --git a/contrib/docker-swarm/docker-compose.yml b/contrib/docker-swarm/docker-compose.yml index 21ddc5832..8c249db1c 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.6.2 + image: sameersbn/gitlab:18.7.0 depends_on: - redis - postgresql diff --git a/docker-compose.swarm.yml b/docker-compose.swarm.yml index 8938757e2..e7fe1d4bf 100644 --- a/docker-compose.swarm.yml +++ b/docker-compose.swarm.yml @@ -62,7 +62,7 @@ services: - traefik-public gitlab: - image: sameersbn/gitlab:18.6.2 + image: sameersbn/gitlab:18.7.0 depends_on: - redis - postgresql diff --git a/docker-compose.yml b/docker-compose.yml index 52d87375c..cc74b2440 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,7 +21,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:18.6.2 + image: sameersbn/gitlab:18.7.0 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index f0f99189b..0a0671bfa 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -291,7 +291,7 @@ Execute the rake task with a removeable container. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:18.6.2 app:rake gitlab:backup:create + sameersbn/gitlab:18.7.0 app:rake gitlab:backup:create ``` ### Restoring Backups @@ -308,7 +308,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.6.2 app:rake gitlab:backup:restore + sameersbn/gitlab:18.7.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. @@ -317,7 +317,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.6.2 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:18.7.0 app:rake gitlab:backup:restore BACKUP=1417624827 ``` ## Upgrading from an existing GitLab installation @@ -327,7 +327,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.6.2 +docker pull sameersbn/gitlab:18.7.0 ``` - **Step 2**: Stop and remove the currently running image @@ -381,7 +381,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.6.2 +sameersbn/gitlab:18.7.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 b65c86b6d..451aa5cfe 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.6.2 + image: sameersbn/gitlab:18.7.0 depends_on: - redis - postgresql diff --git a/docs/docker-compose-registry.yml b/docs/docker-compose-registry.yml index cd9f99527..b14727075 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.6.2 + image: sameersbn/gitlab:18.7.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 eb4ee606e..0b88ea69f 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:18.6.2 + image: sameersbn/gitlab:18.7.0 env: - name: TZ value: Asia/Kolkata