0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitlabをDockerで構築してCI/CDまで実践してみる

Last updated at Posted at 2024-12-19

0.はじめに

元々はGitHubでソースを管理していたのですが、こちらの記事で構築したEsxi上のサーバにDockerを構築していたため、色々な機能を集約しる中でGitlabも自宅内に建てることにしました。

1.環境

OSおよびDockerは以下のバージョンのものを使用しています。

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
# 以下省略
$ docker -v
Docker version 26.1.3, build 26.1.3-0ubuntu1~24.04.1

2.使用バージョン

GitlabにはCommunity Edition(CE)Enterprise Edition(EE)の2種類があります。
厳密にはEEの中にも有償、無償の差があるようなのですが、今回はCEで構築していきます。

また、Gitlabのバージョンは構築当初最新だった17.2.1を使用しています。
ただ、このバージョンは古くアップデートせよと警告が出てくるので、バージョンアップも本手順で実施します。

$ docker image ls gitlab/gitlab-ce:latest
REPOSITORY         TAG       IMAGE ID       CREATED        SIZE
gitlab/gitlab-ce   latest    86f394d1a46c   4 months ago   2.95GB
$ docker exec -it gitlab-web-1 gitlab-rake gitlab:env:info

System information
System:
Current User:   git
Using RVM:      no
Ruby Version:   3.1.5p253
Gem Version:    3.5.11
Bundler Version:2.5.11
Rake Version:   13.0.6
Redis Version:  7.0.15
Sidekiq Version:7.1.6
Go Version:     unknown

GitLab information
Version:        17.2.1
Revision:       b30193cc04c
Directory:      /opt/gitlab/embedded/service/gitlab-rails
DB Adapter:     PostgreSQL
DB Version:     14.11
URL:            https://gitlab.motuninja250.work
HTTP Clone URL: https://gitlab.motuninja250.work/some-group/some-project.git
SSH Clone URL:  git@gitlab.motuninja250.work:some-group/some-project.git
Using LDAP:     no
Using Omniauth: yes
Omniauth Providers:

GitLab Shell
Version:        14.37.0
Repository storages:
- default:      unix:/var/opt/gitlab/gitaly/gitaly.socket
GitLab Shell path:              /opt/gitlab/embedded/service/gitlab-shell

Gitaly
- default Address:      unix:/var/opt/gitlab/gitaly/gitaly.socket
- default Version:      17.2.1
- default Git Version:  2.45.2

3.インストール

今回は公式ドキュメントを参考にdocker-compose.ymlを作成していきます。
こちらのページでは公式ドキュメントを日本語に翻訳して公開してくださっています。
ただ、サイト内にも記載がありますが、公式情報や最新の更新については必ず公式ドキュメントを確認するようにしてください。

今回Let's EncryptのSSLサーバ証明書は既に発行済みで、コンテナに/etc/letsencryptを直接マウントさせています。
セキュリティ的にはかなりNGだと思うので、適宜パラメータの調整が行ってください…。

今回使用するのyamlは以下の通りです。
GITLAB_OMNIBUS_CONFIG変数に値を入れることでgitlab.rbより優先してその値を使用してくれます。
各変数の説明は以下の通りです。

  • external_url:外部公開するURLを指定
  • nginx['redirect_http_to_https']:HTTPをHTTPSへリダイレクト
  • nginx['ssl_certificate']:Let's EncryptのSSL証明書を指定
  • nginx['ssl_certificate_key']:Let's Encryptの秘密鍵ファイルを指定

また、ホストのSSHの22ポートは既に使ってると思うので、SSLのポート設定も各自設定してください。

docker-compose.yml
services:
  web:
    image: image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'gitlab-test.motuninja250.work'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab-test.motuninja250.work'
        nginx['redirect_http_to_https'] = true
        nginx['ssl_certificate'] = '/etc/letsencrypt/live/motuninja250.work/fullchain.pem'
        nginx['ssl_certificate_key'] = '/etc/letsencrypt/live/motuninja250.work/privkey.pem'
    ports:
      - '9443:443'
      - '9080:80'
      - '2422:22'
    volumes:
      - ./config:/etc/gitlab
      - ./logs:/var/log/gitlab
      - ./data:/var/opt/gitlab
      - /etc/letsencrypt:/etc/letsencrypt
    shm_size: '1024m'
    networks:
      - wp_net_gitlab-test
  gitlab-runner:
    image: 'gitlab/gitlab-runner:latest'
    restart: always
    volumes:
      - ./gitlab-runner/config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - wp_net_gitlab-test
networks:
  wp_net_gitlab-test:
    driver: bridge

4.起動

特に問題がなければ起動すると思います。
起動まで5~10分ほどかかるので、gitlabのステータスがhealthyになるまで待ちましょう。

$ docker compose up -d
✔ Container gitlab-test-gitlab-runner-1   Started
✔ Container gitlab-test-web-1             Started

$ docker ps
CONTAINER ID   IMAGE                                COMMAND                   CREATED         STATUS                       PORTS                                                                                                                   NAMES
9687f7eaf47e   gitlab/gitlab-ce:latest              "/assets/wrapper"         3 minutes ago   Up 3 minutes (healthy)       0.0.0.0:2423->22/tcp, :::2423->22/tcp, 0.0.0.0:9081->80/tcp, :::9081->80/tcp, 0.0.0.0:9444->443/tcp, :::9444->443/tcp   gitlab-test-web-1
72e0726b435e   gitlab/gitlab-runner:latest          "/usr/bin/dumb-init …"    3 minutes ago   Up 3 minutes                                                                                                                                         gitlab-test-gitlab-runner-1

Gitlabの初回ログインのパスワードは以下のコマンドで取得可能です。

$ docker exec gitlab-test-web-1 cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: u/RIi5ZpqGZkGKH5tl2Mu+cp0s+kNPy5RmrbogeiipQ=

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

5.GitLabアクセス

external_urlに記載したページにアクセスするとログイン画面が開かれます。
ユーザ名はroot、パスワードは先ほど取得した物を入力するとアクセスできるかと思います。

image.png

image.png

6.GitLab Runnerの登録

GitLab RunnerのコンテナはGitLabと一緒に作成しましたが、使用するにはいくつか手順があります。

6-1.トークンの確認

Runnerを設定する対象のプロジェクトから[設定] - [CI/CD] - [Runner]と遷移します。

image.png

新規プロジェクト RunnerをクリックするとRunnerの作成画面が出てきます。
様々な設定ができますが、今回はタグのないジョブの実行にチェックを入れてランナーを作成をクリックします。

image.png

Docker用のマニュアルにも飛べますが、今回はデフォルトで表示されているLinuxのコマンドをそのまま流用します。
ステップ1に表示されているコマンドを控えておきましょう。

image.png

6-2.Runnerへの登録

docker execコマンドに先ほどのコマンドをくっつけて実行します。
その際に、--name test-runner--executor shellも追加で引数として渡します。
--nameはそのRunnerに対して固有の名前を付けることができます。
--executorはRunnerの実行種類を選べます。
dockerkubernetesなど何を実行したいか決まっている人はその値に変えてください。

引数に予め値を渡すことで対話式に入力せずとも最初から値を読み込んでくれるので楽になります。
値の内容に問題がなければ基本Enter連打で問題ありません。

$ docker exec -it gitlab-test-gitlab-runner-1 gitlab-runner register  \
    --url https://gitlab-test.motuninja250.work  \
    --name test-runner \
    --token glrt-BHV6Zuh8qQj57EfoFr67 \
    --executor shell
Runtime platform                                    arch=amd64 os=linux pid=98 revision=374d34fd version=17.6.0
Running in system-mode.

Enter the GitLab instance URL (for example, https://gitlab.com/):
[https://gitlab-test.motuninja250.work]:
Verifying runner... is valid                        runner=BHV6Zuh8q
Enter a name for the runner. This is stored only in the local config.toml file:
[test-runner]:
Enter an executor: shell, virtualbox, docker+machine, kubernetes, docker-autoscaler, instance, custom, ssh, parallels, docker, docker-windows:
[shell]:
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml"

以下のコマンドでRunnerが正常に登録されたか確認することができます。

$ docker exec -it gitlab-test-gitlab-runner-1 gitlab-runner list
Runtime platform                                    arch=amd64 os=linux pid=15 revision=374d34fd version=17.6.0
Listing configured runners                          ConfigFile=/etc/gitlab-runner/config.toml
test-runner                                         Executor=shell Token=glrt-BHV6Zuh8qQj57EfoFr67 URL=https://gitlab-test.motuninja250.work

再度Webの画面を確認すると、接続されたRunnerが表示されているかと思います。

image.png

6-3.Runnerの実行

Runnerでジョブを実行するには、プロジェクトのルートディレクトリに.gitlab-ci.ymlという名前でファイルを格納します。
Web上からファイルを作成する場合は、[ビルド] - [パイプラインエディタ]からファイルの作成・編集をすることが可能です。

image.png

今回はデフォルトで表示されている以下のソースを少し変更して実行してみます。

# This file is a template, and might need editing before it works on your project.
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
#
# You can copy and paste this template into a new `.gitlab-ci.yml` file.
# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword.
#
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml

stages:          # List of stages for jobs, and their order of execution
  - build
  - test
  - deploy

build-job:       # This job runs in the build stage, which runs first.
  stage: build
  script:
    - echo "Compiling the code..."
    - echo "Compile complete."

unit-test-job:   # This job runs in the test stage.
  stage: test    # It only starts when the job in the build stage completes successfully.
  script:
    - echo "Running unit tests... This will take about 10 seconds."
    - sleep 10
    - echo "Code coverage is 90%"

lint-test-job:   # This job also runs in the test stage.
  stage: test    # It can run at the same time as unit-test-job (in parallel).
  script:
    - echo "Linting code... This will take about 10 seconds."
    - sleep 10
    - echo "No lint issues found."

deploy-job:      # This job runs in the deploy stage.
  stage: deploy  # It only runs when *both* jobs in the test stage complete successfully.
  environment: production
  script:
    - echo "Deploying application..."
    - echo "Application successfully deployed."

下部の変更をコミットするをクリックするとファイルのコミットとジョブの実行が開始されます。

image.png

実行が成功すると、以下のように標準出力などの実行結果が表示されます。

image.png

7.GitLabのバックアップ

GitLabとしてバックアップコマンドが用意されています。
gitlab-rake gitlab:backup:createを実行するとバックアップの取得ができます。

$ docker exec -it gitlab-test-web-1 gitlab-rake gitlab:backup:create
2024-12-19 15:07:02 UTC -- Dumping database ...
2024-12-19 15:07:02 UTC -- Dumping PostgreSQL database gitlabhq_production ...
2024-12-19 15:07:09 UTC -- [DONE]
2024-12-19 15:07:09 UTC -- Dumping database ... done
2024-12-19 15:07:09 UTC -- Dumping repositories ...
{"command":"create","gl_project_path":"root/test-project","level":"info","msg":"started create","pid":506,"relative_path":"@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git","storage_name":"default","time":"2024-12-19T15:07:10.701Z"}
{"command":"create","gl_project_path":"root/test-project.wiki","level":"info","msg":"started create","pid":506,"relative_path":"@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git","storage_name":"default","time":"2024-12-19T15:07:10.702Z"}
{"command":"create","gl_project_path":"root/test-project.wiki","level":"info","msg":"completed create","pid":506,"relative_path":"@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git","storage_name":"default","time":"2024-12-19T15:07:10.734Z"}
{"command":"create","gl_project_path":"root/test-project","level":"info","msg":"completed create","pid":506,"relative_path":"@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git","storage_name":"default","time":"2024-12-19T15:07:10.769Z"}
2024-12-19 15:07:10 UTC -- Dumping repositories ... done
2024-12-19 15:07:10 UTC -- Dumping uploads ...
2024-12-19 15:07:10 UTC -- Dumping uploads ... done
2024-12-19 15:07:10 UTC -- Dumping builds ...
2024-12-19 15:07:10 UTC -- Dumping builds ... done
2024-12-19 15:07:10 UTC -- Dumping artifacts ...
2024-12-19 15:07:10 UTC -- Dumping artifacts ... done
2024-12-19 15:07:10 UTC -- Dumping pages ...
2024-12-19 15:07:10 UTC -- Dumping pages ... done
2024-12-19 15:07:10 UTC -- Dumping lfs objects ...
2024-12-19 15:07:10 UTC -- Dumping lfs objects ... done
2024-12-19 15:07:10 UTC -- Dumping terraform states ...
2024-12-19 15:07:10 UTC -- Dumping terraform states ... done
2024-12-19 15:07:10 UTC -- Dumping container registry images ... [DISABLED]
2024-12-19 15:07:10 UTC -- Dumping packages ...
2024-12-19 15:07:10 UTC -- Dumping packages ... done
2024-12-19 15:07:10 UTC -- Dumping ci secure files ...
2024-12-19 15:07:10 UTC -- Dumping ci secure files ... done
2024-12-19 15:07:10 UTC -- Dumping external diffs ...
2024-12-19 15:07:10 UTC -- Dumping external diffs ... done
2024-12-19 15:07:10 UTC -- Creating backup archive: 1734620821_2024_12_19_17.2.1_gitlab_backup.tar ...
2024-12-19 15:07:10 UTC -- Creating backup archive: 1734620821_2024_12_19_17.2.1_gitlab_backup.tar ... done
2024-12-19 15:07:10 UTC -- Uploading backup archive to remote storage  ... [SKIPPED]
2024-12-19 15:07:10 UTC -- Deleting old backups ... [SKIPPED]
2024-12-19 15:07:10 UTC -- Deleting tar staging files ...
2024-12-19 15:07:10 UTC -- Cleaning up /var/opt/gitlab/backups/backup_information.yml
2024-12-19 15:07:10 UTC -- Cleaning up /var/opt/gitlab/backups/db
2024-12-19 15:07:10 UTC -- Cleaning up /var/opt/gitlab/backups/repositories
2024-12-19 15:07:10 UTC -- Cleaning up /var/opt/gitlab/backups/uploads.tar.gz
2024-12-19 15:07:10 UTC -- Cleaning up /var/opt/gitlab/backups/builds.tar.gz
2024-12-19 15:07:10 UTC -- Cleaning up /var/opt/gitlab/backups/artifacts.tar.gz
2024-12-19 15:07:10 UTC -- Cleaning up /var/opt/gitlab/backups/pages.tar.gz
2024-12-19 15:07:10 UTC -- Cleaning up /var/opt/gitlab/backups/lfs.tar.gz
2024-12-19 15:07:10 UTC -- Cleaning up /var/opt/gitlab/backups/terraform_state.tar.gz
2024-12-19 15:07:10 UTC -- Cleaning up /var/opt/gitlab/backups/packages.tar.gz
2024-12-19 15:07:10 UTC -- Cleaning up /var/opt/gitlab/backups/ci_secure_files.tar.gz
2024-12-19 15:07:10 UTC -- Cleaning up /var/opt/gitlab/backups/external_diffs.tar.gz
2024-12-19 15:07:10 UTC -- Deleting tar staging files ... done
2024-12-19 15:07:10 UTC -- Deleting backups/tmp ...
2024-12-19 15:07:10 UTC -- Deleting backups/tmp ... done
2024-12-19 15:07:10 UTC -- Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.
2024-12-19 15:07:10 UTC -- Backup 1734620821_2024_12_19_17.2.1 is done.
2024-12-19 15:07:10 UTC -- Deleting backup and restore PID file ... done

バックアップデータはデフォルトだとコンテナ内の/var/opt/gitlab/backupsに出力されます。
ホストのディレクトリにマウントしているので、./data/backups配下にあります。

$ ls -la ./data/backups/
合計 548
drwx------  2 systemd-network root              4096 12月 20 00:07 .
drwxr-xr-x 22 root            root              4096 12月 20 00:06 ..
-rw-------  1 systemd-network systemd-network 552960 12月 20 00:07 1734620821_2024_12_19_17.2.1_gitlab_backup.tar

また、ログにWarning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data and are not included in this backup. You will need these files to restore a backup. Please back them up manually. というような出力がありました。
要約すると、

  • gitlab.rbgitlab-secrets.jsonは機密情報を含んでいるよ
  • バックアップを戻す際に必須だけど、バックアップには含まれてないよ。手動でバックアップしてね

ということらしいです。

このファイルがどこにあるかというと、コンテナ内の/etc/gitlabに該当します。
このディレクトリもホストにマウントしているので、./config配下にあります。

$ ls -la ./config/
合計 216
drwxrwxr-x 3 root    root      4096 12月 19 16:34 .
drwxrwxr-x 7 cairn01 cairn01   4096 12月 20 00:06 ..
-rw------- 1 root    root     19057 12月 20 00:06 gitlab-secrets.json
-rw------- 1 root    root    156276 12月 19 16:34 gitlab.rb
-rw------- 1 root    root       749 12月 19 16:34 initial_root_password
-rw------- 1 root    root       537 12月 19 16:34 ssh_host_ecdsa_key
-rw-r--r-- 1 root    root       196 12月 19 16:34 ssh_host_ecdsa_key.pub
-rw------- 1 root    root       432 12月 19 16:34 ssh_host_ed25519_key
-rw-r--r-- 1 root    root       116 12月 19 16:34 ssh_host_ed25519_key.pub
-rw------- 1 root    root      2622 12月 19 16:34 ssh_host_rsa_key
-rw-r--r-- 1 root    root       588 12月 19 16:34 ssh_host_rsa_key.pub
drwxr-xr-x 2 root    root      4096 12月 19 16:34 trusted-certs

ここはOS上からtarなどでバックアップしてしまいましょう。

$ sudo tar -cvzf "$(date +"%Y%m%d")_gitlab_etc.tar.gz" ./config
./config/
./config/ssh_host_ed25519_key
./config/ssh_host_ed25519_key.pub
./config/initial_root_password
./config/gitlab-secrets.json
./config/trusted-certs/
./config/ssh_host_ecdsa_key.pub
./config/gitlab.rb
./config/ssh_host_rsa_key.pub
./config/ssh_host_rsa_key
./config/ssh_host_ecdsa_key

$ tar -tvf "$(date +"%Y%m%d")_gitlab_etc.tar.gz"
drwxrwxr-x root/root         0 2024-12-19 16:34 ./config/
-rw------- root/root       432 2024-12-19 16:34 ./config/ssh_host_ed25519_key
-rw-r--r-- root/root       116 2024-12-19 16:34 ./config/ssh_host_ed25519_key.pub
-rw------- root/root       749 2024-12-19 16:34 ./config/initial_root_password
-rw------- root/root     19057 2024-12-20 00:06 ./config/gitlab-secrets.json
drwxr-xr-x root/root         0 2024-12-19 16:34 ./config/trusted-certs/
-rw-r--r-- root/root       196 2024-12-19 16:34 ./config/ssh_host_ecdsa_key.pub
-rw------- root/root    156276 2024-12-19 16:34 ./config/gitlab.rb
-rw-r--r-- root/root       588 2024-12-19 16:34 ./config/ssh_host_rsa_key.pub
-rw------- root/root      2622 2024-12-19 16:34 ./config/ssh_host_rsa_key
-rw------- root/root       537 2024-12-19 16:34 ./config/ssh_host_ecdsa_key

リストアについては私も未実施なのでまた検証して補記します。

8.GitLabのバージョンアップ

今回17.2.1から17.6.2へ直接アップグレードしようとしていますが、段階バージョンアップが必要と怒られます。
皆さんはアップデート前のバックアップや公式ドキュメントの確認をよく行ってから実行してください。

冒頭でも説明しましたが、使用しているGitLabのバージョンが古く、以下のように警告メッセージが表示されるようになってしまいました。
今回は最新の17.6.2にアップデートしようかと思います。

image.png

8-1.最新バージョンの取得

まずはdocker-compose.ymlを以下のように編集します。
バージョンのタグは今回明示的に指定します。

docker-compose.yml
services:
  web:
-   image: 'gitlab/gitlab-ce:latest'
+   image: 'gitlab/gitlab-ce:17.6.2-ce.0'

いつまで経っても起動しなかったのでログを確認した所、以下のメッセージが表示されていました。
メジャーバージョンアップをする際は段階リリースをするようにシステムとして止めてくれるみたいです。

$ docker logs -f gitlab-test-web-1
Thank you for using GitLab Docker Image!
Current version: gitlab-ce=17.6.2-ce.0

# 途中省略

If this container fails to start due to permission problems try to fix it by executing:

  docker exec -it gitlab update-permissions
  docker restart gitlab

Cleaning stale PIDs & sockets
It seems you are upgrading from 17.2.1 to 17.6.2.
It is required to upgrade to the latest 17.5.x version first before proceeding.
Please follow the upgrade documentation at https://docs.gitlab.com/ee/update/#upgrade-paths

8-2.アップグレードパスの確認

色々調べた所、こちらのサイトを見ると、指定のアップデートまでの方法を教えてくれます。
どうやら17.3.7-ce.017.5.4-ce.017.6.2-ce.0でアップグレードしてねと書いてあります。

image.png

image.png

8-3.段階アップグレードの実施

8-3-1. 17.3.7へのアップグレード

まずは17.2.1から17.3.7にアップグレードしていきます。

docker-compose.yml
services:
  web:
-   image: 'gitlab/gitlab-ce:17.6.2-ce.0'
+   image: 'gitlab/gitlab-ce:17.3.7-ce.0'

また5分くらいすると起動しました。
バージョンを確認するとちゃんと上がっています。

$ docker exec -it gitlab-test-web-1 gitlab-rake gitlab:env:info

GitLab information
Version:        17.3.7

8-3-2. 17.5.4へのアップグレード

続いて17.5.4にアップグレードしていきます。

docker-compose.yml
services:
  web:
-   image: 'gitlab/gitlab-ce:17.3.7-ce.0'
+   image: 'gitlab/gitlab-ce:17.5.4-ce.0'

同じく5分くらいすると起動しました。
こちらも問題なくバージョンが上がっています。

$ docker exec -it gitlab-test-web-1 gitlab-rake gitlab:env:info

GitLab information
Version:        17.5.4

8-3-3. 17.6.2へのアップグレード

最後は17.6.2にアップグレードしていきます。

docker-compose.yml
services:
  web:
-   image: 'gitlab/gitlab-ce:17.5.4-ce.0'
+   image: 'gitlab/gitlab-ce:17.6.2-ce.0'

最後のアップグレードも同様に5分くらいすると起動しました。
最後も問題なくバージョンが上がっています。

$ docker exec -it gitlab-test-web-1 gitlab-rake gitlab:env:info

GitLab information
Version:        17.6.2

9.最後に

GitLabは便利ですがバージョンアップも早く気が付いたら大変なことになっていました…。
今回Qiitaに投稿するまでバージョンアップは控えていたので今後は気を付けるようにします…。

参考サイト

・Install GitLab in a Docker container
https://docs.gitlab.com/ee/install/docker/installation.html

・GitLab Dockerイメージ
https://gitlab-docs.creationline.com/ee/install/docker.html

・GitLabとGitLab Runnerをdocker-composeで手軽に構築する
https://qiita.com/handy-dd18/items/8eb4e4a754fbd8b42448

・GitLab RunnerでCI/CDしてみる(前編)
https://dev.classmethod.jp/articles/gitlab-runner-ci-cd-1/

・GitLabのバックアップとリストア
https://qiita.com/fy406/items/742edd103d9f0593e7d6

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?