Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to 8.8.0 #697

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
15 changes: 15 additions & 0 deletions Changelog.md
Expand Up @@ -2,6 +2,21 @@

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.8.0**
- gitlab: upgrade to CE v8.8.0
- added `GITLAB_REGISTRY_ENABLED` configuration parameter
- added `GITLAB_REGISTRY_HOST` configuration parameter
- added `GITLAB_REGISTRY_PORT` configuration parameter
- added `GITLAB_REGISTRY_API_URL` configuration parameter
- added `GITLAB_REGISTRY_KEY_PATH` configuration parameter
- added `GITLAB_REGISTRY_PATH` configuration parameter
- added `GITLAB_REGISTRY_ISSUER` configuration parameter
- added `GITLAB_PROJECTS_CONTAINER_REGISTRY` configuration parameter
- added `SSL_REGISTRY_KEY_PATH` configuration parameter
- added `SSL_REGISTRY_CERT_PATH` configuration parameter
- added `AWS_BACKUP_MULTIPART_CHUNK_SIZE` configuration parameter


**8.7.6**
- gitlab: upgrade to CE v8.7.6

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
@@ -1,7 +1,7 @@
FROM sameersbn/ubuntu:14.04.20160504
MAINTAINER sameer@damagehead.com

ENV GITLAB_VERSION=8.7.6 \
ENV GITLAB_VERSION=8.8.0 \
GITLAB_SHELL_VERSION=2.7.2 \
GITLAB_WORKHORSE_VERSION=0.7.1 \
GOLANG_VERSION=1.5.3 \
Expand Down
77 changes: 44 additions & 33 deletions README.md
Expand Up @@ -2,7 +2,7 @@

