From 2ea27eef8139b3be0d7cb13f96fae183c0e6e7c0 Mon Sep 17 00:00:00 2001 From: Bart Joris Date: Thu, 12 Mar 2020 09:05:21 +0100 Subject: [PATCH 01/29] Add Generic OAuth2 provider (#2070) * Add Generic OAuth2 provider * Add docs to test Keycloak on a local environment * Update docs for oauth2_generic --- README.md | 21 +++ assets/runtime/config/gitlabhq/gitlab.yml | 21 +++ assets/runtime/env-defaults | 14 ++ assets/runtime/functions | 24 ++- contrib/docker-swarm/docker-compose.yml | 13 ++ docs/docker-compose-keycloak.yml | 180 ++++++++++++++++++++++ docs/images/keycloak-admin-acc.png | Bin 0 -> 58209 bytes docs/images/keycloak-client-creation.png | Bin 0 -> 30187 bytes docs/images/keycloak-client-creation2.png | Bin 0 -> 103961 bytes docs/images/keycloak-client.png | Bin 0 -> 82477 bytes docs/images/keycloak-gitlab-login.png | Bin 0 -> 64875 bytes docs/images/keycloak-home.png | Bin 0 -> 130397 bytes docs/images/keycloak-secret.png | Bin 0 -> 31083 bytes docs/images/keycloak-users.png | Bin 0 -> 52223 bytes docs/keycloak-idp.md | 65 ++++++++ 15 files changed, 337 insertions(+), 1 deletion(-) create mode 100644 docs/docker-compose-keycloak.yml create mode 100644 docs/images/keycloak-admin-acc.png create mode 100644 docs/images/keycloak-client-creation.png create mode 100644 docs/images/keycloak-client-creation2.png create mode 100644 docs/images/keycloak-client.png create mode 100644 docs/images/keycloak-gitlab-login.png create mode 100644 docs/images/keycloak-home.png create mode 100644 docs/images/keycloak-secret.png create mode 100644 docs/images/keycloak-users.png create mode 100644 docs/keycloak-idp.md diff --git a/README.md b/README.md index 7e1b36ca7..adead22f2 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ - [SAML](#saml) - [Crowd](#crowd) - [Microsoft Azure](#microsoft-azure) + - [Generic OAuth2](#Generic-OAuth2) - [Gitlab Pages](#gitlab-pages) - [External Issue Trackers](#external-issue-trackers) - [Host UID / GID Mapping](#host-uid--gid-mapping) @@ -671,6 +672,14 @@ Once you have the Client ID, Client secret and Tenant ID generated, configure th For example, if your Client ID is `xxx`, the Client secret is `yyy` and the Tenant ID is `zzz`, then adding `--env 'OAUTH_AZURE_API_KEY=xxx' --env 'OAUTH_AZURE_API_SECRET=yyy' --env 'OAUTH_AZURE_TENANT_ID=zzz'` to the docker run command enables support for Microsoft Azure OAuth. +#### Generic OAuth2 + +To enable the Generic OAuth2 provider, you must register your application with your provider. You also need to confirm OAuth2 provider app's ID and secret, the client options and the user's response structure. + +As an example this code has been tested with Keycloak, with the following variables: `OAUTH2_GENERIC_APP_ID`, `OAUTH2_GENERIC_APP_SECRET`, `OAUTH2_GENERIC_CLIENT_SITE`, `OAUTH2_GENERIC_CLIENT_USER_INFO_URL`, `OAUTH2_GENERIC_CLIENT_AUTHORIZE_URL`, `OAUTH2_GENERIC_CLIENT_TOKEN_URL`, `OAUTH2_GENERIC_CLIENT_END_SESSION_ENDPOINT`, `OAUTH2_GENERIC_ID_PATH`, `OAUTH2_GENERIC_USER_UID`, `OAUTH2_GENERIC_USER_NAME`, `OAUTH2_GENERIC_USER_EMAIL`, `OAUTH2_GENERIC_NAME`, + +See [GitLab documentation](https://docs.gitlab.com/ee/integration/oauth2_generic.html#sign-into-gitlab-with-almost-any-oauth2-provider) and [Omniauth-oauth2-generic documentation](https://gitlab.com/satorix/omniauth-oauth2-generic) for more details. + ### Gitlab Pages Gitlab Pages allows a user to host static websites from a project. Gitlab pages can be enabled with setting the envrionment variable `GITLAB_PAGES_ENABLED` to `true`. @@ -1038,6 +1047,18 @@ Below is the complete list of available options that can be used to customize yo | `OAUTH_AZURE_API_KEY` | Azure Client ID. No defaults. | | `OAUTH_AZURE_API_SECRET` | Azure Client secret. No defaults. | | `OAUTH_AZURE_TENANT_ID` | Azure Tenant ID. No defaults. | +| `OAUTH2_GENERIC_APP_ID` | Your OAuth2 App ID. No defaults. | +| `OAUTH2_GENERIC_APP_SECRET` | Your OAuth2 App Secret. No defaults. | +| `OAUTH2_GENERIC_CLIENT_SITE` | The OAuth2 generic client site. No defaults | +| `OAUTH2_GENERIC_CLIENT_USER_INFO_URL` | The OAuth2 generic client user info url. No defaults | +| `OAUTH2_GENERIC_CLIENT_AUTHORIZE_URL` | The OAuth2 generic client authorize url. No defaults | +| `OAUTH2_GENERIC_CLIENT_TOKEN_URL` | The OAuth2 generic client token url. No defaults| +| `OAUTH2_GENERIC_CLIENT_END_SESSION_ENDPOINT` | The OAuth2 generic client end session endpoint. No defaults | +| `OAUTH2_GENERIC_ID_PATH` | The OAuth2 generic id path. No defaults | +| `OAUTH2_GENERIC_USER_UID` | The OAuth2 generic user id path. No defaults | +| `OAUTH2_GENERIC_USER_NAME` | The OAuth2 generic user name. No defaults | +| `OAUTH2_GENERIC_USER_EMAIL` | The OAuth2 generic user email. No defaults | +| `OAUTH2_GENERIC_NAME` | The name of your OAuth2 provider. No defaults | | `GITLAB_GRAVATAR_ENABLED` | Enables gravatar integration. Defaults to `true`. | | `GITLAB_GRAVATAR_HTTP_URL` | Sets a custom gravatar url. Defaults to `http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon`. This can be used for [Libravatar integration](http://doc.gitlab.com/ce/customization/libravatar.html). | | `GITLAB_GRAVATAR_HTTPS_URL` | Same as above, but for https. Defaults to `https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon`. | diff --git a/assets/runtime/config/gitlabhq/gitlab.yml b/assets/runtime/config/gitlabhq/gitlab.yml index e43c58db9..c0dc782e7 100644 --- a/assets/runtime/config/gitlabhq/gitlab.yml +++ b/assets/runtime/config/gitlabhq/gitlab.yml @@ -571,6 +571,27 @@ production: &base client_secret: '{{OAUTH_AUTH0_CLIENT_SECRET}}', domain: '{{OAUTH_AUTH0_DOMAIN}}', scope: '{{OAUTH_AUTH0_SCOPE}}' } } + - { name: 'oauth2_generic', + app_id: '{{OAUTH2_GENERIC_APP_ID}}', + app_secret: '{{OAUTH2_GENERIC_APP_SECRET}}', + args: { + client_options: { + site: '{{OAUTH2_GENERIC_CLIENT_SITE}}', + user_info_url: '{{OAUTH2_GENERIC_CLIENT_USER_INFO_URL}}', + authorize_url: '{{OAUTH2_GENERIC_CLIENT_AUTHORIZE_URL}}', + token_url: '{{OAUTH2_GENERIC_CLIENT_TOKEN_URL}}', + end_session_endpoint: '{{OAUTH2_GENERIC_CLIENT_END_SESSION_ENDPOINT}}', + }, + user_response_structure: { + id_path: '{{OAUTH2_GENERIC_ID_PATH}}', + attributes: { + uid: '{{OAUTH2_GENERIC_USER_UID}}', + name: '{{OAUTH2_GENERIC_USER_NAME}}', + email: '{{OAUTH2_GENERIC_USER_EMAIL}}' + } + }, + name: '{{OAUTH2_GENERIC_NAME}}' + }} - { name: 'azure_oauth2', args: { client_id: '{{OAUTH_AZURE_API_KEY}}', diff --git a/assets/runtime/env-defaults b/assets/runtime/env-defaults index 38a78608d..4dcd3976f 100644 --- a/assets/runtime/env-defaults +++ b/assets/runtime/env-defaults @@ -432,6 +432,20 @@ OAUTH_CAS3_LOGOUT_URL=${OAUTH_CAS3_LOGOUT_URL:-/cas/logout} ### AUTH0 OAUTH_AUTH0_SCOPE=${OAUTH_AUTH0_SCOPE:-openid profile email} +## OAUTH2 GENERIC +OAUTH2_GENERIC_APP_ID=${OAUTH2_GENERIC_APP_ID:-} +OAUTH2_GENERIC_APP_SECRET=${OAUTH2_GENERIC_APP_SECRET:-} +OAUTH2_GENERIC_CLIENT_SITE=${OAUTH2_GENERIC_CLIENT_SITE:-} +OAUTH2_GENERIC_CLIENT_USER_INFO_URL=${OAUTH2_GENERIC_CLIENT_USER_INFO_URL:-} +OAUTH2_GENERIC_CLIENT_AUTHORIZE_URL=${OAUTH2_GENERIC_CLIENT_AUTHORIZE_URL:-} +OAUTH2_GENERIC_CLIENT_TOKEN_URL=${OAUTH2_GENERIC_CLIENT_TOKEN_URL:-} +OAUTH2_GENERIC_CLIENT_END_SESSION_ENDPOINT=${OAUTH2_GENERIC_CLIENT_END_SESSION_ENDPOINT:-} +OAUTH2_GENERIC_ID_PATH=${OAUTH2_GENERIC_ID_PATH:-} +OAUTH2_GENERIC_USER_UID=${OAUTH2_GENERIC_USER_UID:-} +OAUTH2_GENERIC_USER_NAME=${OAUTH2_GENERIC_USER_NAME:-} +OAUTH2_GENERIC_USER_EMAIL=${OAUTH2_GENERIC_USER_EMAIL:-} +OAUTH2_GENERIC_NAME=${OAUTH2_GENERIC_NAME:-} + ## ANALYTICS ### GOOGLE diff --git a/assets/runtime/functions b/assets/runtime/functions index 573b98923..eb37c4571 100644 --- a/assets/runtime/functions +++ b/assets/runtime/functions @@ -595,6 +595,27 @@ gitlab_configure_oauth_saml() { fi } +gitlab_configure_oauth2_generic() { + if [[ -n ${OAUTH2_GENERIC_APP_ID} && \ + -n ${OAUTH2_GENERIC_APP_SECRET} ]]; then + echo "Configuring gitlab::oauth::generic..." + OAUTH_ENABLED=${OAUTH_ENABLED:-true} + update_template ${GITLAB_CONFIG} \ + OAUTH2_GENERIC_APP_ID \ + OAUTH2_GENERIC_APP_SECRET \ + OAUTH2_GENERIC_CLIENT_SITE \ + OAUTH2_GENERIC_CLIENT_USER_INFO_URL \ + OAUTH2_GENERIC_CLIENT_AUTHORIZE_URL \ + OAUTH2_GENERIC_CLIENT_TOKEN_URL \ + OAUTH2_GENERIC_CLIENT_END_SESSION_ENDPOINT \ + OAUTH2_GENERIC_ID_PATH \ + OAUTH2_GENERIC_USER_UID \ + OAUTH2_GENERIC_USER_NAME \ + OAUTH2_GENERIC_USER_EMAIL \ + OAUTH2_GENERIC_NAME + fi +} + gitlab_configure_oauth_crowd() { if [[ -n ${OAUTH_CROWD_SERVER_URL} && \ -n ${OAUTH_CROWD_APP_NAME} && \ @@ -654,6 +675,7 @@ gitlab_configure_oauth() { gitlab_configure_oauth_gitlab gitlab_configure_oauth_bitbucket gitlab_configure_oauth_saml + gitlab_configure_oauth2_generic gitlab_configure_oauth_crowd gitlab_configure_oauth_auth0 gitlab_configure_oauth_azure @@ -668,7 +690,7 @@ gitlab_configure_oauth() { OAUTH_EXTERNAL_PROVIDERS case ${OAUTH_AUTO_SIGN_IN_WITH_PROVIDER} in - cas3|google_oauth2|facebook|twitter|github|gitlab|bitbucket|saml|crowd|azure_oauth2) + cas3|google_oauth2|facebook|twitter|github|gitlab|bitbucket|saml|crowd|azure_oauth2|oauth2_generic) update_template ${GITLAB_CONFIG} OAUTH_AUTO_SIGN_IN_WITH_PROVIDER ;; *) diff --git a/contrib/docker-swarm/docker-compose.yml b/contrib/docker-swarm/docker-compose.yml index 78fc43275..3e83e3262 100644 --- a/contrib/docker-swarm/docker-compose.yml +++ b/contrib/docker-swarm/docker-compose.yml @@ -151,6 +151,19 @@ services: - OAUTH_AUTH0_DOMAIN= - OAUTH_AUTH0_SCOPE= + - OAUTH2_GENERIC_APP_ID= + - OAUTH2_GENERIC_APP_SECRET= + - OAUTH2_GENERIC_CLIENT_SITE= + - OAUTH2_GENERIC_CLIENT_USER_INFO_URL= + - OAUTH2_GENERIC_CLIENT_AUTHORIZE_URL= + - OAUTH2_GENERIC_CLIENT_TOKEN_URL= + - OAUTH2_GENERIC_CLIENT_END_SESSION_ENDPOINT= + - OAUTH2_GENERIC_ID_PATH= + - OAUTH2_GENERIC_USER_UID= + - OAUTH2_GENERIC_USER_NAME= + - OAUTH2_GENERIC_USER_EMAIL= + - OAUTH2_GENERIC_NAME= + - OAUTH_AZURE_API_KEY= - OAUTH_AZURE_API_SECRET= - OAUTH_AZURE_TENANT_ID= diff --git a/docs/docker-compose-keycloak.yml b/docs/docker-compose-keycloak.yml new file mode 100644 index 000000000..54031cdc1 --- /dev/null +++ b/docs/docker-compose-keycloak.yml @@ -0,0 +1,180 @@ +version: '2' + +services: + redis: + restart: always + image: sameersbn/redis:4.0.9-2 + command: + - --loglevel warning + volumes: + - redis-data:/var/lib/redis:Z + + postgresql: + restart: always + image: sameersbn/postgresql:10-2 + volumes: + - postgresql-data:/var/lib/postgresql:Z + environment: + - DB_USER=gitlab + - DB_PASS=password + - DB_NAME=gitlabhq_production + - DB_EXTENSION=pg_trgm + + gitlab: + restart: always + image: nuberabe/docker-gitlab:12.7.0 + depends_on: + - redis + - postgresql + ports: + - "10080:80" + - "10022:22" + volumes: + - gitlab-data:/home/git/data:Z + environment: + - DEBUG=false + + - DB_ADAPTER=postgresql + - DB_HOST=postgresql + - DB_PORT=5432 + - DB_USER=gitlab + - DB_PASS=password + - DB_NAME=gitlabhq_production + + - REDIS_HOST=redis + - REDIS_PORT=6379 + + - TZ=Asia/Kolkata + - GITLAB_TIMEZONE=Kolkata + + - GITLAB_HTTPS=false + - SSL_SELF_SIGNED=false + + - GITLAB_HOST='' + - GITLAB_PORT=10080 + - 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= + + - GITLAB_NOTIFY_ON_BROKEN_BUILDS=true + - GITLAB_NOTIFY_PUSHER=false + + - GITLAB_EMAIL=notifications@example.com + - GITLAB_EMAIL_REPLY_TO=noreply@example.com + - GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com + + - GITLAB_BACKUP_SCHEDULE=daily + - GITLAB_BACKUP_TIME=01:00 + + - SMTP_ENABLED=false + - SMTP_DOMAIN=www.example.com + - SMTP_HOST=smtp.gmail.com + - SMTP_PORT=587 + - SMTP_USER=mailer@example.com + - SMTP_PASS=password + - SMTP_STARTTLS=true + - SMTP_AUTHENTICATION=login + + - IMAP_ENABLED=false + - IMAP_HOST=imap.gmail.com + - IMAP_PORT=993 + - IMAP_USER=mailer@example.com + - IMAP_PASS=password + - IMAP_SSL=true + - IMAP_STARTTLS=false + + - OAUTH_ENABLED=true + - OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=Keycloak + - OAUTH_ALLOW_SSO=Keycloak + - OAUTH_BLOCK_AUTO_CREATED_USERS=false + - OAUTH_AUTO_LINK_LDAP_USER=false + - OAUTH_AUTO_LINK_SAML_USER=false + - OAUTH_EXTERNAL_PROVIDERS=Keycloak + + - OAUTH_CAS3_LABEL=cas3 + - OAUTH_CAS3_SERVER= + - OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false + - OAUTH_CAS3_LOGIN_URL=/cas/login + - OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate + - OAUTH_CAS3_LOGOUT_URL=/cas/logout + + - OAUTH_GOOGLE_API_KEY= + - OAUTH_GOOGLE_APP_SECRET= + - OAUTH_GOOGLE_RESTRICT_DOMAIN= + + - OAUTH_FACEBOOK_API_KEY= + - OAUTH_FACEBOOK_APP_SECRET= + + - OAUTH_TWITTER_API_KEY= + - OAUTH_TWITTER_APP_SECRET= + + - OAUTH_GITHUB_API_KEY= + - OAUTH_GITHUB_APP_SECRET= + - OAUTH_GITHUB_URL= + - OAUTH_GITHUB_VERIFY_SSL= + + - OAUTH_GITLAB_API_KEY= + - OAUTH_GITLAB_APP_SECRET= + + - OAUTH_BITBUCKET_API_KEY= + - OAUTH_BITBUCKET_APP_SECRET= + + - OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL= + - OAUTH_SAML_IDP_CERT_FINGERPRINT= + - OAUTH_SAML_IDP_SSO_TARGET_URL= + - OAUTH_SAML_ISSUER= + - OAUTH_SAML_LABEL="Our SAML Provider" + - OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient + - OAUTH_SAML_GROUPS_ATTRIBUTE= + - OAUTH_SAML_EXTERNAL_GROUPS= + - OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL= + - OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME= + - OAUTH_SAML_ATTRIBUTE_STATEMENTS_USERNAME= + - OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME= + - OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME= + + - OAUTH_CROWD_SERVER_URL= + - OAUTH_CROWD_APP_NAME= + - OAUTH_CROWD_APP_PASSWORD= + + - OAUTH_AUTH0_CLIENT_ID= + - OAUTH_AUTH0_CLIENT_SECRET= + - OAUTH_AUTH0_DOMAIN= + - OAUTH_AUTH0_SCOPE= + + - OAUTH_AZURE_API_KEY= + - OAUTH_AZURE_API_SECRET= + - OAUTH_AZURE_TENANT_ID= + + - OAUTH2_GENERIC_APP_ID=git + - OAUTH2_GENERIC_APP_SECRET= + - OAUTH2_GENERIC_CLIENT_SITE=http://:10081 + - OAUTH2_GENERIC_CLIENT_USER_INFO_URL=http://:10081/auth/realms/master/protocol/openid-connect/userinfo + - OAUTH2_GENERIC_CLIENT_AUTHORIZE_URL=http://:10081/auth/realms/master/protocol/openid-connect/auth + - OAUTH2_GENERIC_CLIENT_TOKEN_URL=http://:10081/auth/realms/master/protocol/openid-connect/token + - OAUTH2_GENERIC_CLIENT_END_SESSION_ENDPOINT=http://:10081/auth/realms/master/protocol/openid-connect/logout + - OAUTH2_GENERIC_ID_PATH=sub + - OAUTH2_GENERIC_USER_UID=sub + - OAUTH2_GENERIC_USER_NAME=preferred_username + - OAUTH2_GENERIC_USER_EMAIL=email + - OAUTH2_GENERIC_NAME=Keycloak + + keycloak: + restart: always + image: jboss/keycloak:8.0.1 + ports: + - "10081:8080" + environment: + - DEBUG=false + - KEYCLOAK_PASSWORD=admin + - KEYCLOAK_USER=admin + +volumes: + redis-data: + postgresql-data: + gitlab-data: \ No newline at end of file diff --git a/docs/images/keycloak-admin-acc.png b/docs/images/keycloak-admin-acc.png new file mode 100644 index 0000000000000000000000000000000000000000..116967254c3ab1f20c994363ea7c7bdaa63dcdd0 GIT binary patch literal 58209 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 F{vXLl!wLWZ literal 0 HcmV?d00001 diff --git a/docs/images/keycloak-client-creation.png b/docs/images/keycloak-client-creation.png new file mode 100644 index 0000000000000000000000000000000000000000..0595b8df9bc703ddf4af574fe01051675ac3734e GIT binary patch literal 30187 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

>5!b#02_jA}SLkcsiV!m}o^* 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 |<->?}uMmhLhJ=XW0t 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 GJE$#QhaT)H zp8|SJx9{OQ3v%gFd;b%1`>Qbg4Y}E@(NLcIjkpn0CYCjcqay*HCv6_n*1!OQs9s!L zSoUim9%XpHx3_fbI534X+5GY37HbKB+%`2Y2Z{a(HvD3g&suG%Keed6c-gDO0c=@6 zKKq|9+yPfps!aN*reN{NYLLc417KMK05k_c=n6!A!9J)m7ZhU$Foh9=+o`-Lt_4Nx zRuFN=!N)w?)7AhYD%-gUaL+O;Q1j9X0DO_1b9F!g>b{&N*y;=6Z`mM_;tWT-J{y){ z0}1M3+>bUGSSyQ{?oR~o!ev+5-bo%0SD9f0fbPwfh+kG#$BeW03cY z2S5VDfiIT8r`%=0V`$w5DL|flQy@@m1jsK-jvR#1rS1dx%f(BtHt1)%T35Qp;M8;? zP@l3R9pV-LKy%hq(OfpDG}i^-OBIn#Nr{gkFV*GT1~q0LV z%01fOK$tSbc@YD16iFz3stD5g5uE{EU~Usk%|KNxLe&6C{RjuXhptEh*R0py5uXtm zM7j*4R=V|)BLa8@-k{*Yoz~tcg}_k5DggAsR1YX$!?_tU!5(Bt!_*d|N&0VzA7Ugg zN<1mbKcr0Ue;|Eg$wmBO0>P;&X?={8TrVwfKXUkp)lrgAUWo6edoyib3)0aO3Q>kI zn`9ch6w7WIb0kBT=;&sPthEeA0Ta?k8W*~ATqW3_9tRA?NCX$5k!t%`=HlfR{3m_% zg5;x=j127UaIWV|j*^)b>fU6kJa*ikD-$_MOgj9Is2=KM6_xtr z^f||r?Sv1ne}2;R@p&i(dFHKkr*`K@m({$SX}}(HwpPGWMB9#c#I7h0N zqC*)SSxzH~Wpa5WLWl^klq`HKf-I{*6M#MVB3sXxZ0J~7eTTSU7zKPXG9Kr)zs3`y<(WyHT3}pU?`9)$N)J_3F==E&=T`#YPu~YUtw7qa4lD%_=SA$@L=B^ag*` zC$*|s%LUiQmxkA$xUAV1g@76@RQUm`U=(%oHd0~vuSwo!k5V-lS%0AqkIf_AeHG)? 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 literal 0 HcmV?d00001 diff --git a/docs/images/keycloak-client.png b/docs/images/keycloak-client.png new file mode 100644 index 0000000000000000000000000000000000000000..f10fc95ce19385e5bcd94d72928df5e152c056e4 GIT binary patch literal 82477 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

4bL?5%iJGW#%Z7e!ud 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 Yb6?2Qa_+3DUCck7%LbYyf7(U-8=EfcivR!s literal 0 HcmV?d00001 diff --git a/docs/images/keycloak-home.png b/docs/images/keycloak-home.png new file mode 100644 index 0000000000000000000000000000000000000000..f2adbed24fcf1f144a63028ad51c7ed8269955b2 GIT binary patch literal 130397 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 N002ovPDHLkV1oAK_B#Lo literal 0 HcmV?d00001 diff --git a/docs/images/keycloak-secret.png b/docs/images/keycloak-secret.png new file mode 100644 index 0000000000000000000000000000000000000000..4af4960e5f2c4d48f7fb89f1b6afb018dbcd4333 GIT binary patch literal 31083 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 + - OAUTH2_GENERIC_CLIENT_SITE=http://:10081 + - OAUTH2_GENERIC_CLIENT_USER_INFO_URL=http://:10081/auth/realms/master/protocol/openid-connect/userinfo + - OAUTH2_GENERIC_CLIENT_AUTHORIZE_URL=http://:10081/auth/realms/master/protocol/openid-connect/auth + - OAUTH2_GENERIC_CLIENT_TOKEN_URL=http://:10081/auth/realms/master/protocol/openid-connect/token + - OAUTH2_GENERIC_CLIENT_END_SESSION_ENDPOINT=http://:10081/auth/realms/master/protocol/openid-connect/logout +``` + +Make sure the following variables are filled in the docker-compose file: + +```yaml + - GITLAB_HOST='' + ... + - OAUTH_ENABLED=true + - OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=Keycloak + - OAUTH_ALLOW_SSO=Keycloak + - OAUTH_BLOCK_AUTO_CREATED_USERS=false + - OAUTH_AUTO_LINK_LDAP_USER=false + - OAUTH_AUTO_LINK_SAML_USER=false + - OAUTH_EXTERNAL_PROVIDERS=Keycloak +``` + +GitLab does not allow login from users in Keycloak with an empty email or name. To prevent this, you can create a new user in Keycloak or you can add email and name for the admin account. + +Visit the `Users` tab and click on `View all users` to modify the Admin user. + +![keycloak-users](images/keycloak-users.png) + +Modify the `Email`, `First name` and `Last Name` fields. +![admin-account](images/keycloak-admin-acc.png) + +Deploy GitLab, Reddis and PostgreSQL by running the following command: `docker-compose up -d gitlab redis postgresql`. + +You can now login on the local GitLab instance with with Keycloak on your [local IP](http://localhost:10080). + +![gitlab-login](images/keycloak-gitlab-login.png) \ No newline at end of file From a3c922c2659c10bf012cb104c0f769ace18a6616 Mon Sep 17 00:00:00 2001 From: Alessandro Trisolini Date: Fri, 27 Mar 2020 19:50:17 +0100 Subject: [PATCH 02/29] Upgrade GitLab CE to 12.7.8 (#2106) Co-authored-by: Alessandro Trisolini --- Changelog.md | 5 +++- Dockerfile | 2 +- README.md | 52 +++++++++++++++++++------------------- VERSION | 2 +- docker-compose.yml | 2 +- docs/container_registry.md | 10 ++++---- kubernetes/gitlab-rc.yml | 2 +- 7 files changed, 39 insertions(+), 36 deletions(-) diff --git a/Changelog.md b/Changelog.md index e69f0ca25..5565a6663 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,7 +3,10 @@ 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.7** +**12.7.8* +- Upgrade GitLab CE to 12.7.8 + +**12.7.7* - Upgrade GitLab CE to 12.7.7 **12.7.6** diff --git a/Dockerfile b/Dockerfile index 4d8f1a0e1..be42fa04b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:bionic-20191202 ARG BUILD_DATE ARG VCS_REF -ARG VERSION=12.7.7 +ARG VERSION=12.7.8 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.6 \ diff --git a/README.md b/README.md index adead22f2..f0b0b2a84 100644 --- a/README.md +++ b/README.md @@ -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.7 +# sameersbn/gitlab:12.7.8 - [Introduction](#introduction) - [Changelog](Changelog.md) @@ -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.7 +docker pull sameersbn/gitlab:12.7.8 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -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.7 + sameersbn/gitlab:12.7.8 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -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.7 + sameersbn/gitlab:12.7.8 ``` ## Database @@ -266,7 +266,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.7 + sameersbn/gitlab:12.7.8 ``` #### Linking to PostgreSQL Container @@ -310,7 +310,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.7 + sameersbn/gitlab:12.7.8 ``` 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: @@ -337,7 +337,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.7 + sameersbn/gitlab:12.7.8 ``` ### Linking to Redis Container @@ -364,7 +364,7 @@ We are now ready to start the GitLab application. ```bash docker run --name gitlab -d --link gitlab-redis:redisio \ - sameersbn/gitlab:12.7.7 + sameersbn/gitlab:12.7.8 ``` ### Mail @@ -377,7 +377,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:12.7.7 + sameersbn/gitlab:12.7.8 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -397,7 +397,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:12.7.7 + sameersbn/gitlab:12.7.8 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -474,7 +474,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.7 + sameersbn/gitlab:12.7.8 ``` 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. @@ -490,7 +490,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.7 + sameersbn/gitlab:12.7.8 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -513,7 +513,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.7 + sameersbn/gitlab:12.7.8 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -561,7 +561,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.7 + sameersbn/gitlab:12.7.8 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -742,14 +742,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.7 + sameersbn/gitlab:12.7.8 ``` 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.7 app:sanitize + sameersbn/gitlab:12.7.8 app:sanitize ``` ### Piwik @@ -1126,7 +1126,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.7.7 app:rake gitlab:backup:create + sameersbn/gitlab:12.7.8 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. @@ -1161,14 +1161,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.7.7 app:rake db:setup + sameersbn/gitlab:12.7.8 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.7 app:rake gitlab:backup:restore + sameersbn/gitlab:12.7.8 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. @@ -1177,7 +1177,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.7 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.7.8 app:rake gitlab:backup:restore BACKUP=1417624827 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -1227,7 +1227,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.7 app:rake gitlab:env:info + sameersbn/gitlab:12.7.8 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -1240,7 +1240,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.7.7 app:rake gitlab:import:repos + sameersbn/gitlab:12.7.8 app:rake gitlab:import:repos ``` Or @@ -1271,7 +1271,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.7 app:rake gitlab:import:repos + sameersbn/gitlab:12.7.8 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -1293,12 +1293,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:12.7.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: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. - **Step 1**: Update the docker image. ```bash -docker pull sameersbn/gitlab:12.7.7 +docker pull sameersbn/gitlab:12.7.8 ``` - **Step 2**: Stop and remove the currently running image @@ -1324,7 +1324,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.7 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.7.8 ``` ## Shell Access diff --git a/VERSION b/VERSION index 5660ff109..f92b54868 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.7.7 +12.7.8 diff --git a/docker-compose.yml b/docker-compose.yml index 2948d98f0..e48bf42ec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.7.7 + image: sameersbn/gitlab:12.7.8 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index 174df05c3..03045ce0a 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.7.7 app:rake gitlab:backup:create + sameersbn/gitlab:12.7.8 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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:12.7.7 app:rake gitlab:backup:restore + sameersbn/gitlab:12.7.8 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. @@ -309,7 +309,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.7 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.7.8 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.7.7 +docker pull sameersbn/gitlab:12.7.8 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.7.7 +sameersbn/gitlab:12.7.8 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index 7b483b43e..8eeacae43 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.7.7 + image: sameersbn/gitlab:12.7.8 env: - name: TZ value: Asia/Kolkata From a6e972e7fa30d71001b228822e6a88276aba049f Mon Sep 17 00:00:00 2001 From: solidnerd Date: Fri, 27 Mar 2020 19:56:20 +0100 Subject: [PATCH 03/29] release 12.7.8 From 67a5fc30b42cd41dc1ab394c4bcdc53a570d7647 Mon Sep 17 00:00:00 2001 From: Niclas Mietz Date: Sun, 29 Mar 2020 15:29:09 +0200 Subject: [PATCH 04/29] Upgrade to 12.8.0 (#2090) * Upgrade GitLab CE to 12.8.0 * Update gitlab-workhorse to 8.21.0 Signed-off-by: solidnerd * Update gitlab-pages to 1.16.0 Signed-off-by: solidnerd * Update gitaly to 12.8.0 Signed-off-by: solidnerd * fix: gitaly-hooks missing symlink Signed-off-by: solidnerd * chore(base-image): update base image to 20200219 * fix: unicorn worker limits Signed-off-by: solidnerd * fix(ci): disable caching Signed-off-by: solidnerd * feat: add patch support for gitlab during the installation Signed-off-by: solidnerd * fix: ArgumentError: 'import/{{oauth2_generic_name}}' is not a supported controller name Closes #2101 Signed-off-by: solidnerd * fix: add fix for upstream gitaly problems during a fresh install Signed-off-by: solidnerd * chore: update changelog.md --- .circleci/config.yml | 27 --------- Changelog.md | 12 +++- Dockerfile | 10 ++-- README.md | 56 +++++++++---------- VERSION | 2 +- assets/build/install.sh | 9 +++ ...ecking-for-gitaly-on-a-fresh-install.patch | 33 +++++++++++ assets/runtime/config/gitlabhq/gitlab.yml | 3 +- assets/runtime/env-defaults | 6 +- assets/runtime/functions | 2 + docker-compose.yml | 2 +- docs/container_registry.md | 10 ++-- kubernetes/gitlab-rc.yml | 2 +- 13 files changed, 99 insertions(+), 75 deletions(-) create mode 100644 assets/build/patches/0001-fix-feature-checking-for-gitaly-on-a-fresh-install.patch diff --git a/.circleci/config.yml b/.circleci/config.yml index e7a542350..4d9332eff 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -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: | @@ -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 diff --git a/Changelog.md b/Changelog.md index 5565a6663..8ee39e126 100644 --- a/Changelog.md +++ b/Changelog.md @@ -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** diff --git a/Dockerfile b/Dockerfile index be42fa04b..1c8078d1e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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" \ diff --git a/README.md b/README.md index f0b0b2a84..1964a276c 100644 --- a/README.md +++ b/README.md @@ -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) @@ -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* @@ -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* @@ -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 @@ -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. @@ -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 @@ -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: @@ -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 @@ -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 @@ -377,7 +373,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: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. @@ -397,7 +393,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: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. @@ -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. @@ -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`. @@ -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. @@ -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`. @@ -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 @@ -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. @@ -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. @@ -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. @@ -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, @@ -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 @@ -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. @@ -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 @@ -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 diff --git a/VERSION b/VERSION index f92b54868..a54ec1fce 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.7.8 +12.8.0 \ No newline at end of file diff --git a/assets/build/install.sh b/assets/build/install.sh index 8eb05a1e5..67f3643bb 100755 --- a/assets/build/install.sh +++ b/assets/build/install.sh @@ -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)} @@ -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 diff --git a/assets/build/patches/0001-fix-feature-checking-for-gitaly-on-a-fresh-install.patch b/assets/build/patches/0001-fix-feature-checking-for-gitaly-on-a-fresh-install.patch new file mode 100644 index 000000000..29078a428 --- /dev/null +++ b/assets/build/patches/0001-fix-feature-checking-for-gitaly-on-a-fresh-install.patch @@ -0,0 +1,33 @@ +From 36bf91a3fd423d9ee564ae669a271c714362d648 Mon Sep 17 00:00:00 2001 +From: solidnerd +Date: Sun, 29 Mar 2020 11:14:40 +0200 +Subject: [PATCH] fix: feature checking for gitaly on a fresh install + +Signed-off-by: solidnerd +--- + 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 + diff --git a/assets/runtime/config/gitlabhq/gitlab.yml b/assets/runtime/config/gitlabhq/gitlab.yml index c0dc782e7..e648be921 100644 --- a/assets/runtime/config/gitlabhq/gitlab.yml +++ b/assets/runtime/config/gitlabhq/gitlab.yml @@ -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}}', diff --git a/assets/runtime/env-defaults b/assets/runtime/env-defaults index 4dcd3976f..2bf7c9bb6 100644 --- a/assets/runtime/env-defaults +++ b/assets/runtime/env-defaults @@ -65,7 +65,11 @@ GITLAB_SIDEKIQ_LOG_FORMAT=${GITLAB_SIDEKIQ_LOG_FORMAT:-json} UNICORN_WORKERS=${UNICORN_WORKERS:-3} UNICORN_TIMEOUT=${UNICORN_TIMEOUT:-60} -GITLAB_UNICORN_MEMORY_MAX=${GITLAB_UNICORN_MEMORY_MAX:-524288000} +# Set Default values according to the documentation +# https://docs.gitlab.com/ee/administration/operations/unicorn.html#unicorn-worker-killer +GITLAB_UNICORN_MEMORY_MIN=${GITLAB_UNICORN_MEMORY_MIN:-1073741824} +GITLAB_UNICORN_MEMORY_MAX=${GITLAB_UNICORN_MEMORY_MAX:-1342177280} + ## GITLAB_TIMEZONE=${GITLAB_TIMEZONE:-UTC} diff --git a/assets/runtime/functions b/assets/runtime/functions index eb37c4571..aa3ef27ed 100644 --- a/assets/runtime/functions +++ b/assets/runtime/functions @@ -613,6 +613,8 @@ gitlab_configure_oauth2_generic() { OAUTH2_GENERIC_USER_NAME \ OAUTH2_GENERIC_USER_EMAIL \ OAUTH2_GENERIC_NAME + else + exec_as_git sed -i "/name: 'oauth2_generic'/,/{{OAUTH2_GENERIC_NAME}}/d" ${GITLAB_CONFIG} fi } diff --git a/docker-compose.yml b/docker-compose.yml index e48bf42ec..6ed5f53ca 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.7.8 + image: sameersbn/gitlab:12.8.0 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index 03045ce0a..9ad83d065 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.7.8 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.0 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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: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. @@ -309,7 +309,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 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.7.8 +docker pull sameersbn/gitlab:12.8.0 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.7.8 +sameersbn/gitlab:12.8.0 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index 8eeacae43..372c72dea 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.7.8 + image: sameersbn/gitlab:12.8.0 env: - name: TZ value: Asia/Kolkata From 4e87065468563ac6a42aa7c41c6fbcb9fc94821e Mon Sep 17 00:00:00 2001 From: solidnerd Date: Sun, 29 Mar 2020 15:36:21 +0200 Subject: [PATCH 05/29] release 12.8.0 From 2a0f4dc46722327e6e551919fe091fe0f3edb920 Mon Sep 17 00:00:00 2001 From: Niclas Mietz Date: Sun, 29 Mar 2020 15:38:37 +0200 Subject: [PATCH 06/29] Upgrade GitLab CE to 12.8.1 (#2108) --- Changelog.md | 3 +++ Dockerfile | 4 +-- README.md | 52 +++++++++++++++++++------------------- VERSION | 2 +- docker-compose.yml | 2 +- docs/container_registry.md | 10 ++++---- kubernetes/gitlab-rc.yml | 2 +- 7 files changed, 39 insertions(+), 36 deletions(-) diff --git a/Changelog.md b/Changelog.md index 8ee39e126..0a91a86b1 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,9 @@ 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.8.1** +- gitlab: upgrade CE to v12.8.1 + **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) diff --git a/Dockerfile b/Dockerfile index 1c8078d1e..0eb11a204 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:bionic-20200219 ARG BUILD_DATE ARG VCS_REF -ARG VERSION=12.8.0 +ARG VERSION=12.8.1 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.6 \ @@ -10,7 +10,7 @@ ENV GITLAB_VERSION=${VERSION} \ GITLAB_SHELL_VERSION=11.0.0 \ GITLAB_WORKHORSE_VERSION=8.21.0 \ GITLAB_PAGES_VERSION=1.16.0 \ - GITALY_SERVER_VERSION=12.8.0 \ + GITALY_SERVER_VERSION=12.8.1 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index 1964a276c..0cc89dac6 100644 --- a/README.md +++ b/README.md @@ -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.8.0 +# sameersbn/gitlab:12.8.1 - [Introduction](#introduction) - [Changelog](Changelog.md) @@ -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.8.0 +docker pull sameersbn/gitlab:12.8.1 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -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.8.0 + sameersbn/gitlab:12.8.1 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -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.8.0 + sameersbn/gitlab:12.8.1 ``` ## Database @@ -262,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.8.0 + sameersbn/gitlab:12.8.1 ``` #### Linking to PostgreSQL Container @@ -306,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.8.0 + sameersbn/gitlab:12.8.1 ``` 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: @@ -333,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.8.0 + sameersbn/gitlab:12.8.1 ``` ### Linking to Redis Container @@ -360,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.8.0 + sameersbn/gitlab:12.8.1 ``` ### Mail @@ -373,7 +373,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:12.8.0 + sameersbn/gitlab:12.8.1 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -393,7 +393,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:12.8.0 + sameersbn/gitlab:12.8.1 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -470,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.8.0 + sameersbn/gitlab:12.8.1 ``` 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. @@ -486,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.8.0 + sameersbn/gitlab:12.8.1 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -509,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.8.0 + sameersbn/gitlab:12.8.1 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -557,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.8.0 + sameersbn/gitlab:12.8.1 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -738,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.8.0 + sameersbn/gitlab:12.8.1 ``` 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.8.0 app:sanitize + sameersbn/gitlab:12.8.1 app:sanitize ``` ### Piwik @@ -1122,7 +1122,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.0 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.1 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. @@ -1157,14 +1157,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.0 app:rake db:setup + sameersbn/gitlab:12.8.1 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.8.0 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.1 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. @@ -1173,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.8.0 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.1 app:rake gitlab:backup:restore BACKUP=1417624827 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -1223,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.8.0 app:rake gitlab:env:info + sameersbn/gitlab:12.8.1 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -1236,7 +1236,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.0 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.1 app:rake gitlab:import:repos ``` Or @@ -1267,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.8.0 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.1 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -1289,12 +1289,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> 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. +> Upgrading to `sameersbn/gitlab:12.8.1` 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.8.0 +docker pull sameersbn/gitlab:12.8.1 ``` - **Step 2**: Stop and remove the currently running image @@ -1320,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.8.0 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.8.1 ``` ## Shell Access diff --git a/VERSION b/VERSION index a54ec1fce..94a033d46 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.8.0 \ No newline at end of file +12.8.1 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 6ed5f53ca..d11ea9010 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.8.0 + image: sameersbn/gitlab:12.8.1 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index 9ad83d065..90d128125 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.8.0 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.1 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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:12.8.0 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.1 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. @@ -309,7 +309,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.8.0 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.1 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.8.0 +docker pull sameersbn/gitlab:12.8.1 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.8.0 +sameersbn/gitlab:12.8.1 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index 372c72dea..ac9024ffe 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.8.0 + image: sameersbn/gitlab:12.8.1 env: - name: TZ value: Asia/Kolkata From 965fc98ce2f4da5a67dc24dd0ed6b06483b011da Mon Sep 17 00:00:00 2001 From: solidnerd Date: Sun, 29 Mar 2020 15:38:51 +0200 Subject: [PATCH 07/29] release 12.8.1 From 8c634c920e7f6eba9d8077f0a157f49675545b49 Mon Sep 17 00:00:00 2001 From: Niclas Mietz Date: Sun, 29 Mar 2020 15:40:17 +0200 Subject: [PATCH 08/29] Upgrade GitLab CE to 12.8.2 (#2109) --- Changelog.md | 3 +++ Dockerfile | 4 +-- README.md | 52 +++++++++++++++++++------------------- VERSION | 2 +- docker-compose.yml | 2 +- docs/container_registry.md | 10 ++++---- kubernetes/gitlab-rc.yml | 2 +- 7 files changed, 39 insertions(+), 36 deletions(-) diff --git a/Changelog.md b/Changelog.md index 0a91a86b1..c2456a1c2 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,9 @@ 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.8.2** +- gitlab: upgrade CE to v12.8.2 + **12.8.1** - gitlab: upgrade CE to v12.8.1 diff --git a/Dockerfile b/Dockerfile index 0eb11a204..c7ac25ab8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:bionic-20200219 ARG BUILD_DATE ARG VCS_REF -ARG VERSION=12.8.1 +ARG VERSION=12.8.2 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.6 \ @@ -10,7 +10,7 @@ ENV GITLAB_VERSION=${VERSION} \ GITLAB_SHELL_VERSION=11.0.0 \ GITLAB_WORKHORSE_VERSION=8.21.0 \ GITLAB_PAGES_VERSION=1.16.0 \ - GITALY_SERVER_VERSION=12.8.1 \ + GITALY_SERVER_VERSION=12.8.2 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index 0cc89dac6..3c773c772 100644 --- a/README.md +++ b/README.md @@ -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.8.1 +# sameersbn/gitlab:12.8.2 - [Introduction](#introduction) - [Changelog](Changelog.md) @@ -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.8.1 +docker pull sameersbn/gitlab:12.8.2 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -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.8.1 + sameersbn/gitlab:12.8.2 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -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.8.1 + sameersbn/gitlab:12.8.2 ``` ## Database @@ -262,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.8.1 + sameersbn/gitlab:12.8.2 ``` #### Linking to PostgreSQL Container @@ -306,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.8.1 + sameersbn/gitlab:12.8.2 ``` 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: @@ -333,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.8.1 + sameersbn/gitlab:12.8.2 ``` ### Linking to Redis Container @@ -360,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.8.1 + sameersbn/gitlab:12.8.2 ``` ### Mail @@ -373,7 +373,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:12.8.1 + sameersbn/gitlab:12.8.2 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -393,7 +393,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:12.8.1 + sameersbn/gitlab:12.8.2 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -470,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.8.1 + sameersbn/gitlab:12.8.2 ``` 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. @@ -486,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.8.1 + sameersbn/gitlab:12.8.2 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -509,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.8.1 + sameersbn/gitlab:12.8.2 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -557,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.8.1 + sameersbn/gitlab:12.8.2 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -738,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.8.1 + sameersbn/gitlab:12.8.2 ``` 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.8.1 app:sanitize + sameersbn/gitlab:12.8.2 app:sanitize ``` ### Piwik @@ -1122,7 +1122,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.1 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.2 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. @@ -1157,14 +1157,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.1 app:rake db:setup + sameersbn/gitlab:12.8.2 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.8.1 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.2 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. @@ -1173,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.8.1 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.2 app:rake gitlab:backup:restore BACKUP=1417624827 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -1223,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.8.1 app:rake gitlab:env:info + sameersbn/gitlab:12.8.2 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -1236,7 +1236,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.1 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.2 app:rake gitlab:import:repos ``` Or @@ -1267,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.8.1 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.2 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -1289,12 +1289,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:12.8.1` 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.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. - **Step 1**: Update the docker image. ```bash -docker pull sameersbn/gitlab:12.8.1 +docker pull sameersbn/gitlab:12.8.2 ``` - **Step 2**: Stop and remove the currently running image @@ -1320,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.8.1 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.8.2 ``` ## Shell Access diff --git a/VERSION b/VERSION index 94a033d46..2e84a9277 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.8.1 \ No newline at end of file +12.8.2 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index d11ea9010..69897e48f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.8.1 + image: sameersbn/gitlab:12.8.2 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index 90d128125..0260f774c 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.8.1 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.2 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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:12.8.1 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.2 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. @@ -309,7 +309,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.8.1 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.2 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.8.1 +docker pull sameersbn/gitlab:12.8.2 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.8.1 +sameersbn/gitlab:12.8.2 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index ac9024ffe..a8f3f7502 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.8.1 + image: sameersbn/gitlab:12.8.2 env: - name: TZ value: Asia/Kolkata From 7d9e9d5603db33297578867d2c407b8f64d18b85 Mon Sep 17 00:00:00 2001 From: solidnerd Date: Sun, 29 Mar 2020 15:40:31 +0200 Subject: [PATCH 09/29] release 12.8.2 From d4641c433fbc3f285811495976187af15db259b5 Mon Sep 17 00:00:00 2001 From: Niclas Mietz Date: Sun, 29 Mar 2020 15:41:56 +0200 Subject: [PATCH 10/29] Upgrade GitLab CE to 12.8.3 (#2110) --- Changelog.md | 3 +++ Dockerfile | 4 +-- README.md | 52 +++++++++++++++++++------------------- VERSION | 2 +- docker-compose.yml | 2 +- docs/container_registry.md | 10 ++++---- kubernetes/gitlab-rc.yml | 2 +- 7 files changed, 39 insertions(+), 36 deletions(-) diff --git a/Changelog.md b/Changelog.md index c2456a1c2..8a144b83f 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,9 @@ 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.8.3** +- gitlab: upgrade CE to v12.8.3 + **12.8.2** - gitlab: upgrade CE to v12.8.2 diff --git a/Dockerfile b/Dockerfile index c7ac25ab8..7eb13cc69 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:bionic-20200219 ARG BUILD_DATE ARG VCS_REF -ARG VERSION=12.8.2 +ARG VERSION=12.8.3 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.6 \ @@ -10,7 +10,7 @@ ENV GITLAB_VERSION=${VERSION} \ GITLAB_SHELL_VERSION=11.0.0 \ GITLAB_WORKHORSE_VERSION=8.21.0 \ GITLAB_PAGES_VERSION=1.16.0 \ - GITALY_SERVER_VERSION=12.8.2 \ + GITALY_SERVER_VERSION=12.8.3 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index 3c773c772..be23cb8d6 100644 --- a/README.md +++ b/README.md @@ -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.8.2 +# sameersbn/gitlab:12.8.3 - [Introduction](#introduction) - [Changelog](Changelog.md) @@ -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.8.2 +docker pull sameersbn/gitlab:12.8.3 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -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.8.2 + sameersbn/gitlab:12.8.3 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -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.8.2 + sameersbn/gitlab:12.8.3 ``` ## Database @@ -262,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.8.2 + sameersbn/gitlab:12.8.3 ``` #### Linking to PostgreSQL Container @@ -306,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.8.2 + sameersbn/gitlab:12.8.3 ``` 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: @@ -333,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.8.2 + sameersbn/gitlab:12.8.3 ``` ### Linking to Redis Container @@ -360,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.8.2 + sameersbn/gitlab:12.8.3 ``` ### Mail @@ -373,7 +373,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:12.8.2 + sameersbn/gitlab:12.8.3 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -393,7 +393,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:12.8.2 + sameersbn/gitlab:12.8.3 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -470,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.8.2 + sameersbn/gitlab:12.8.3 ``` 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. @@ -486,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.8.2 + sameersbn/gitlab:12.8.3 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -509,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.8.2 + sameersbn/gitlab:12.8.3 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -557,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.8.2 + sameersbn/gitlab:12.8.3 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -738,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.8.2 + sameersbn/gitlab:12.8.3 ``` 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.8.2 app:sanitize + sameersbn/gitlab:12.8.3 app:sanitize ``` ### Piwik @@ -1122,7 +1122,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.2 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.3 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. @@ -1157,14 +1157,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.2 app:rake db:setup + sameersbn/gitlab:12.8.3 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.8.2 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.3 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. @@ -1173,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.8.2 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.3 app:rake gitlab:backup:restore BACKUP=1417624827 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -1223,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.8.2 app:rake gitlab:env:info + sameersbn/gitlab:12.8.3 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -1236,7 +1236,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.2 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.3 app:rake gitlab:import:repos ``` Or @@ -1267,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.8.2 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.3 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -1289,12 +1289,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:12.8.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:12.8.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. - **Step 1**: Update the docker image. ```bash -docker pull sameersbn/gitlab:12.8.2 +docker pull sameersbn/gitlab:12.8.3 ``` - **Step 2**: Stop and remove the currently running image @@ -1320,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.8.2 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.8.3 ``` ## Shell Access diff --git a/VERSION b/VERSION index 2e84a9277..26d716c1b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.8.2 \ No newline at end of file +12.8.3 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 69897e48f..fbc94ef1b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.8.2 + image: sameersbn/gitlab:12.8.3 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index 0260f774c..86c80cd71 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.8.2 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.3 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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:12.8.2 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.3 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. @@ -309,7 +309,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.8.2 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.3 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.8.2 +docker pull sameersbn/gitlab:12.8.3 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.8.2 +sameersbn/gitlab:12.8.3 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index a8f3f7502..c85bff2c6 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.8.2 + image: sameersbn/gitlab:12.8.3 env: - name: TZ value: Asia/Kolkata From 03c64f5334886bc562a24e184985f8c2cde08dbc Mon Sep 17 00:00:00 2001 From: solidnerd Date: Sun, 29 Mar 2020 15:42:12 +0200 Subject: [PATCH 11/29] release 12.8.3 From 316807925116b9b61847cabf6e0da1de3da3d0af Mon Sep 17 00:00:00 2001 From: Niclas Mietz Date: Sun, 29 Mar 2020 15:44:20 +0200 Subject: [PATCH 12/29] Upgrade GitLab CE to 12.8.4 (#2111) --- Changelog.md | 3 +++ Dockerfile | 4 +-- README.md | 52 +++++++++++++++++++------------------- VERSION | 2 +- docker-compose.yml | 2 +- docs/container_registry.md | 10 ++++---- kubernetes/gitlab-rc.yml | 2 +- 7 files changed, 39 insertions(+), 36 deletions(-) diff --git a/Changelog.md b/Changelog.md index 8a144b83f..c5d5bdbd7 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,9 @@ 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.8.4** +- gitlab: upgrade CE to v12.8.4 + **12.8.3** - gitlab: upgrade CE to v12.8.3 diff --git a/Dockerfile b/Dockerfile index 7eb13cc69..f27ef1363 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:bionic-20200219 ARG BUILD_DATE ARG VCS_REF -ARG VERSION=12.8.3 +ARG VERSION=12.8.4 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.6 \ @@ -10,7 +10,7 @@ ENV GITLAB_VERSION=${VERSION} \ GITLAB_SHELL_VERSION=11.0.0 \ GITLAB_WORKHORSE_VERSION=8.21.0 \ GITLAB_PAGES_VERSION=1.16.0 \ - GITALY_SERVER_VERSION=12.8.3 \ + GITALY_SERVER_VERSION=12.8.4 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index be23cb8d6..0b61e0f99 100644 --- a/README.md +++ b/README.md @@ -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.8.3 +# sameersbn/gitlab:12.8.4 - [Introduction](#introduction) - [Changelog](Changelog.md) @@ -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.8.3 +docker pull sameersbn/gitlab:12.8.4 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -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.8.3 + sameersbn/gitlab:12.8.4 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -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.8.3 + sameersbn/gitlab:12.8.4 ``` ## Database @@ -262,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.8.3 + sameersbn/gitlab:12.8.4 ``` #### Linking to PostgreSQL Container @@ -306,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.8.3 + sameersbn/gitlab:12.8.4 ``` 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: @@ -333,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.8.3 + sameersbn/gitlab:12.8.4 ``` ### Linking to Redis Container @@ -360,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.8.3 + sameersbn/gitlab:12.8.4 ``` ### Mail @@ -373,7 +373,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:12.8.3 + sameersbn/gitlab:12.8.4 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -393,7 +393,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:12.8.3 + sameersbn/gitlab:12.8.4 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -470,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.8.3 + sameersbn/gitlab:12.8.4 ``` 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. @@ -486,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.8.3 + sameersbn/gitlab:12.8.4 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -509,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.8.3 + sameersbn/gitlab:12.8.4 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -557,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.8.3 + sameersbn/gitlab:12.8.4 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -738,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.8.3 + sameersbn/gitlab:12.8.4 ``` 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.8.3 app:sanitize + sameersbn/gitlab:12.8.4 app:sanitize ``` ### Piwik @@ -1122,7 +1122,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.3 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.4 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. @@ -1157,14 +1157,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.3 app:rake db:setup + sameersbn/gitlab:12.8.4 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.8.3 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.4 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. @@ -1173,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.8.3 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.4 app:rake gitlab:backup:restore BACKUP=1417624827 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -1223,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.8.3 app:rake gitlab:env:info + sameersbn/gitlab:12.8.4 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -1236,7 +1236,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.3 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.4 app:rake gitlab:import:repos ``` Or @@ -1267,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.8.3 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.4 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -1289,12 +1289,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:12.8.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:12.8.4` 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.8.3 +docker pull sameersbn/gitlab:12.8.4 ``` - **Step 2**: Stop and remove the currently running image @@ -1320,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.8.3 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.8.4 ``` ## Shell Access diff --git a/VERSION b/VERSION index 26d716c1b..c825a4058 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.8.3 \ No newline at end of file +12.8.4 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index fbc94ef1b..b9ed13dd0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.8.3 + image: sameersbn/gitlab:12.8.4 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index 86c80cd71..404b9bc29 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.8.3 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.4 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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:12.8.3 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.4 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. @@ -309,7 +309,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.8.3 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.4 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.8.3 +docker pull sameersbn/gitlab:12.8.4 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.8.3 +sameersbn/gitlab:12.8.4 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index c85bff2c6..aac8f64db 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.8.3 + image: sameersbn/gitlab:12.8.4 env: - name: TZ value: Asia/Kolkata From ec4afcdcc3521042bf833263ee1479713ec67b1d Mon Sep 17 00:00:00 2001 From: solidnerd Date: Sun, 29 Mar 2020 15:44:34 +0200 Subject: [PATCH 13/29] release 12.8.4 From 47b9d6e3b749f1ac4cebd10c83909d20c1efce2e Mon Sep 17 00:00:00 2001 From: Niclas Mietz Date: Sun, 29 Mar 2020 15:46:11 +0200 Subject: [PATCH 14/29] Upgrade GitLab CE to 12.8.5 (#2112) --- Changelog.md | 3 +++ Dockerfile | 4 +-- README.md | 52 +++++++++++++++++++------------------- VERSION | 2 +- docker-compose.yml | 2 +- docs/container_registry.md | 10 ++++---- kubernetes/gitlab-rc.yml | 2 +- 7 files changed, 39 insertions(+), 36 deletions(-) diff --git a/Changelog.md b/Changelog.md index c5d5bdbd7..dc0bdd93d 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,9 @@ 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.8.5** +- gitlab: upgrade CE to v12.8.5 + **12.8.4** - gitlab: upgrade CE to v12.8.4 diff --git a/Dockerfile b/Dockerfile index f27ef1363..bd5ab4937 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:bionic-20200219 ARG BUILD_DATE ARG VCS_REF -ARG VERSION=12.8.4 +ARG VERSION=12.8.5 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.6 \ @@ -10,7 +10,7 @@ ENV GITLAB_VERSION=${VERSION} \ GITLAB_SHELL_VERSION=11.0.0 \ GITLAB_WORKHORSE_VERSION=8.21.0 \ GITLAB_PAGES_VERSION=1.16.0 \ - GITALY_SERVER_VERSION=12.8.4 \ + GITALY_SERVER_VERSION=12.8.5 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index 0b61e0f99..f97b4f6e8 100644 --- a/README.md +++ b/README.md @@ -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.8.4 +# sameersbn/gitlab:12.8.5 - [Introduction](#introduction) - [Changelog](Changelog.md) @@ -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.8.4 +docker pull sameersbn/gitlab:12.8.5 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -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.8.4 + sameersbn/gitlab:12.8.5 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -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.8.4 + sameersbn/gitlab:12.8.5 ``` ## Database @@ -262,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.8.4 + sameersbn/gitlab:12.8.5 ``` #### Linking to PostgreSQL Container @@ -306,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.8.4 + sameersbn/gitlab:12.8.5 ``` 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: @@ -333,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.8.4 + sameersbn/gitlab:12.8.5 ``` ### Linking to Redis Container @@ -360,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.8.4 + sameersbn/gitlab:12.8.5 ``` ### Mail @@ -373,7 +373,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:12.8.4 + sameersbn/gitlab:12.8.5 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -393,7 +393,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:12.8.4 + sameersbn/gitlab:12.8.5 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -470,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.8.4 + sameersbn/gitlab:12.8.5 ``` 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. @@ -486,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.8.4 + sameersbn/gitlab:12.8.5 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -509,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.8.4 + sameersbn/gitlab:12.8.5 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -557,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.8.4 + sameersbn/gitlab:12.8.5 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -738,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.8.4 + sameersbn/gitlab:12.8.5 ``` 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.8.4 app:sanitize + sameersbn/gitlab:12.8.5 app:sanitize ``` ### Piwik @@ -1122,7 +1122,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.4 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.5 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. @@ -1157,14 +1157,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.4 app:rake db:setup + sameersbn/gitlab:12.8.5 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.8.4 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.5 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. @@ -1173,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.8.4 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.5 app:rake gitlab:backup:restore BACKUP=1417624827 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -1223,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.8.4 app:rake gitlab:env:info + sameersbn/gitlab:12.8.5 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -1236,7 +1236,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.4 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.5 app:rake gitlab:import:repos ``` Or @@ -1267,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.8.4 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.5 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -1289,12 +1289,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:12.8.4` 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.5` 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.8.4 +docker pull sameersbn/gitlab:12.8.5 ``` - **Step 2**: Stop and remove the currently running image @@ -1320,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.8.4 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.8.5 ``` ## Shell Access diff --git a/VERSION b/VERSION index c825a4058..394812df7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.8.4 \ No newline at end of file +12.8.5 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index b9ed13dd0..68e7963d5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.8.4 + image: sameersbn/gitlab:12.8.5 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index 404b9bc29..607da6a8d 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.8.4 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.5 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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:12.8.4 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.5 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. @@ -309,7 +309,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.8.4 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.5 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.8.4 +docker pull sameersbn/gitlab:12.8.5 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.8.4 +sameersbn/gitlab:12.8.5 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index aac8f64db..540688d72 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.8.4 + image: sameersbn/gitlab:12.8.5 env: - name: TZ value: Asia/Kolkata From 05240f0c4e2eebf15f880c18cc888ea372905fd1 Mon Sep 17 00:00:00 2001 From: solidnerd Date: Sun, 29 Mar 2020 15:46:26 +0200 Subject: [PATCH 15/29] release 12.8.5 From 0c3da9db72aa88e7738f1161a2b4bc8e46ce9ada Mon Sep 17 00:00:00 2001 From: Niclas Mietz Date: Sun, 29 Mar 2020 15:47:45 +0200 Subject: [PATCH 16/29] Upgrade GitLab CE to 12.8.6 (#2113) --- Changelog.md | 3 +++ Dockerfile | 4 +-- README.md | 52 +++++++++++++++++++------------------- VERSION | 2 +- docker-compose.yml | 2 +- docs/container_registry.md | 10 ++++---- kubernetes/gitlab-rc.yml | 2 +- 7 files changed, 39 insertions(+), 36 deletions(-) diff --git a/Changelog.md b/Changelog.md index dc0bdd93d..e5a890a43 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,9 @@ 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.8.6** +- gitlab: upgrade CE to v12.8.6 + **12.8.5** - gitlab: upgrade CE to v12.8.5 diff --git a/Dockerfile b/Dockerfile index bd5ab4937..7aaa758da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:bionic-20200219 ARG BUILD_DATE ARG VCS_REF -ARG VERSION=12.8.5 +ARG VERSION=12.8.6 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.6 \ @@ -10,7 +10,7 @@ ENV GITLAB_VERSION=${VERSION} \ GITLAB_SHELL_VERSION=11.0.0 \ GITLAB_WORKHORSE_VERSION=8.21.0 \ GITLAB_PAGES_VERSION=1.16.0 \ - GITALY_SERVER_VERSION=12.8.5 \ + GITALY_SERVER_VERSION=12.8.6 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index f97b4f6e8..b8e45b599 100644 --- a/README.md +++ b/README.md @@ -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.8.5 +# sameersbn/gitlab:12.8.6 - [Introduction](#introduction) - [Changelog](Changelog.md) @@ -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.8.5 +docker pull sameersbn/gitlab:12.8.6 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -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.8.5 + sameersbn/gitlab:12.8.6 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -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.8.5 + sameersbn/gitlab:12.8.6 ``` ## Database @@ -262,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.8.5 + sameersbn/gitlab:12.8.6 ``` #### Linking to PostgreSQL Container @@ -306,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.8.5 + sameersbn/gitlab:12.8.6 ``` 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: @@ -333,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.8.5 + sameersbn/gitlab:12.8.6 ``` ### Linking to Redis Container @@ -360,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.8.5 + sameersbn/gitlab:12.8.6 ``` ### Mail @@ -373,7 +373,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:12.8.5 + sameersbn/gitlab:12.8.6 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -393,7 +393,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:12.8.5 + sameersbn/gitlab:12.8.6 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -470,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.8.5 + sameersbn/gitlab:12.8.6 ``` 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. @@ -486,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.8.5 + sameersbn/gitlab:12.8.6 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -509,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.8.5 + sameersbn/gitlab:12.8.6 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -557,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.8.5 + sameersbn/gitlab:12.8.6 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -738,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.8.5 + sameersbn/gitlab:12.8.6 ``` 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.8.5 app:sanitize + sameersbn/gitlab:12.8.6 app:sanitize ``` ### Piwik @@ -1122,7 +1122,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.5 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.6 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. @@ -1157,14 +1157,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.5 app:rake db:setup + sameersbn/gitlab:12.8.6 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.8.5 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.6 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. @@ -1173,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.8.5 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.6 app:rake gitlab:backup:restore BACKUP=1417624827 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -1223,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.8.5 app:rake gitlab:env:info + sameersbn/gitlab:12.8.6 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -1236,7 +1236,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.5 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.6 app:rake gitlab:import:repos ``` Or @@ -1267,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.8.5 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.6 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -1289,12 +1289,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:12.8.5` 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.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. - **Step 1**: Update the docker image. ```bash -docker pull sameersbn/gitlab:12.8.5 +docker pull sameersbn/gitlab:12.8.6 ``` - **Step 2**: Stop and remove the currently running image @@ -1320,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.8.5 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.8.6 ``` ## Shell Access diff --git a/VERSION b/VERSION index 394812df7..ef6940832 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.8.5 \ No newline at end of file +12.8.6 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 68e7963d5..86ac987da 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.8.5 + image: sameersbn/gitlab:12.8.6 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index 607da6a8d..dcb487054 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.8.5 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.6 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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:12.8.5 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.6 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. @@ -309,7 +309,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.8.5 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.6 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.8.5 +docker pull sameersbn/gitlab:12.8.6 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.8.5 +sameersbn/gitlab:12.8.6 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index 540688d72..0a92ec703 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.8.5 + image: sameersbn/gitlab:12.8.6 env: - name: TZ value: Asia/Kolkata From 4554637b1fb8c1f7f494cc74d0b57cab6daab32f Mon Sep 17 00:00:00 2001 From: solidnerd Date: Sun, 29 Mar 2020 15:48:04 +0200 Subject: [PATCH 17/29] release 12.8.6 From 478a8ea73664d2977adb30125f7436a1a1ad736a Mon Sep 17 00:00:00 2001 From: Niclas Mietz Date: Sun, 29 Mar 2020 15:49:48 +0200 Subject: [PATCH 18/29] Upgrade GitLab CE to 12.8.7 (#2114) --- Changelog.md | 3 +++ Dockerfile | 4 +-- README.md | 52 +++++++++++++++++++------------------- VERSION | 2 +- docker-compose.yml | 2 +- docs/container_registry.md | 10 ++++---- kubernetes/gitlab-rc.yml | 2 +- 7 files changed, 39 insertions(+), 36 deletions(-) diff --git a/Changelog.md b/Changelog.md index e5a890a43..fe268dc4d 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,9 @@ 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.8.7** +- gitlab: upgrade CE to v12.8.7 + **12.8.6** - gitlab: upgrade CE to v12.8.6 diff --git a/Dockerfile b/Dockerfile index 7aaa758da..497ba84c0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:bionic-20200219 ARG BUILD_DATE ARG VCS_REF -ARG VERSION=12.8.6 +ARG VERSION=12.8.7 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.6 \ @@ -10,7 +10,7 @@ ENV GITLAB_VERSION=${VERSION} \ GITLAB_SHELL_VERSION=11.0.0 \ GITLAB_WORKHORSE_VERSION=8.21.0 \ GITLAB_PAGES_VERSION=1.16.0 \ - GITALY_SERVER_VERSION=12.8.6 \ + GITALY_SERVER_VERSION=12.8.7 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index b8e45b599..50f0d585b 100644 --- a/README.md +++ b/README.md @@ -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.8.6 +# sameersbn/gitlab:12.8.7 - [Introduction](#introduction) - [Changelog](Changelog.md) @@ -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.8.6 +docker pull sameersbn/gitlab:12.8.7 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -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.8.6 + sameersbn/gitlab:12.8.7 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -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.8.6 + sameersbn/gitlab:12.8.7 ``` ## Database @@ -262,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.8.6 + sameersbn/gitlab:12.8.7 ``` #### Linking to PostgreSQL Container @@ -306,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.8.6 + sameersbn/gitlab:12.8.7 ``` 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: @@ -333,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.8.6 + sameersbn/gitlab:12.8.7 ``` ### Linking to Redis Container @@ -360,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.8.6 + sameersbn/gitlab:12.8.7 ``` ### Mail @@ -373,7 +373,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:12.8.6 + sameersbn/gitlab:12.8.7 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -393,7 +393,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:12.8.6 + sameersbn/gitlab:12.8.7 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -470,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.8.6 + sameersbn/gitlab:12.8.7 ``` 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. @@ -486,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.8.6 + sameersbn/gitlab:12.8.7 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -509,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.8.6 + sameersbn/gitlab:12.8.7 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -557,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.8.6 + sameersbn/gitlab:12.8.7 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -738,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.8.6 + sameersbn/gitlab:12.8.7 ``` 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.8.6 app:sanitize + sameersbn/gitlab:12.8.7 app:sanitize ``` ### Piwik @@ -1122,7 +1122,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.6 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.7 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. @@ -1157,14 +1157,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.6 app:rake db:setup + sameersbn/gitlab:12.8.7 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.8.6 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.7 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. @@ -1173,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.8.6 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.7 app:rake gitlab:backup:restore BACKUP=1417624827 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -1223,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.8.6 app:rake gitlab:env:info + sameersbn/gitlab:12.8.7 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -1236,7 +1236,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.6 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.7 app:rake gitlab:import:repos ``` Or @@ -1267,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.8.6 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.7 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -1289,12 +1289,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:12.8.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:12.8.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. - **Step 1**: Update the docker image. ```bash -docker pull sameersbn/gitlab:12.8.6 +docker pull sameersbn/gitlab:12.8.7 ``` - **Step 2**: Stop and remove the currently running image @@ -1320,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.8.6 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.8.7 ``` ## Shell Access diff --git a/VERSION b/VERSION index ef6940832..816147054 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.8.6 \ No newline at end of file +12.8.7 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 86ac987da..3e914b2ff 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.8.6 + image: sameersbn/gitlab:12.8.7 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index dcb487054..3879ecda0 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.8.6 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.7 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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:12.8.6 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.7 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. @@ -309,7 +309,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.8.6 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.7 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.8.6 +docker pull sameersbn/gitlab:12.8.7 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.8.6 +sameersbn/gitlab:12.8.7 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index 0a92ec703..139021874 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.8.6 + image: sameersbn/gitlab:12.8.7 env: - name: TZ value: Asia/Kolkata From 1e061ae56d5d1ab654cb77e3d7971fd28f0d98ef Mon Sep 17 00:00:00 2001 From: solidnerd Date: Sun, 29 Mar 2020 15:50:02 +0200 Subject: [PATCH 19/29] release 12.8.7 From 2356fd3de6d24b72c36b3a1f46bad9cd2471991f Mon Sep 17 00:00:00 2001 From: Niclas Mietz Date: Sun, 29 Mar 2020 15:51:31 +0200 Subject: [PATCH 20/29] Upgrade to 12.8.8 (#2115) * Upgrade GitLab CE to 12.8.8 * Update gitlab-workhorse to 8.21.1 Signed-off-by: solidnerd --- Changelog.md | 3 +++ Dockerfile | 6 ++--- README.md | 52 +++++++++++++++++++------------------- VERSION | 2 +- docker-compose.yml | 2 +- docs/container_registry.md | 10 ++++---- kubernetes/gitlab-rc.yml | 2 +- 7 files changed, 40 insertions(+), 37 deletions(-) diff --git a/Changelog.md b/Changelog.md index fe268dc4d..22a171231 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,9 @@ 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.8.8** +- gitlab: upgrade CE to v12.8.8 + **12.8.7** - gitlab: upgrade CE to v12.8.7 diff --git a/Dockerfile b/Dockerfile index 497ba84c0..9a74c0350 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,15 +2,15 @@ FROM ubuntu:bionic-20200219 ARG BUILD_DATE ARG VCS_REF -ARG VERSION=12.8.7 +ARG VERSION=12.8.8 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.6 \ GOLANG_VERSION=1.13.7 \ GITLAB_SHELL_VERSION=11.0.0 \ - GITLAB_WORKHORSE_VERSION=8.21.0 \ + GITLAB_WORKHORSE_VERSION=8.21.1 \ GITLAB_PAGES_VERSION=1.16.0 \ - GITALY_SERVER_VERSION=12.8.7 \ + GITALY_SERVER_VERSION=12.8.8 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index 50f0d585b..1d864b5dd 100644 --- a/README.md +++ b/README.md @@ -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.8.7 +# sameersbn/gitlab:12.8.8 - [Introduction](#introduction) - [Changelog](Changelog.md) @@ -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.8.7 +docker pull sameersbn/gitlab:12.8.8 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -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.8.7 + sameersbn/gitlab:12.8.8 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -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.8.7 + sameersbn/gitlab:12.8.8 ``` ## Database @@ -262,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.8.7 + sameersbn/gitlab:12.8.8 ``` #### Linking to PostgreSQL Container @@ -306,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.8.7 + sameersbn/gitlab:12.8.8 ``` 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: @@ -333,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.8.7 + sameersbn/gitlab:12.8.8 ``` ### Linking to Redis Container @@ -360,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.8.7 + sameersbn/gitlab:12.8.8 ``` ### Mail @@ -373,7 +373,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:12.8.7 + sameersbn/gitlab:12.8.8 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -393,7 +393,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:12.8.7 + sameersbn/gitlab:12.8.8 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -470,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.8.7 + sameersbn/gitlab:12.8.8 ``` 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. @@ -486,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.8.7 + sameersbn/gitlab:12.8.8 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -509,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.8.7 + sameersbn/gitlab:12.8.8 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -557,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.8.7 + sameersbn/gitlab:12.8.8 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -738,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.8.7 + sameersbn/gitlab:12.8.8 ``` 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.8.7 app:sanitize + sameersbn/gitlab:12.8.8 app:sanitize ``` ### Piwik @@ -1122,7 +1122,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.7 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.8 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. @@ -1157,14 +1157,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.7 app:rake db:setup + sameersbn/gitlab:12.8.8 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.8.7 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.8 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. @@ -1173,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.8.7 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.8 app:rake gitlab:backup:restore BACKUP=1417624827 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -1223,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.8.7 app:rake gitlab:env:info + sameersbn/gitlab:12.8.8 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -1236,7 +1236,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.7 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.8 app:rake gitlab:import:repos ``` Or @@ -1267,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.8.7 app:rake gitlab:import:repos + sameersbn/gitlab:12.8.8 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -1289,12 +1289,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:12.8.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:12.8.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. - **Step 1**: Update the docker image. ```bash -docker pull sameersbn/gitlab:12.8.7 +docker pull sameersbn/gitlab:12.8.8 ``` - **Step 2**: Stop and remove the currently running image @@ -1320,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.8.7 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.8.8 ``` ## Shell Access diff --git a/VERSION b/VERSION index 816147054..99631b599 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.8.7 \ No newline at end of file +12.8.8 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 3e914b2ff..5348de239 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.8.7 + image: sameersbn/gitlab:12.8.8 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index 3879ecda0..d5d1093cc 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.8.7 app:rake gitlab:backup:create + sameersbn/gitlab:12.8.8 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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:12.8.7 app:rake gitlab:backup:restore + sameersbn/gitlab:12.8.8 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. @@ -309,7 +309,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.8.7 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.8.8 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.8.7 +docker pull sameersbn/gitlab:12.8.8 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.8.7 +sameersbn/gitlab:12.8.8 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index 139021874..38eff2393 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.8.7 + image: sameersbn/gitlab:12.8.8 env: - name: TZ value: Asia/Kolkata From 5f1c5129fff287ffea6b61cc607579d42112eb46 Mon Sep 17 00:00:00 2001 From: solidnerd Date: Sun, 29 Mar 2020 15:51:49 +0200 Subject: [PATCH 21/29] release 12.8.8 From e87f29c2a3737d2a779e09129ad993456d4421a2 Mon Sep 17 00:00:00 2001 From: Niclas Mietz Date: Sat, 4 Apr 2020 10:08:52 +0200 Subject: [PATCH 22/29] Upgrade to 12.9.0 (#2117) * Upgrade GitLab CE to 12.9.0 * Update gitlab-shell to 12.0.0 Signed-off-by: solidnerd * Update gitlab-workhorse to 8.25.0 Signed-off-by: solidnerd * Update gitlab-pages to 1.17.0 Signed-off-by: solidnerd * Update gitaly to 12.9.0-rc42 Signed-off-by: solidnerd * feat: replace unicorn with puma as webserver Signed-off-by: solidnerd --- Changelog.md | 10 ++ Dockerfile | 10 +- README.md | 52 ++++----- VERSION | 2 +- assets/build/install.sh | 9 +- assets/runtime/config/gitlabhq/puma.rb | 88 ++++++++++++++ assets/runtime/config/gitlabhq/unicorn.rb | 133 ---------------------- assets/runtime/env-defaults | 8 +- assets/runtime/functions | 28 +++-- docker-compose.yml | 2 +- docs/container_registry.md | 10 +- kubernetes/gitlab-rc.yml | 2 +- 12 files changed, 164 insertions(+), 190 deletions(-) create mode 100644 assets/runtime/config/gitlabhq/puma.rb delete mode 100644 assets/runtime/config/gitlabhq/unicorn.rb diff --git a/Changelog.md b/Changelog.md index 22a171231..bf0f093e7 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,16 @@ 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.9.0** +- gitlab: upgrade CE to v12.9.0 +- replaced unicorn with puma +- Removed `UNICORN_WORKERS` +- Removed `UNICORN_TIMEOUT` +- Added `PUMA_THREADS_MIN` +- Added `PUMA_THREADS_MAX` +- Added `PUMA_WORKERS` +- Added `PUMA_TIMEOUT` + **12.8.8** - gitlab: upgrade CE to v12.8.8 diff --git a/Dockerfile b/Dockerfile index 9a74c0350..3db891556 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,15 +2,15 @@ FROM ubuntu:bionic-20200219 ARG BUILD_DATE ARG VCS_REF -ARG VERSION=12.8.8 +ARG VERSION=12.9.0 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.6 \ GOLANG_VERSION=1.13.7 \ - GITLAB_SHELL_VERSION=11.0.0 \ - GITLAB_WORKHORSE_VERSION=8.21.1 \ - GITLAB_PAGES_VERSION=1.16.0 \ - GITALY_SERVER_VERSION=12.8.8 \ + GITLAB_SHELL_VERSION=12.0.0 \ + GITLAB_WORKHORSE_VERSION=8.25.0 \ + GITLAB_PAGES_VERSION=1.17.0 \ + GITALY_SERVER_VERSION=12.9.0-rc42 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index 1d864b5dd..8f0a4012b 100644 --- a/README.md +++ b/README.md @@ -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.8.8 +# sameersbn/gitlab:12.9.0 - [Introduction](#introduction) - [Changelog](Changelog.md) @@ -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.8.8 +docker pull sameersbn/gitlab:12.9.0 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -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.8.8 + sameersbn/gitlab:12.9.0 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -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.8.8 + sameersbn/gitlab:12.9.0 ``` ## Database @@ -262,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.8.8 + sameersbn/gitlab:12.9.0 ``` #### Linking to PostgreSQL Container @@ -306,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.8.8 + sameersbn/gitlab:12.9.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: @@ -333,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.8.8 + sameersbn/gitlab:12.9.0 ``` ### Linking to Redis Container @@ -360,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.8.8 + sameersbn/gitlab:12.9.0 ``` ### Mail @@ -373,7 +373,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:12.8.8 + sameersbn/gitlab:12.9.0 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -393,7 +393,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:12.8.8 + sameersbn/gitlab:12.9.0 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -470,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.8.8 + sameersbn/gitlab:12.9.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. @@ -486,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.8.8 + sameersbn/gitlab:12.9.0 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -509,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.8.8 + sameersbn/gitlab:12.9.0 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -557,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.8.8 + sameersbn/gitlab:12.9.0 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -738,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.8.8 + sameersbn/gitlab:12.9.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.8.8 app:sanitize + sameersbn/gitlab:12.9.0 app:sanitize ``` ### Piwik @@ -1122,7 +1122,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.8 app:rake gitlab:backup:create + sameersbn/gitlab:12.9.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. @@ -1157,14 +1157,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.8 app:rake db:setup + sameersbn/gitlab:12.9.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.8.8 app:rake gitlab:backup:restore + sameersbn/gitlab:12.9.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. @@ -1173,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.8.8 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.9.0 app:rake gitlab:backup:restore BACKUP=1417624827 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -1223,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.8.8 app:rake gitlab:env:info + sameersbn/gitlab:12.9.0 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -1236,7 +1236,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.8.8 app:rake gitlab:import:repos + sameersbn/gitlab:12.9.0 app:rake gitlab:import:repos ``` Or @@ -1267,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.8.8 app:rake gitlab:import:repos + sameersbn/gitlab:12.9.0 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -1289,12 +1289,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:12.8.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.9.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.8.8 +docker pull sameersbn/gitlab:12.9.0 ``` - **Step 2**: Stop and remove the currently running image @@ -1320,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.8.8 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.9.0 ``` ## Shell Access diff --git a/VERSION b/VERSION index 99631b599..3eb7353bc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.8.8 \ No newline at end of file +12.9.0 \ No newline at end of file diff --git a/assets/build/install.sh b/assets/build/install.sh index 67f3643bb..250ae6821 100755 --- a/assets/build/install.sh +++ b/assets/build/install.sh @@ -287,13 +287,12 @@ ${GITLAB_LOG_DIR}/nginx/*.log { } EOF -# configure supervisord to start unicorn -cat > /etc/supervisor/conf.d/unicorn.conf < /etc/supervisor/conf.d/puma.conf < /etc/supervisor/conf.d/groups.conf < 1024 -listen "127.0.0.1:8080", :tcp_nopush => true - -# nuke workers after 30 seconds instead of 60 seconds (the default) -# -# NOTICE: git push over http depends on this value. -# If you want to be able to push huge amount of data to git repository over http -# you will have to increase this value too. -# -# Example of output if you try to push 1GB repo to GitLab over http. -# -> git push http://gitlab.... master -# -# error: RPC failed; result=18, HTTP code = 200 -# fatal: The remote end hung up unexpectedly -# fatal: The remote end hung up unexpectedly -# -# For more information see http://stackoverflow.com/a/21682112/752049 -# -timeout {{UNICORN_TIMEOUT}} - -# feel free to point this anywhere accessible on the filesystem -pid "{{GITLAB_INSTALL_DIR}}/tmp/pids/unicorn.pid" - -# By default, the Unicorn logger will write to stderr. -# Additionally, some applications/frameworks log to stderr or stdout, -# so prevent them from going to /dev/null when daemonized here: -stderr_path "{{GITLAB_INSTALL_DIR}}/log/unicorn.stderr.log" -stdout_path "{{GITLAB_INSTALL_DIR}}/log/unicorn.stdout.log" - -# combine Ruby 2.0.0dev or REE with "preload_app true" for memory savings -# http://rubyenterpriseedition.com/faq.html#adapt_apps_for_cow -preload_app true -GC.respond_to?(:copy_on_write_friendly=) and - GC.copy_on_write_friendly = true - -# Enable this flag to have unicorn test client connections by writing the -# beginning of the HTTP headers before calling the application. This -# prevents calling the application for connections that have disconnected -# while queued. This is only guaranteed to detect clients on the same -# host unicorn runs on, and unlikely to detect disconnects even on a -# fast LAN. -check_client_connection false - -before_fork do |server, worker| - # the following is highly recommended for Rails + "preload_app true" - # as there's no need for the master process to hold a connection - defined?(ActiveRecord::Base) and - ActiveRecord::Base.connection.disconnect! - - # The following is only recommended for memory/DB-constrained - # installations. It is not needed if your system can house - # twice as many worker_processes as you have configured. - # - # This allows a new master process to incrementally - # phase out the old master process with SIGTTOU to avoid a - # thundering herd (especially in the "preload_app false" case) - # when doing a transparent upgrade. The last worker spawned - # will then kill off the old master process with a SIGQUIT. - old_pid = "#{server.config[:pid]}.oldbin" - if old_pid != server.pid - begin - sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU - Process.kill(sig, File.read(old_pid).to_i) - rescue Errno::ENOENT, Errno::ESRCH - end - end - # - # Throttle the master from forking too quickly by sleeping. Due - # to the implementation of standard Unix signal handlers, this - # helps (but does not completely) prevent identical, repeated signals - # from being lost when the receiving process is busy. - # sleep 1 -end - -after_fork do |server, worker| - # per-process listener ports for debugging/admin/migrations - # addr = "127.0.0.1:#{9293 + worker.nr}" - # server.listen(addr, :tries => -1, :delay => 5, :tcp_nopush => true) - - # the following is *required* for Rails + "preload_app true", - defined?(ActiveRecord::Base) and - ActiveRecord::Base.establish_connection - - # reset prometheus client, this will cause any opened metrics files to be closed - defined?(::Prometheus::Client.reinitialize_on_pid_change) && - Prometheus::Client.reinitialize_on_pid_change - - # if preload_app is true, then you may also want to check and - # restart any other shared sockets/descriptors such as Memcached, - # and Redis. TokyoCabinet file handles are safe to reuse - # between any number of forked children (assuming your kernel - # correctly implements pread()/pwrite() system calls) -end diff --git a/assets/runtime/env-defaults b/assets/runtime/env-defaults index 2bf7c9bb6..e5a51b54a 100644 --- a/assets/runtime/env-defaults +++ b/assets/runtime/env-defaults @@ -61,9 +61,11 @@ SIDEKIQ_CONCURRENCY=${SIDEKIQ_CONCURRENCY:-25} SIDEKIQ_MEMORY_KILLER_MAX_RSS=${SIDEKIQ_MEMORY_KILLER_MAX_RSS:-1000000} GITLAB_SIDEKIQ_LOG_FORMAT=${GITLAB_SIDEKIQ_LOG_FORMAT:-json} -## UNICORN -UNICORN_WORKERS=${UNICORN_WORKERS:-3} -UNICORN_TIMEOUT=${UNICORN_TIMEOUT:-60} +## PUMA +PUMA_THREADS_MIN=${PUMA_THREADS_MIN:-1} +PUMA_THREADS_MAX=${PUMA_THREADS_MAX:-16} +PUMA_WORKERS=${PUMA_WORKERS:-3} +PUMA_TIMEOUT=${PUMA_TIMEOUT:-60} # Set Default values according to the documentation # https://docs.gitlab.com/ee/administration/operations/unicorn.html#unicorn-worker-killer diff --git a/assets/runtime/functions b/assets/runtime/functions index aa3ef27ed..d81d3cb12 100644 --- a/assets/runtime/functions +++ b/assets/runtime/functions @@ -15,7 +15,7 @@ USERCONF_TEMPLATES_DIR="${GITLAB_DATA_DIR}/config" GITLAB_CONFIG="${GITLAB_INSTALL_DIR}/config/gitlab.yml" GITLAB_DATABASE_CONFIG="${GITLAB_INSTALL_DIR}/config/database.yml" -GITLAB_UNICORN_CONFIG="${GITLAB_INSTALL_DIR}/config/unicorn.rb" +GITLAB_PUMA_CONFIG="${GITLAB_INSTALL_DIR}/config/puma.rb" GITLAB_RELATIVE_URL_CONFIG="${GITLAB_INSTALL_DIR}/config/initializers/relative_url.rb" GITLAB_RACK_ATTACK_CONFIG="${GITLAB_INSTALL_DIR}/config/initializers/rack_attack.rb" GITLAB_SMTP_CONFIG="${GITLAB_INSTALL_DIR}/config/initializers/smtp_settings.rb" @@ -262,18 +262,26 @@ gitlab_configure_gitlab_workhorse() { GITLAB_WORKHORSE_TIMEOUT } -gitlab_configure_unicorn() { - echo "Configuring gitlab::unicorn..." +gitlab_configure_puma() { + echo "Configuring gitlab::puma..." if [[ -n ${GITLAB_RELATIVE_URL_ROOT} ]]; then - update_template ${GITLAB_UNICORN_CONFIG} GITLAB_RELATIVE_URL_ROOT + update_template ${GITLAB_PUMA_CONFIG} GITLAB_RELATIVE_URL_ROOT else - exec_as_git sed -i "/{{GITLAB_RELATIVE_URL_ROOT}}/d" ${GITLAB_UNICORN_CONFIG} + exec_as_git sed -i "/{{GITLAB_RELATIVE_URL_ROOT}}/d" ${GITLAB_PUMA_CONFIG} fi - update_template ${GITLAB_UNICORN_CONFIG} \ + update_template ${GITLAB_PUMA_CONFIG} \ GITLAB_INSTALL_DIR \ - UNICORN_WORKERS \ - UNICORN_TIMEOUT + GITLAB_INSTALL_DIR \ + GITLAB_INSTALL_DIR \ + GITLAB_INSTALL_DIR \ + PUMA_THREADS_MIN \ + PUMA_THREADS_MAX \ + PUMA_WORKERS \ + GITLAB_INSTALL_DIR \ + GITLAB_INSTALL_DIR \ + PUMA_TIMEOUT \ + GITLAB_INSTALL_DIR } gitlab_configure_relative_url() { @@ -1511,7 +1519,7 @@ install_configuration_templates() { echo "Installing configuration templates..." install_template ${GITLAB_USER}: gitlabhq/gitlab.yml ${GITLAB_CONFIG} 0640 install_template ${GITLAB_USER}: gitlabhq/database.yml ${GITLAB_DATABASE_CONFIG} 0640 - install_template ${GITLAB_USER}: gitlabhq/unicorn.rb ${GITLAB_UNICORN_CONFIG} 0644 + install_template ${GITLAB_USER}: gitlabhq/puma.rb ${GITLAB_PUMA_CONFIG} 0644 install_template ${GITLAB_USER}: gitlabhq/rack_attack.rb ${GITLAB_RACK_ATTACK_CONFIG} 0644 install_template ${GITLAB_USER}: gitlabhq/resque.yml ${GITLAB_RESQUE_CONFIG} 0640 install_template ${GITLAB_USER}: gitlabhq/secrets.yml ${GITLAB_SECRETS_CONFIG} 0600 @@ -1614,7 +1622,7 @@ configure_gitlab() { gitlab_configure_gitlab_workhorse gitlab_configure_relative_url gitlab_configure_trusted_proxies - gitlab_configure_unicorn + gitlab_configure_puma gitlab_configure_timezone gitlab_configure_rack_attack gitlab_configure_ci diff --git a/docker-compose.yml b/docker-compose.yml index 5348de239..0ebe79384 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.8.8 + image: sameersbn/gitlab:12.9.0 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index d5d1093cc..faa26bf22 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.8.8 app:rake gitlab:backup:create + sameersbn/gitlab:12.9.0 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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:12.8.8 app:rake gitlab:backup:restore + sameersbn/gitlab:12.9.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. @@ -309,7 +309,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.8.8 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.9.0 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.8.8 +docker pull sameersbn/gitlab:12.9.0 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.8.8 +sameersbn/gitlab:12.9.0 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index 38eff2393..74873987f 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.8.8 + image: sameersbn/gitlab:12.9.0 env: - name: TZ value: Asia/Kolkata From f8599622460049d6d361d75b4f5115f55e57dee1 Mon Sep 17 00:00:00 2001 From: solidnerd Date: Sat, 4 Apr 2020 10:09:41 +0200 Subject: [PATCH 23/29] release 12.9.0 From 9905f90cbeb7750220e3d1e436b3fad5f5a6ec2a Mon Sep 17 00:00:00 2001 From: Niclas Mietz Date: Sat, 4 Apr 2020 10:12:31 +0200 Subject: [PATCH 24/29] Upgrade to 12.9.1 (#2118) * Upgrade GitLab CE to 12.9.1 * Update gitlab-workhorse to 8.25.1 Signed-off-by: solidnerd * Update gitaly to 12.9.1 Signed-off-by: solidnerd --- Changelog.md | 3 +++ Dockerfile | 6 ++--- README.md | 52 +++++++++++++++++++------------------- VERSION | 2 +- docker-compose.yml | 2 +- docs/container_registry.md | 10 ++++---- kubernetes/gitlab-rc.yml | 2 +- 7 files changed, 40 insertions(+), 37 deletions(-) diff --git a/Changelog.md b/Changelog.md index bf0f093e7..e59c951a5 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,9 @@ 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.9.1** +- gitlab: upgrade CE to v12.9.1 + **12.9.0** - gitlab: upgrade CE to v12.9.0 - replaced unicorn with puma diff --git a/Dockerfile b/Dockerfile index 3db891556..980a24e62 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,15 +2,15 @@ FROM ubuntu:bionic-20200219 ARG BUILD_DATE ARG VCS_REF -ARG VERSION=12.9.0 +ARG VERSION=12.9.1 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.6 \ GOLANG_VERSION=1.13.7 \ GITLAB_SHELL_VERSION=12.0.0 \ - GITLAB_WORKHORSE_VERSION=8.25.0 \ + GITLAB_WORKHORSE_VERSION=8.25.1 \ GITLAB_PAGES_VERSION=1.17.0 \ - GITALY_SERVER_VERSION=12.9.0-rc42 \ + GITALY_SERVER_VERSION=12.9.1 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index 8f0a4012b..d2229eb62 100644 --- a/README.md +++ b/README.md @@ -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.9.0 +# sameersbn/gitlab:12.9.1 - [Introduction](#introduction) - [Changelog](Changelog.md) @@ -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.9.0 +docker pull sameersbn/gitlab:12.9.1 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -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.9.0 + sameersbn/gitlab:12.9.1 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -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.9.0 + sameersbn/gitlab:12.9.1 ``` ## Database @@ -262,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.9.0 + sameersbn/gitlab:12.9.1 ``` #### Linking to PostgreSQL Container @@ -306,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.9.0 + sameersbn/gitlab:12.9.1 ``` 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: @@ -333,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.9.0 + sameersbn/gitlab:12.9.1 ``` ### Linking to Redis Container @@ -360,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.9.0 + sameersbn/gitlab:12.9.1 ``` ### Mail @@ -373,7 +373,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:12.9.0 + sameersbn/gitlab:12.9.1 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -393,7 +393,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:12.9.0 + sameersbn/gitlab:12.9.1 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -470,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.9.0 + sameersbn/gitlab:12.9.1 ``` 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. @@ -486,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.9.0 + sameersbn/gitlab:12.9.1 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -509,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.9.0 + sameersbn/gitlab:12.9.1 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -557,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.9.0 + sameersbn/gitlab:12.9.1 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -738,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.9.0 + sameersbn/gitlab:12.9.1 ``` 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.9.0 app:sanitize + sameersbn/gitlab:12.9.1 app:sanitize ``` ### Piwik @@ -1122,7 +1122,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.9.0 app:rake gitlab:backup:create + sameersbn/gitlab:12.9.1 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. @@ -1157,14 +1157,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.9.0 app:rake db:setup + sameersbn/gitlab:12.9.1 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.9.0 app:rake gitlab:backup:restore + sameersbn/gitlab:12.9.1 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. @@ -1173,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.9.0 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.9.1 app:rake gitlab:backup:restore BACKUP=1417624827 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -1223,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.9.0 app:rake gitlab:env:info + sameersbn/gitlab:12.9.1 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -1236,7 +1236,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.9.0 app:rake gitlab:import:repos + sameersbn/gitlab:12.9.1 app:rake gitlab:import:repos ``` Or @@ -1267,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.9.0 app:rake gitlab:import:repos + sameersbn/gitlab:12.9.1 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -1289,12 +1289,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:12.9.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. +> Upgrading to `sameersbn/gitlab:12.9.1` 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.9.0 +docker pull sameersbn/gitlab:12.9.1 ``` - **Step 2**: Stop and remove the currently running image @@ -1320,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.9.0 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.9.1 ``` ## Shell Access diff --git a/VERSION b/VERSION index 3eb7353bc..65a979325 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.9.0 \ No newline at end of file +12.9.1 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 0ebe79384..1cdc7e0c6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.9.0 + image: sameersbn/gitlab:12.9.1 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index faa26bf22..ffd31c229 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.9.0 app:rake gitlab:backup:create + sameersbn/gitlab:12.9.1 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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:12.9.0 app:rake gitlab:backup:restore + sameersbn/gitlab:12.9.1 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. @@ -309,7 +309,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.9.0 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.9.1 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.9.0 +docker pull sameersbn/gitlab:12.9.1 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.9.0 +sameersbn/gitlab:12.9.1 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index 74873987f..44fbe6cac 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.9.0 + image: sameersbn/gitlab:12.9.1 env: - name: TZ value: Asia/Kolkata From 14a49b694ac71ee4a0b0e417f654331207bdcbbf Mon Sep 17 00:00:00 2001 From: solidnerd Date: Sat, 4 Apr 2020 10:12:51 +0200 Subject: [PATCH 25/29] release 12.9.1 From ba97667a84460ee14f697b16415239290f9f4150 Mon Sep 17 00:00:00 2001 From: Niclas Mietz Date: Sat, 4 Apr 2020 10:14:24 +0200 Subject: [PATCH 26/29] Upgrade GitLab CE to 12.9.2 (#2119) --- Changelog.md | 3 +++ Dockerfile | 4 +-- README.md | 52 +++++++++++++++++++------------------- VERSION | 2 +- docker-compose.yml | 2 +- docs/container_registry.md | 10 ++++---- kubernetes/gitlab-rc.yml | 2 +- 7 files changed, 39 insertions(+), 36 deletions(-) diff --git a/Changelog.md b/Changelog.md index e59c951a5..f28fa54a2 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,9 @@ 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.9.2** +- gitlab: upgrade CE to v12.9.2 + **12.9.1** - gitlab: upgrade CE to v12.9.1 diff --git a/Dockerfile b/Dockerfile index 980a24e62..e29a5b1ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:bionic-20200219 ARG BUILD_DATE ARG VCS_REF -ARG VERSION=12.9.1 +ARG VERSION=12.9.2 ENV GITLAB_VERSION=${VERSION} \ RUBY_VERSION=2.6 \ @@ -10,7 +10,7 @@ ENV GITLAB_VERSION=${VERSION} \ GITLAB_SHELL_VERSION=12.0.0 \ GITLAB_WORKHORSE_VERSION=8.25.1 \ GITLAB_PAGES_VERSION=1.17.0 \ - GITALY_SERVER_VERSION=12.9.1 \ + GITALY_SERVER_VERSION=12.9.2 \ GITLAB_USER="git" \ GITLAB_HOME="/home/git" \ GITLAB_LOG_DIR="/var/log/gitlab" \ diff --git a/README.md b/README.md index d2229eb62..8ccf7dce3 100644 --- a/README.md +++ b/README.md @@ -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.9.1 +# sameersbn/gitlab:12.9.2 - [Introduction](#introduction) - [Changelog](Changelog.md) @@ -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.9.1 +docker pull sameersbn/gitlab:12.9.2 ``` You can also pull the `latest` tag which is built from the repository *HEAD* @@ -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.9.1 + sameersbn/gitlab:12.9.2 ``` *Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `GITLAB_PORT` and other configuration options* @@ -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.9.1 + sameersbn/gitlab:12.9.2 ``` ## Database @@ -262,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.9.1 + sameersbn/gitlab:12.9.2 ``` #### Linking to PostgreSQL Container @@ -306,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.9.1 + sameersbn/gitlab:12.9.2 ``` 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: @@ -333,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.9.1 + sameersbn/gitlab:12.9.2 ``` ### Linking to Redis Container @@ -360,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.9.1 + sameersbn/gitlab:12.9.2 ``` ### Mail @@ -373,7 +373,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:12.9.1 + sameersbn/gitlab:12.9.2 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of SMTP parameters that can be specified. @@ -393,7 +393,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:12.9.1 + sameersbn/gitlab:12.9.2 ``` Please refer the [Available Configuration Parameters](#available-configuration-parameters) section for the list of IMAP parameters that can be specified. @@ -470,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.9.1 + sameersbn/gitlab:12.9.2 ``` 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. @@ -486,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.9.1 + sameersbn/gitlab:12.9.2 ``` If you want to completely disable HSTS set `NGINX_HSTS_ENABLED` to `false`. @@ -509,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.9.1 + sameersbn/gitlab:12.9.2 ``` Again, drop the `--env 'SSL_SELF_SIGNED=true'` option if you are using CA certified SSL certificates. @@ -557,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.9.1 + sameersbn/gitlab:12.9.2 ``` GitLab will now be accessible at the `/git` path, e.g. `http://www.example.com/git`. @@ -738,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.9.1 + sameersbn/gitlab:12.9.2 ``` 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.9.1 app:sanitize + sameersbn/gitlab:12.9.2 app:sanitize ``` ### Piwik @@ -1122,7 +1122,7 @@ Execute the rake task to create a backup. ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.9.1 app:rake gitlab:backup:create + sameersbn/gitlab:12.9.2 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. @@ -1157,14 +1157,14 @@ you need to prepare the database: ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.9.1 app:rake db:setup + sameersbn/gitlab:12.9.2 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.9.1 app:rake gitlab:backup:restore + sameersbn/gitlab:12.9.2 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. @@ -1173,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.9.1 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.9.2 app:rake gitlab:backup:restore BACKUP=1417624827 ``` When using `docker-compose` you may use the following command to execute the restore. @@ -1223,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.9.1 app:rake gitlab:env:info + sameersbn/gitlab:12.9.2 app:rake gitlab:env:info ``` You can also use `docker exec` to run raketasks on running gitlab instance. For example, @@ -1236,7 +1236,7 @@ Similarly, to import bare repositories into GitLab project instance ```bash docker run --name gitlab -it --rm [OPTIONS] \ - sameersbn/gitlab:12.9.1 app:rake gitlab:import:repos + sameersbn/gitlab:12.9.2 app:rake gitlab:import:repos ``` Or @@ -1267,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.9.1 app:rake gitlab:import:repos + sameersbn/gitlab:12.9.2 app:rake gitlab:import:repos ``` Watch the logs and your repositories should be available into your new gitlab container. @@ -1289,12 +1289,12 @@ To upgrade to newer gitlab releases, simply follow this 4 step upgrade procedure > **Note** > -> Upgrading to `sameersbn/gitlab:12.9.1` 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.9.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. - **Step 1**: Update the docker image. ```bash -docker pull sameersbn/gitlab:12.9.1 +docker pull sameersbn/gitlab:12.9.2 ``` - **Step 2**: Stop and remove the currently running image @@ -1320,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.9.1 +docker run --name gitlab -d [OPTIONS] sameersbn/gitlab:12.9.2 ``` ## Shell Access diff --git a/VERSION b/VERSION index 65a979325..b825d6d03 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.9.1 \ No newline at end of file +12.9.2 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 1cdc7e0c6..e3a39197c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,7 @@ services: gitlab: restart: always - image: sameersbn/gitlab:12.9.1 + image: sameersbn/gitlab:12.9.2 depends_on: - redis - postgresql diff --git a/docs/container_registry.md b/docs/container_registry.md index ffd31c229..4146eed06 100644 --- a/docs/container_registry.md +++ b/docs/container_registry.md @@ -284,7 +284,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:12.9.1 app:rake gitlab:backup:create + sameersbn/gitlab:12.9.2 app:rake gitlab:backup:create ``` ## Restoring Backups @@ -300,7 +300,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:12.9.1 app:rake gitlab:backup:restore + sameersbn/gitlab:12.9.2 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. @@ -309,7 +309,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.9.1 app:rake gitlab:backup:restore BACKUP=1417624827 + sameersbn/gitlab:12.9.2 app:rake gitlab:backup:restore BACKUP=1417624827 ``` # Upgrading from an existing GitLab installation @@ -320,7 +320,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:12.9.1 +docker pull sameersbn/gitlab:12.9.2 ``` - **Step 2**: Stop and remove the currently running image @@ -373,7 +373,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:12.9.1 +sameersbn/gitlab:12.9.2 ``` diff --git a/kubernetes/gitlab-rc.yml b/kubernetes/gitlab-rc.yml index 44fbe6cac..ca203da9c 100644 --- a/kubernetes/gitlab-rc.yml +++ b/kubernetes/gitlab-rc.yml @@ -14,7 +14,7 @@ spec: spec: containers: - name: gitlab - image: sameersbn/gitlab:12.9.1 + image: sameersbn/gitlab:12.9.2 env: - name: TZ value: Asia/Kolkata From c773d84f452a59a0ffd6c8374883c423c751174b Mon Sep 17 00:00:00 2001 From: solidnerd Date: Sat, 4 Apr 2020 10:14:38 +0200 Subject: [PATCH 27/29] release 12.9.2 From c1e63f529cd6a2ef2c61ce7eb2b87eb2d230326f Mon Sep 17 00:00:00 2001 From: GO Sueyoshi Date: Fri, 10 Apr 2020 03:33:07 +0900 Subject: [PATCH 28/29] [Doc] Migrate doc for unicorn parameters to puma (#2123) unicorn is removed at #2117 --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8ccf7dce3..a8832d8f8 100644 --- a/README.md +++ b/README.md @@ -929,8 +929,10 @@ Below is the complete list of available options that can be used to customize yo | `REDIS_HOST` | The hostname of the redis server. Defaults to `localhost` | | `REDIS_PORT` | The connection port of the redis server. Defaults to `6379`. | | `REDIS_DB_NUMBER` | The redis database number. Defaults to '0'. | -| `UNICORN_WORKERS` | The number of unicorn workers to start. Defaults to `3`. | -| `UNICORN_TIMEOUT` | Sets the timeout of unicorn worker processes. Defaults to `60` seconds. | +| `PUMA_WORKERS` | The number of puma workers to start. Defaults to `3`. | +| `PUMA_TIMEOUT` | Sets the timeout of puma worker processes. Defaults to `60` seconds. | +| `PUMA_THREADS_MIN` | The number of puma minimum threads. Defaults to `1`. | +| `PUMA_THREADS_MAX` | The number of puma maximum threads. Defaults to `16`. | | `SIDEKIQ_CONCURRENCY` | The number of concurrent sidekiq jobs to run. Defaults to `25` | | `SIDEKIQ_SHUTDOWN_TIMEOUT` | Timeout for sidekiq shutdown. Defaults to `4` | | `SIDEKIQ_MEMORY_KILLER_MAX_RSS` | Non-zero value enables the SidekiqMemoryKiller. Defaults to `1000000`. For additional options refer [Configuring the MemoryKiller](http://doc.gitlab.com/ce/operations/sidekiq_memory_killer.html) | From c530f56eeb1c953ee520bcfff13353c6385662f0 Mon Sep 17 00:00:00 2001 From: GO Sueyoshi Date: Fri, 10 Apr 2020 17:27:58 +0900 Subject: [PATCH 29/29] Pass parameters of puma_worker_killer to puma config (#2124) --- README.md | 2 ++ assets/runtime/config/gitlabhq/puma.rb | 2 +- assets/runtime/env-defaults | 2 ++ assets/runtime/functions | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a8832d8f8..7dfe31ce2 100644 --- a/README.md +++ b/README.md @@ -933,6 +933,8 @@ Below is the complete list of available options that can be used to customize yo | `PUMA_TIMEOUT` | Sets the timeout of puma worker processes. Defaults to `60` seconds. | | `PUMA_THREADS_MIN` | The number of puma minimum threads. Defaults to `1`. | | `PUMA_THREADS_MAX` | The number of puma maximum threads. Defaults to `16`. | +| `PUMA_PER_WORKER_MAX_MEMORY_MB` | Maximum memory size of per puma worker process. Defaults to `850`. | +| `PUMA_MASTER_MAX_MEMORY_MB` | Maximum memory size of puma master process. Defaults to `550`. | | `SIDEKIQ_CONCURRENCY` | The number of concurrent sidekiq jobs to run. Defaults to `25` | | `SIDEKIQ_SHUTDOWN_TIMEOUT` | Timeout for sidekiq shutdown. Defaults to `4` | | `SIDEKIQ_MEMORY_KILLER_MAX_RSS` | Non-zero value enables the SidekiqMemoryKiller. Defaults to `1000000`. For additional options refer [Configuring the MemoryKiller](http://doc.gitlab.com/ce/operations/sidekiq_memory_killer.html) | diff --git a/assets/runtime/config/gitlabhq/puma.rb b/assets/runtime/config/gitlabhq/puma.rb index c9ec08406..b520e3fc9 100644 --- a/assets/runtime/config/gitlabhq/puma.rb +++ b/assets/runtime/config/gitlabhq/puma.rb @@ -55,7 +55,7 @@ before_fork do # Signal to the puma killer - Gitlab::Cluster::PumaWorkerKillerInitializer.start @config.options unless ENV['DISABLE_PUMA_WORKER_KILLER'] + Gitlab::Cluster::PumaWorkerKillerInitializer.start(@config.options, puma_per_worker_max_memory_mb: {{PUMA_PER_WORKER_MAX_MEMORY_MB}}, puma_master_max_memory_mb: {{PUMA_MASTER_MAX_MEMORY_MB}}) unless ENV['DISABLE_PUMA_WORKER_KILLER'] # Signal application hooks that we're about to fork Gitlab::Cluster::LifecycleEvents.do_before_fork diff --git a/assets/runtime/env-defaults b/assets/runtime/env-defaults index e5a51b54a..2410451bb 100644 --- a/assets/runtime/env-defaults +++ b/assets/runtime/env-defaults @@ -66,6 +66,8 @@ PUMA_THREADS_MIN=${PUMA_THREADS_MIN:-1} PUMA_THREADS_MAX=${PUMA_THREADS_MAX:-16} PUMA_WORKERS=${PUMA_WORKERS:-3} PUMA_TIMEOUT=${PUMA_TIMEOUT:-60} +PUMA_PER_WORKER_MAX_MEMORY_MB=${PUMA_PER_WORKER_MAX_MEMORY_MB:-850} +PUMA_MASTER_MAX_MEMORY_MB=${PUMA_MASTER_MAX_MEMORY_MB:-550} # Set Default values according to the documentation # https://docs.gitlab.com/ee/administration/operations/unicorn.html#unicorn-worker-killer diff --git a/assets/runtime/functions b/assets/runtime/functions index d81d3cb12..a9aed6ddd 100644 --- a/assets/runtime/functions +++ b/assets/runtime/functions @@ -278,6 +278,8 @@ gitlab_configure_puma() { PUMA_THREADS_MIN \ PUMA_THREADS_MAX \ PUMA_WORKERS \ + PUMA_PER_WORKER_MAX_MEMORY_MB \ + PUMA_MASTER_MAX_MEMORY_MB \ GITLAB_INSTALL_DIR \ GITLAB_INSTALL_DIR \ PUMA_TIMEOUT \