Skip to content

Commit

Permalink
Upgrade to 12.8.0 (#2090)
Browse files Browse the repository at this point in the history
* Upgrade GitLab CE to 12.8.0

* Update gitlab-workhorse to 8.21.0

Signed-off-by: solidnerd <[email protected]>

* Update gitlab-pages to 1.16.0

Signed-off-by: solidnerd <[email protected]>

* Update gitaly to 12.8.0

Signed-off-by: solidnerd <[email protected]>

* fix: gitaly-hooks missing symlink

Signed-off-by: solidnerd <[email protected]>

* chore(base-image): update base image to 20200219

* fix: unicorn worker limits

Signed-off-by: solidnerd <[email protected]>

* fix(ci): disable caching

Signed-off-by: solidnerd <[email protected]>

* feat: add patch support for gitlab during the installation

Signed-off-by: solidnerd <[email protected]>

* fix: ArgumentError: 'import/{{oauth2_generic_name}}' is not a supported controller name

Closes #2101

Signed-off-by: solidnerd <[email protected]>

* fix: add fix for upstream gitaly problems during a fresh install

Signed-off-by: solidnerd <[email protected]>

* chore: update changelog.md
  • Loading branch information
solidnerd authored Mar 29, 2020
1 parent a6e972e commit 67a5fc3
Show file tree
Hide file tree
Showing 13 changed files with 99 additions and 75 deletions.
27 changes: 0 additions & 27 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,23 +34,6 @@ jobs:
docker version
docker info
- restore_cache:
keys:
- cache-v2-{{ .Branch }}
paths:
- /tmp/cache/layers.tar

- run:
name: Loading docker cache
command: |
if [[ -f /tmp/cache/layers.tar ]]; then
echo "Loading cache ..."
docker load -i /tmp/cache/layers.tar
docker image ls
else
echo "Couldn't find any caches"
fi
- run:
name: Build docker image
command: |
Expand All @@ -74,16 +57,6 @@ jobs:
docker run --network container:$(docker-compose ps -q gitlab) \
appropriate/curl --ipv4 --retry 15 --retry-delay 5 --retry-connrefused http://localhost/explore
- run:
name: Generate docker build image cache
command: |
mkdir -p /tmp/cache/
docker save -o /tmp/cache/layers.tar ${IMAGE_NAME}
- save_cache:
key: cache-v2-{{ .Branch }}
paths:
- /tmp/cache/layers.tar
workflows:
version: 2
Expand Down
12 changes: 10 additions & 2 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,18 @@
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.

**12.7.8*
**12.8.0**
- gitlab: upgrade CE to v12.8.0
- fix: ArgumentError: 'import/{{oauth2_generic_name}}' is not supported [#2101](https://github.com/sameersbn/docker-gitlab/issues/2101)

**12.7.8**
- Upgrade GitLab CE to 12.7.8

**12.7.7*
**12.7.7**
- Upgrade GitLab CE to 12.7.7
- Add Generic OAuth Provider PR#2070

**12.7.7**
- Upgrade GitLab CE to 12.7.7

**12.7.6**
Expand Down
10 changes: 5 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
FROM ubuntu:bionic-20191202
FROM ubuntu:bionic-20200219

ARG BUILD_DATE
ARG VCS_REF
ARG VERSION=12.7.8
ARG VERSION=12.8.0

ENV GITLAB_VERSION=${VERSION} \
RUBY_VERSION=2.6 \
GOLANG_VERSION=1.13.7 \
GITLAB_SHELL_VERSION=11.0.0 \
GITLAB_WORKHORSE_VERSION=8.20.0 \
GITLAB_PAGES_VERSION=1.12.0 \
GITALY_SERVER_VERSION=1.83.0 \
GITLAB_WORKHORSE_VERSION=8.21.0 \
GITLAB_PAGES_VERSION=1.16.0 \
GITALY_SERVER_VERSION=12.8.0 \
GITLAB_USER="git" \
GITLAB_HOME="/home/git" \
GITLAB_LOG_DIR="/var/log/gitlab" \
Expand Down
56 changes: 26 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[![Docker Repository on Quay.io](https://quay.io/repository/sameersbn/gitlab/status "Docker Repository on Quay.io")](https://quay.io/repository/sameersbn/gitlab)
[![](https://images.microbadger.com/badges/image/sameersbn/gitlab.svg)](http://microbadger.com/images/sameersbn/gitlab "Get your own image badge on microbadger.com")

# sameersbn/gitlab:12.7.8
# sameersbn/gitlab:12.8.0

- [Introduction](#introduction)
- [Changelog](Changelog.md)
Expand Down Expand Up @@ -125,7 +125,7 @@ Automated builds of the image are available on [Dockerhub](https://hub.docker.co
> **Note**: Builds are also available on [Quay.io](https://quay.io/repository/sameersbn/gitlab)
```bash
docker pull sameersbn/gitlab:12.7.8
docker pull sameersbn/gitlab:12.8.0
```

You can also pull the `latest` tag which is built from the repository *HEAD*
Expand Down Expand Up @@ -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:12.7.8
sameersbn/gitlab:12.8.0
```

*Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options*
Expand Down Expand Up @@ -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:12.7.8
sameersbn/gitlab:12.8.0
```

## Database
Expand All @@ -240,10 +240,6 @@ GitLab uses a database backend to store its data. You can configure this image t

### PostgreSQL

*NOTE:* PostgreSQL version 10 is highly recommended.

While the GitLab will most likely work with even latest version of PostgreSQL, it is recommended to use version 10.x.x., because this docker image includes some PostgreSQL tools from release 10. These tools are used for backups and other database maintenance tasks.

#### External PostgreSQL Server

The image also supports using an external PostgreSQL Server. This is also controlled via environment variables.
Expand All @@ -266,7 +262,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:12.7.8
sameersbn/gitlab:12.8.0
```

#### Linking to PostgreSQL Container
Expand Down Expand Up @@ -310,7 +306,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:12.7.8
sameersbn/gitlab:12.8.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:
Expand All @@ -337,7 +333,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:12.7.8
sameersbn/gitlab:12.8.0
```

### Linking to Redis Container
Expand All @@ -364,7 +360,7 @@ We are now ready to start the GitLab application.

```bash
docker run --name gitlab -d --link gitlab-redis:redisio \
sameersbn/gitlab:12.7.8
sameersbn/gitlab:12.8.0
```

### Mail
Expand All @@ -377,7 +373,7 @@ If you are using Gmail then all you need to do is:
docker run --name gitlab -d \
--env '[email protected]' --env 'SMTP_PASS=PASSWORD' \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:12.7.8
sameersbn/gitlab:12.8.0
```

Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified.
Expand All @@ -397,7 +393,7 @@ docker run --name gitlab -d \
--env '[email protected]' --env 'IMAP_PASS=PASSWORD' \
--env 'GITLAB_INCOMING_EMAIL_ADDRESS=USER+%{key}@gmail.com' \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:12.7.8
sameersbn/gitlab:12.8.0
```

Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified.
Expand Down Expand Up @@ -474,7 +470,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:12.7.8
sameersbn/gitlab:12.8.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.
Expand All @@ -490,7 +486,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:12.7.8
sameersbn/gitlab:12.8.0
```

If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`.
Expand All @@ -513,7 +509,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:12.7.8
sameersbn/gitlab:12.8.0
```

Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates.
Expand Down Expand Up @@ -561,7 +557,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:12.7.8
sameersbn/gitlab:12.8.0
```

GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`.
Expand Down Expand Up @@ -742,14 +738,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:12.7.8
sameersbn/gitlab:12.8.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:12.7.8 app:sanitize
sameersbn/gitlab:12.8.0 app:sanitize
```

### Piwik
Expand Down Expand Up @@ -1126,7 +1122,7 @@ Execute the rake task to create a backup.

```bash
docker run --name gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:12.7.8 app:rake gitlab:backup:create
sameersbn/gitlab:12.8.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.
Expand Down Expand Up @@ -1161,14 +1157,14 @@ you need to prepare the database:

```bash
docker run --name gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:12.7.8 app:rake db:setup
sameersbn/gitlab:12.8.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:12.7.8 app:rake gitlab:backup:restore
sameersbn/gitlab:12.8.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.
Expand All @@ -1177,7 +1173,7 @@ To avoid user interaction in the restore operation, specify the timestamp of the

```bash
docker run --name gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:12.7.8 app:rake gitlab:backup:restore BACKUP=1417624827
sameersbn/gitlab:12.8.0 app:rake gitlab:backup:restore BACKUP=1417624827
```

When using `docker-compose` you may use the following command to execute the restore.
Expand Down Expand Up @@ -1227,7 +1223,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:12.7.8 app:rake gitlab:env:info
sameersbn/gitlab:12.8.0 app:rake gitlab:env:info
```

You can also use `docker exec` to run raketasks on running gitlab instance. For example,
Expand All @@ -1240,7 +1236,7 @@ Similarly, to import bare repositories into GitLab project instance

```bash
docker run --name gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:12.7.8 app:rake gitlab:import:repos
sameersbn/gitlab:12.8.0 app:rake gitlab:import:repos
```

Or
Expand Down Expand Up @@ -1271,7 +1267,7 @@ Copy all the **bare** git repositories to the `repositories/` directory of the [

```bash
docker run --name gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:12.7.8 app:rake gitlab:import:repos
sameersbn/gitlab:12.8.0 app:rake gitlab:import:repos
```

Watch the logs and your repositories should be available into your new gitlab container.
Expand All @@ -1293,12 +1289,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure

> **Note**
>
> Upgrading to `sameersbn/gitlab:12.7.8` 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:12.8.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:12.7.8
docker pull sameersbn/gitlab:12.8.0
```

- **Step 2**: Stop and remove the currently running image
Expand All @@ -1324,7 +1320,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:12.7.8
docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.8.0
```

## Shell Access
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
12.7.8
12.8.0
9 changes: 9 additions & 0 deletions assets/build/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,11 @@ exec_as_git git config --global receive.advertisePushOptions true
echo "Cloning gitlab-foss v.${GITLAB_VERSION}..."
exec_as_git git clone -q -b v${GITLAB_VERSION} --depth 1 ${GITLAB_CLONE_URL} ${GITLAB_INSTALL_DIR}

if [[ -d "${GITLAB_BUILD_DIR}/patches" ]]; then
echo "Applying patches for gitlab-foss..."
exec_as_git git -C ${GITLAB_INSTALL_DIR} apply --ignore-whitespace < ${GITLAB_BUILD_DIR}/patches/*.patch
fi

GITLAB_SHELL_VERSION=${GITLAB_SHELL_VERSION:-$(cat ${GITLAB_INSTALL_DIR}/GITLAB_SHELL_VERSION)}
GITLAB_WORKHORSE_VERSION=${GITLAB_WORKHOUSE_VERSION:-$(cat ${GITLAB_INSTALL_DIR}/GITLAB_WORKHORSE_VERSION)}
GITLAB_PAGES_VERSION=${GITLAB_PAGES_VERSION:-$(cat ${GITLAB_INSTALL_DIR}/GITLAB_PAGES_VERSION)}
Expand Down Expand Up @@ -137,6 +142,10 @@ rm -rf ${GITLAB_BUILD_DIR}/go${GOLANG_VERSION}.linux-amd64.tar.gz ${GOROOT}
echo "Linking $(command -v gitaly-ssh) to /"
ln -s "$(command -v gitaly-ssh)" /

# Fix for gitaly-hooks
echo "Linking $(command -v gitaly-hooks) to /"
ln -s "$(command -v gitaly-hooks)" /

# remove HSTS config from the default headers, we configure it in nginx
exec_as_git sed -i "/headers\['Strict-Transport-Security'\]/d" ${GITLAB_INSTALL_DIR}/app/controllers/application_controller.rb

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
From 36bf91a3fd423d9ee564ae669a271c714362d648 Mon Sep 17 00:00:00 2001
From: solidnerd <[email protected]>
Date: Sun, 29 Mar 2020 11:14:40 +0200
Subject: [PATCH] fix: feature checking for gitaly on a fresh install

Signed-off-by: solidnerd <[email protected]>
---
lib/feature.rb | 2 ++
1 file changed, 2 insertions(+)

diff --git a/lib/feature.rb b/lib/feature.rb
index aadc2c64957..1d39a921465 100644
--- a/lib/feature.rb
+++ b/lib/feature.rb
@@ -33,6 +33,7 @@ class Feature

def persisted_names
return [] unless Gitlab::Database.exists?
+ return [] unless Feature::FlipperFeature.table_exists?

Gitlab::SafeRequestStore[:flipper_persisted_names] ||=
begin
@@ -57,6 +58,7 @@ class Feature
# During setup the database does not exist yet. So we haven't stored a value
# for the feature yet and return the default.
return default_enabled unless Gitlab::Database.exists?
+ return default_enabled unless Feature::FlipperFeature.table_exists?

feature = Feature.get(key)

--
2.25.2

3 changes: 1 addition & 2 deletions assets/runtime/config/gitlabhq/gitlab.yml
Original file line number Diff line number Diff line change
Expand Up @@ -590,8 +590,7 @@ production: &base
email: '{{OAUTH2_GENERIC_USER_EMAIL}}'
}
},
name: '{{OAUTH2_GENERIC_NAME}}'
}}
name: '{{OAUTH2_GENERIC_NAME}}' }}
- { name: 'azure_oauth2',
args: {
client_id: '{{OAUTH_AZURE_API_KEY}}',
Expand Down
Loading

0 comments on commit 67a5fc3

Please sign in to comment.