Merge pull request #852 from SolidNerd/upgrade_to_8_11_0

GitLab 8.11.0
This commit is contained in:
Niclas Mietz 2016-08-23 22:58:05 +02:00 committed by GitHub
commit 4cd648348f
12 changed files with 111 additions and 43 deletions

View File

@ -2,6 +2,11 @@
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-ce/blob/master/CHANGELOG) for the list of changes in GitLab.
**8.11.0**
- gitlab: upgrade to CE v8.11.0
- added `GITLAB_SECRETS_SECRET_KEY_BASE`
- added `GITLAB_SECRETS_OTP_KEY_BASE`
**8.10.7**
- gitlab: upgrade to CE v8.10.7

View File

@ -1,9 +1,10 @@
FROM sameersbn/ubuntu:14.04.20160817
MAINTAINER sameer@damagehead.com
ENV GITLAB_VERSION=8.10.7 \
ENV GITLAB_VERSION=8.11.0 \
RUBY_VERSION=2.3 \
GOLANG_VERSION=1.5.3 \
GITLAB_SHELL_VERSION=3.2.1 \
GITLAB_SHELL_VERSION=3.4.0 \
GITLAB_WORKHORSE_VERSION=0.7.8 \
GITLAB_USER="git" \
GITLAB_HOME="/home/git" \
@ -29,7 +30,7 @@ RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E1DD270288B4E60
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y supervisor logrotate locales curl \
nginx openssh-server mysql-client postgresql-client redis-tools \
git-core ruby2.1 python2.7 python-docutils nodejs gettext-base \
git-core ruby${RUBY_VERSION} python2.7 python-docutils nodejs gettext-base \
libmysqlclient18 libpq5 zlib1g libyaml-0-2 libssl1.0.0 \
libgdbm3 libreadline6 libncurses5 libffi6 \
libxml2 libxslt1.1 libcurl3 libicu52 \

View File