[![Deploy to Tutum](https://s.tutum.co/deploy-to-tutum.svg)](https://dashboard.tutum.co/stack/deploy/)

# sameersbn/gitlab:8.7.6
# sameersbn/gitlab:8.8.0

- [Introduction](#introduction)
- [Changelog](Changelog.md)
Expand Down Expand Up @@ -111,7 +111,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.7.6
docker pull sameersbn/gitlab:8.8.0
```

You can also pull the `latest` tag which is built from the repository *HEAD*
Expand Down Expand Up @@ -174,7 +174,7 @@ docker run --name gitlab -d \
--env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:8.7.6
sameersbn/gitlab:8.8.0
```

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

## Database
Expand Down Expand Up @@ -242,7 +242,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.7.6
sameersbn/gitlab:8.8.0
```

#### Linking to PostgreSQL Container
Expand Down Expand Up @@ -286,7 +286,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.7.6
sameersbn/gitlab:8.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 Down Expand Up @@ -340,7 +340,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.7.6
sameersbn/gitlab:8.8.0
```

#### Linking to MySQL Container
Expand Down Expand Up @@ -383,7 +383,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.7.6
sameersbn/gitlab:8.8.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:
Expand All @@ -410,7 +410,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.7.6
sameersbn/gitlab:8.8.0
```

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

```bash
docker run --name gitlab -d --link gitlab-redis:redisio \
sameersbn/gitlab:8.7.6
sameersbn/gitlab:8.8.0
```

### Mail
Expand Down Expand Up @@ -470,7 +470,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.7.6
sameersbn/gitlab:8.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 @@ -547,7 +547,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.7.6
sameersbn/gitlab:8.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 @@ -563,7 +563,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.7.6
sameersbn/gitlab:8.8.0
```

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

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

GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`.
Expand Down Expand Up @@ -750,14 +750,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.7.6
sameersbn/gitlab:8.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:8.7.6 app:sanitize
sameersbn/gitlab:8.8.0 app:sanitize
```

### Piwik
Expand Down Expand Up @@ -789,13 +789,14 @@ Below is the complete list of available options that can be used to customize yo
- **GITLAB_INCOMING_EMAIL_ADDRESS**: The incoming email address for reply by email. Defaults to the value of `IMAP_USER`, else defaults to `reply@example.com`. Please read the [reply by email](http://doc.gitlab.com/ce/incoming_email/README.html) documentation to curretly set this parameter.
- **GITLAB_INCOMING_EMAIL_ENABLED**: Enable or disable gitlab reply by email feature. Defaults to the value of `IMAP_ENABLED`.
- **GITLAB_SIGNUP_ENABLED**: Enable or disable user signups (first run only). Default is `true`.
- **GITLAB_USERNAME_CHANGE**: Enable or disable ability for users to change their username. Defaults is `true`.
- **GITLAB_CREATE_GROUP**: Enable or disable ability for users to create groups. Defaults is `true`.
- **GITLAB_PROJECTS_ISSUES**: Set if *issues* feature should be enabled by default for new projects. Defaults is `true`.
- **GITLAB_PROJECTS_MERGE_REQUESTS**: Set if *merge requests* feature should be enabled by default for new projects. Defaults is `true`.
- **GITLAB_PROJECTS_WIKI**: Set if *wiki* feature should be enabled by default for new projects. Defaults is `true`.
- **GITLAB_PROJECTS_SNIPPETS**: Set if *snippets* feature should be enabled by default for new projects. Defaults is `false`.
- **GITLAB_PROJECTS_BUILDS**: Set if *builds* feature should be enabled by default for new projects. Defaults is `true`.
- **GITLAB_USERNAME_CHANGE**: Enable or disable ability for users to change their username. Defaults to `true`.
- **GITLAB_CREATE_GROUP**: Enable or disable ability for users to create groups. Defaults to `true`.
- **GITLAB_PROJECTS_ISSUES**: Set if *issues* feature should be enabled by default for new projects. Defaults to `true`.
- **GITLAB_PROJECTS_MERGE_REQUESTS**: Set if *merge requests* feature should be enabled by default for new projects. Defaults to `true`.
- **GITLAB_PROJECTS_WIKI**: Set if *wiki* feature should be enabled by default for new projects. Defaults to `true`.
- **GITLAB_PROJECTS_SNIPPETS**: Set if *snippets* feature should be enabled by default for new projects. Defaults to `false`.
- **GITLAB_PROJECTS_BUILDS**: Set if *builds* feature should be enabled by default for new projects. Defaults to `true`.
- **GITLAB_PROJECTS_CONTAINER_REGISTRY**: Set if *container_registry* feature should be enabled by default for new projects. Defaults to `true`.
- **GITLAB_WEBHOOK_TIMEOUT**: Sets the timeout for webhooks. Defaults to `10` seconds.
- **GITLAB_TIMEOUT**: Sets the timeout for git commands. Defaults to `10` seconds.
- **GITLAB_MAX_OBJECT_SIZE**: Maximum size (in bytes) of a git object (eg. a commit) in bytes. Defaults to `20971520`, i.e. `20` megabytes.
Expand All @@ -820,13 +821,22 @@ Below is the complete list of available options that can be used to customize yo
- **GITLAB_SSH_PORT**: The ssh port number. Defaults to `22`.
- **GITLAB_RELATIVE_URL_ROOT**: The relative url of the GitLab server, e.g. `/git`. No default.
- **GITLAB_TRUSTED_PROXIES**: Add IP address reverse proxy to trusted proxy list, otherwise users will appear signed in from that address. Currently only a single entry is permitted. No defaults.
- **GITLAB_REGISTRY_ENABLED**: Enables the GitLab Container Registry. Defaults to `false`.
- **GITLAB_REGISTRY_HOST**: Sets the Gitlab Registry Host. Defaults to `registry.example.com`
- **GITLAB_REGISTRY_PORT**: Sets the GitLab Registry Port. Defaults to `5000`.
- **GITLAB_REGISTRY_API_URL**: Sets the Gitlab Registry API URL. Defaults to `http://localhost:5000`
- **GITLAB_REGISTRY_KEY_PATH**: Sets the GitLab Registry Key Path. Defaults to `config/registry.key`
- **GITLAB_REGISTRY_PATH**: Sets the GitLab Registry PATH. Defaults to `shared/registry`.
- **GITLAB_REGISTRY_ISSUER**: Sets the Gitlab Registry Issuer. Defaults to `gitlab-issuer`.
- **GITLAB_HTTPS**: Set to `true` to enable https support, disabled by default.
- **SSL_SELF_SIGNED**: Set to `true` when using self signed ssl certificates. `false` by default.
- **SSL_CERTIFICATE_PATH**: Location of the ssl certificate. Defaults to `/home/git/data/certs/gitlab.crt`
- **SSL_KEY_PATH**: Location of the ssl private key. Defaults to `/home/git/data/certs/gitlab.key`
- **SSL_DHPARAM_PATH**: Location of the dhparam file. Defaults to `/home/git/data/certs/dhparam.pem`
- **SSL_VERIFY_CLIENT**: Enable verification of client certificates using the `SSL_CA_CERTIFICATES_PATH` file. Defaults to `false`
- **SSL_CA_CERTIFICATES_PATH**: List of SSL certificates to trust. Defaults to `/home/git/data/certs/ca.crt`.
- **SSL_REGISTRY_KEY_PATH**: Location of the ssl private key for gitlab container registry. Defaults to `/home/git/data/certs/registry.key`
- **SSL_REGISTRY_CERT_PATH**: Location of the ssl certificate for the gitlab container registy. Defaults to `/home/git/data/certs/registry.crt`
- **NGINX_WORKERS**: The number of nginx workers to start. Defaults to `1`.
- **NGINX_HSTS_ENABLED**: Advanced configuration option for turning off the HSTS configuration. Applicable only when SSL is in use. Defaults to `true`. See [#138](https://github.com/sameersbn/docker-gitlab/issues/138) for use case scenario.
- **NGINX_HSTS_MAXAGE**: Advanced configuration option for setting the HSTS max-age in the gitlab nginx vHost configuration. Applicable only when SSL is in use. Defaults to `31536000`.
Expand Down Expand Up @@ -944,6 +954,7 @@ Below is the complete list of available options that can be used to customize yo
- **AWS_BACKUP_ACCESS_KEY_ID**: AWS access key id. No defaults.
- **AWS_BACKUP_SECRET_ACCESS_KEY**: AWS secret access key. No defaults.
- **AWS_BACKUP_BUCKET**: AWS bucket for backup uploads. No defaults.
- **AWS_BACKUP_MULTIPART_CHUNK_SIZE**: Enables mulitpart uploads when file size reaches a defined size. See at [AWS S3 Docs](http://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html)
- **GITLAB_ROBOTS_PATH**: Location of custom `robots.txt`. Uses GitLab's default `robots.txt` configuration by default. See [www.robotstxt.org](http://www.robotstxt.org) for examples.
- **RACK_ATTACK_ENABLED**: Enable/disable rack middleware for blocking & throttling abusive requests Defaults to `true`.
- **RACK_ATTACK_WHITELIST**: Always allow requests from whitelisted host. Defaults to `127.0.0.1`
Expand All @@ -968,7 +979,7 @@ Execute the rake task to create a backup.

```bash
docker run --name gitlab -it --rm [OPTIONS] \
sameersbn/gitlab:8.7.6 app:rake gitlab:backup:create
sameersbn/gitlab:8.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 All @@ -989,7 +1000,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.7.6 app:rake gitlab:backup:restore
sameersbn/gitlab:8.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 @@ -998,7 +1009,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.7.6 app:rake gitlab:backup:restore BACKUP=1417624827
sameersbn/gitlab:8.8.0 app:rake gitlab:backup:restore BACKUP=1417624827
```

## Automated Backups
Expand All @@ -1023,7 +1034,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.7.6 app:rake gitlab:env:info
sameersbn/gitlab:8.8.0 app:rake gitlab:env:info
```

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

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

Or
Expand All @@ -1055,7 +1066,7 @@ Copy all the **bare** git repositories to the `repositories/` directory of the [

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

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

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

- **Step 2**: Stop and remove the currently running image
Expand All @@ -1105,7 +1116,7 @@ Replace `x.x.x` with the version you are upgrading from. For example, if you are
> **Note**: Since GitLab `8.0.0` you need to provide the `GITLAB_SECRETS_DB_KEY_BASE` parameter while starting the image.

```bash
docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:8.7.6
docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:8.8.0
```

## Shell Access
Expand Down
2 changes: 1 addition & 1 deletion VERSION
@@ -1 +1 @@
8.7.6
8.8.0
12 changes: 11 additions & 1 deletion assets/runtime/config/gitlabhq/gitlab.yml
Expand Up @@ -98,6 +98,7 @@ production: &base
wiki: {{GITLAB_PROJECTS_WIKI}}
snippets: {{GITLAB_PROJECTS_SNIPPETS}}
builds: {{GITLAB_PROJECTS_BUILDS}}
container_registry: {{GITLAB_PROJECTS_CONTAINER_REGISTRY}}

## Webhook settings
# Number of seconds to wait for HTTP response after sending webhook HTTP POST request (default: 10)
Expand Down Expand Up @@ -176,6 +177,15 @@ production: &base
repository_archive_cache_worker:
cron: "0 * * * *"

registry:
enabled: {{GITLAB_REGISTRY_ENABLED}} # Enables GitLab Container Registry Defaults to `true`
host: {{GITLAB_REGISTRY_HOST}} #registry.example.com
port: {{GITLAB_REGISTRY_PORT}} # 5005
api_url: "{{GITLAB_REGISTRY_API_URL}}" #http://localhost:5000/ # internal address to the registry, will be used by GitLab to directly communicate with API
key: {{GITLAB_REGISTRY_KEY_PATH}} # config/registry.key
path: {{GITLAB_REGISTRY_PATH}} # shared/registry
issuer: {{GITLAB_REGISTRY_ISSUER}} #gitlab-issuer

#
# 2. GitLab CI settings
# ==========================
Expand Down Expand Up @@ -380,7 +390,7 @@ production: &base
idp_cert_fingerprint: '{{OAUTH_SAML_IDP_CERT_FINGERPRINT}}',
idp_sso_target_url: '{{OAUTH_SAML_IDP_SSO_TARGET_URL}}',
issuer: '{{OAUTH_SAML_ISSUER}}',
attribute_statements: {
attribute_statements: {
first_name: ['{{OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME}}'],
last_name: ['{{OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME}}'],
name: ['{{OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME}}'],
Expand Down