@ -1,6 +1,6 @@
[![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:8.10.7
# sameersbn/gitlab:8.11.0
- [Introduction](#introduction)
- [Changelog](Changelog.md)
@ -119,7 +119,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:8.10.7
docker pull sameersbn/gitlab:8.11.0
```
You can also pull the `latest` tag which is built from the repository *HEAD*
@ -142,7 +142,7 @@ The quickest way to get started is using [docker-compose](https://docs.docker.co
wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
```
Generate a random string that is at least `32` characters long and assign to `GITLAB_SECRETS_DB_KEY_BASE` environment variable. Once set you should not change this value and ensure you backup this value.
Generate a random string that is at least `32` characters long and assign to `GITLAB_SECRETS_DB_KEY_BASE` and generate a random string that is at least `64` characters long for `GITLAB_SECRETS_SECRET_KEY_BASE` and `GITLAB_SECRETS_OTP_KEY_BASE` . Once set you should not change this value and ensure you backup this value.
> **Tip**: You can generate a random string using `pwgen -Bsv1 64` and assign it as the value of `GITLAB_SECRETS_DB_KEY_BASE`.
@ -181,8 +181,10 @@ docker run --name gitlab -d \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
--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:8.10.7
sameersbn/gitlab:8.11.0
```
*Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options*
@ -217,7 +219,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:8.10.7
sameersbn/gitlab:8.11.0
```
## Database
@ -250,7 +252,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:8.10.7
sameersbn/gitlab:8.11.0
```
#### Linking to PostgreSQL Container
@ -294,7 +296,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:8.10.7
sameersbn/gitlab:8.11.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:
@ -348,7 +350,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:8.10.7
sameersbn/gitlab:8.11.0
```
#### Linking to MySQL Container
@ -391,7 +393,7 @@ We are now ready to start the GitLab application.
```bash
docker run --name gitlab -d --link gitlab-mysql:mysql \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:8.10.7
sameersbn/gitlab:8.11.0
```
Here the image will also automatically fetch the `DB_NAME`, `DB_USER` and `DB_PASS` variables from the mysql container as they are specified in the `docker run` command for the mysql container. This is made possible using the magic of docker links and works with the following images:
@ -418,7 +420,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:8.10.7
sameersbn/gitlab:8.11.0
```
### Linking to Redis Container
@ -445,7 +447,7 @@ We are now ready to start the GitLab application.
```bash
docker run --name gitlab -d --link gitlab-redis:redisio \
sameersbn/gitlab:8.10.7
sameersbn/gitlab:8.11.0
```
### Mail
@ -458,7 +460,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:8.10.7
sameersbn/gitlab:8.11.0
```
Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified.
@ -478,7 +480,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:8.10.7
sameersbn/gitlab:8.11.0
```
Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified.
@ -555,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:8.10.7
sameersbn/gitlab:8.11.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.
@ -571,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:8.10.7
sameersbn/gitlab:8.11.0
```
If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`.
@ -594,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:8.10.7
sameersbn/gitlab:8.11.0
```
Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates.
@ -642,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:8.10.7
sameersbn/gitlab:8.11.0
```
GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`.
@ -760,14 +762,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:8.10.7
sameersbn/gitlab:8.11.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:8.10.7 app:sanitize
sameersbn/gitlab:8.11.0 app:sanitize
```
### Piwik
@ -791,6 +793,8 @@ Below is the complete list of available options that can be used to customize yo
| `GITLAB_CI_HOST` | If you are migrating from GitLab CI use this parameter to configure the redirection to the GitLab service so that your existing runners continue to work without any changes. No defaults. |
| `GITLAB_PORT` | The port of the GitLab server. This value indicates the public port on which the GitLab application will be accessible on the network and appropriately configures GitLab to generate the correct urls. It does not affect the port on which the internal nginx server will be listening on. Defaults to `443` if `GITLAB_HTTPS=true`, else defaults to `80`. |
| `GITLAB_SECRETS_DB_KEY_BASE` | Encryption key for special GitLab variables in the database. Ensure that your key is at least 32 characters long and that you don't lose it. You can generate one using `pwgen -Bsv1 64`. If you are migrating from GitLab CI, you need to set this value to the value of `GITLAB_CI_SECRETS_DB_KEY_BASE`. No defaults. |
| `GITLAB_SECRETS_SECRET_KEY_BASE` | Encryption key for GitLab. Ensure that your key is at least 64 characters long and that you don't lose it. You can generate one using `pwgen -Bsv1 64`. No defaults. |
| `GITLAB_SECRETS_OTP_KEY_BASE` | Encryption key for OTP related stuff with GitLab. Ensure that your key is at least 64 characters long and that you don't lose it. You can generate one using `pwgen -Bsv1 64`. No defaults. |
| `GITLAB_TIMEZONE` | Configure the timezone for the gitlab application. This configuration does not effect cron jobs. Defaults to `UTC`. See the list of [acceptable values](http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html). |
| `GITLAB_ROOT_PASSWORD` | The password for the root user on firstrun. Defaults to `5iveL!fe`. |
| `GITLAB_ROOT_EMAIL` | The email for the root user on firstrun. Defaults to `admin@example.com` |
@ -996,7 +1000,7 @@ Execute the rake task to create a backup.
```bash
docker run --name gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:8.10.7 app:rake gitlab:backup:create
sameersbn/gitlab:8.11.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.
@ -1017,7 +1021,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:8.10.7 app:rake gitlab:backup:restore
sameersbn/gitlab:8.11.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.
@ -1026,7 +1030,7 @@ To avoid user interaction in the restore operation, specify the timestamp of the
```bash
docker run --name gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:8.10.7 app:rake gitlab:backup:restore BACKUP=1417624827
sameersbn/gitlab:8.11.0 app:rake gitlab:backup:restore BACKUP=1417624827
```
## Automated Backups
@ -1051,7 +1055,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:8.10.7 app:rake gitlab:env:info
sameersbn/gitlab:8.11.0 app:rake gitlab:env:info
```
You can also use `docker exec` to run raketasks on running gitlab instance. For example,
@ -1064,7 +1068,7 @@ Similarly, to import bare repositories into GitLab project instance
```bash
docker run --name gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:8.10.7 app:rake gitlab:import:repos
sameersbn/gitlab:8.11.0 app:rake gitlab:import:repos
```
Or
@ -1083,7 +1087,7 @@ Copy all the **bare** git repositories to the `repositories/` directory of the [
```bash
docker run --name gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:8.10.7 app:rake gitlab:import:repos
sameersbn/gitlab:8.11.0 app:rake gitlab:import:repos
```
Watch the logs and your repositories should be available into your new gitlab container.
@ -1104,12 +1108,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure
> **Note**
>
> Upgrading to `sameersbn/gitlab:8.10.7` 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:8.11.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:8.10.7
docker pull sameersbn/gitlab:8.11.0
```
- **Step 2**: Stop and remove the currently running image
@ -1131,9 +1135,10 @@ Replace `x.x.x` with the version you are upgrading from. For example, if you are
- **Step 4**: Start the image
> **Note**: Since GitLab `8.0.0` you need to provide the `GITLAB_SECRETS_DB_KEY_BASE` parameter while starting the image.
> **Note**: Since GitLab `8.11.0` you need to provide the `GITLAB_SECRETS_SECRET_KEY_BASE` and `GITLAB_SECRETS_OTP_KEY_BASE` parameter while starting the image.
```bash
docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:8.10.7
docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:8.11.0
```
## Shell Access

View File

@ -1 +1 @@
8.10.7
8.11.0

View File

@ -8,7 +8,7 @@ GITLAB_WORKHORSE_URL=https://gitlab.com/gitlab-org/gitlab-workhorse/repository/a
GEM_CACHE_DIR="${GITLAB_BUILD_DIR}/cache"
BUILD_DEPENDENCIES="gcc g++ make patch pkg-config cmake paxctl \
libc6-dev ruby2.1-dev \
libc6-dev ruby${RUBY_VERSION}-dev \
libmysqlclient-dev libpq-dev zlib1g-dev libyaml-dev libssl-dev \
libgdbm-dev libreadline-dev libncurses5-dev libffi-dev \
libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev"

View File

@ -1,4 +1,34 @@
# If you change this file in a Merge Request, please also create
# a Merge Request on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests
#
production: redis://{{REDIS_HOST}}:{{REDIS_PORT}}/{{REDIS_DB_NUMBER}}
development:
url: redis://localhost:6379
# sentinels:
# -
# host: localhost
# port: 26380 # point to sentinel, not to redis port
# -
# host: slave2
# port: 26381 # point to sentinel, not to redis port
test:
url: redis://localhost:6379
production:
# Redis (single instance)
url: redis://{{REDIS_HOST}}:{{REDIS_PORT}}/{{REDIS_DB_NUMBER}}
##
# Redis + Sentinel (for HA)
#
# Please read instructions carefully before using it as you may lose data:
# http://redis.io/topics/sentinel
#
# You must specify a list of a few sentinels that will handle client connection
# please read here for more information: https://docs.gitlab.com/ce/administration/high_availability/redis.html
##
# url: redis://master:6379
# sentinels:
# -
# host: slave1
# port: 26379 # point to sentinel, not to redis port
# -
# host: slave2
# port: 26379 # point to sentinel, not to redis port

View File

@ -4,6 +4,8 @@ production:
# Make sure the secret is at least 32 characters and all random,
# no regular words or you'll be exposed to dictionary attacks.
db_key_base: {{GITLAB_SECRETS_DB_KEY_BASE}}
secret_key_base: {{GITLAB_SECRETS_SECRET_KEY_BASE}}
otp_key_base: {{GITLAB_SECRETS_OTP_KEY_BASE}}
development:
db_key_base: development

View File

@ -106,6 +106,8 @@ GITLAB_LFS_ENABLED=${GITLAB_LFS_ENABLED:-true}
GITLAB_LFS_OBJECTS_DIR="${GITLAB_LFS_OBJECTS_DIR:-$GITLAB_SHARED_DIR/lfs-objects}"
GITLAB_SECRETS_DB_KEY_BASE=${GITLAB_SECRETS_DB_KEY_BASE:-}
GITLAB_SECRETS_SECRET_KEY_BASE=${GITLAB_SECRETS_SECRET_KEY_BASE:-}
GITLAB_SECRETS_OTP_KEY_BASE=${GITLAB_SECRETS_OTP_KEY_BASE:-}
GITLAB_NOTIFY_ON_BROKEN_BUILDS=${GITLAB_NOTIFY_ON_BROKEN_BUILDS:-true}
GITLAB_NOTIFY_PUSHER=${GITLAB_NOTIFY_PUSHER:-false}

View File

@ -656,7 +656,24 @@ gitlab_configure_secrets() {
return 1
fi
update_template ${GITLAB_SECRETS_CONFIG} GITLAB_SECRETS_DB_KEY_BASE
if [[ -z $GITLAB_SECRETS_SECRET_KEY_BASE ]]; then
echo "ERROR: "
echo " Please configure the GITLAB_SECRETS_SECRET_KEY_BASE parameter."
echo " Cannot continue. Aborting..."
return 1
fi
if [[ -z $GITLAB_SECRETS_OTP_KEY_BASE ]]; then
echo "ERROR: "
echo " Please configure the GITLAB_SECRETS_OTP_KEY_BASE parameter."
echo " Cannot continue. Aborting..."
return 1
fi
update_template ${GITLAB_SECRETS_CONFIG} \
GITLAB_SECRETS_DB_KEY_BASE \
GITLAB_SECRETS_SECRET_KEY_BASE \
GITLAB_SECRETS_OTP_KEY_BASE
}
gitlab_configure_sidekiq() {

View File

@ -22,7 +22,7 @@ services:
gitlab:
restart: always
image: sameersbn/gitlab:8.10.7
image: sameersbn/gitlab:8.11.0
depends_on:
- redis
- postgresql
@ -55,6 +55,8 @@ services:
- GITLAB_SSH_PORT=10022
- GITLAB_RELATIVE_URL_ROOT=
- GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
- GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
- GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string
- GITLAB_ROOT_PASSWORD=
- GITLAB_ROOT_EMAIL=

View File

@ -96,7 +96,7 @@ services:
gitlab:
restart: always
image: sameersbn/gitlab:8.10.7
image: sameersbn/gitlab:8.11.0
depends_on:
- redis
- postgresql
@ -282,7 +282,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:8.10.7 app:rake gitlab:backup:create
sameersbn/gitlab:8.11.0 app:rake gitlab:backup:create
```
## Restoring Backups
@ -298,7 +298,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:8.10.7 app:rake gitlab:backup:restore
sameersbn/gitlab:8.11.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.
@ -307,7 +307,7 @@ To avoid user interaction in the restore operation, specify the timestamp of the
```bash
docker run --name gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:8.10.7 app:rake gitlab:backup:restore BACKUP=1417624827
sameersbn/gitlab:8.11.0 app:rake gitlab:backup:restore BACKUP=1417624827
```
# Upgrading from an existing GitLab installation
@ -318,7 +318,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:8.10.7
docker pull sameersbn/gitlab:8.11.0
```
- **Step 2**: Stop and remove the currently running image
@ -370,7 +370,7 @@ docker run --name gitlab -d [PREVIOUS_OPTIONS] \
--env 'GITLAB_REGISTRY_API_URL=http://registry:5000/' \
--env 'GITLAB_REGISTRY_KEY_PATH=/certs/registry-auth.key' \
--link registry:registry
sameersbn/gitlab:8.10.7
sameersbn/gitlab:8.11.0
```

View File

@ -14,7 +14,7 @@ spec:
spec:
containers:
- name: gitlab
image: sameersbn/gitlab:8.10.7
image: sameersbn/gitlab:8.11.0
env:
- name: TZ
value: Asia/Kolkata
@ -23,6 +23,10 @@ spec:
- name: GITLAB_SECRETS_DB_KEY_BASE
value: long-and-random-alpha-numeric-string
- name: GITLAB_SECRETS_SECRET_KEY_BASE
value: long-and-random-alpha-numeric-string
- name: GITLAB_SECRETS_OTP_KEY_BASE
value: long-and-random-alpha-numeric-string
- name: GITLAB_ROOT_PASSWORD
value: