1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VMのgitlabをコンテナへ(ついでにバージョンアップ 12.0.3→13.2.4)(ついでにdocker-compose)

Last updated at Posted at 2020-08-15

前回:DockerでVMへのリバースプロキシ
これはそろそろDockerを使えるようになりたい筆者の試行錯誤の軌跡です。

gitlabをVMからDockerコンテナへ移行

前回は、既存のVMサーバー群にDockerのnginxからリバースプロキシしました。
Untitled(3) (1).png

今回は、VMサーバー群のアプリケーションのうち、gitlabをDockerコンテナに移行して、Developを閉じます。
Untitled(4).png

いきなり閑話休題 便利!docker-compose

試行錯誤する中で、何度もコンテナの再作成を行いました。
最初はコンテナ起動コマンドをメモしておいて、ターミナルにペーストしていましたが、
nginxのコンテナとgitlabのコンテナ両方でそんなことするのはかったるいです。

このときにやっとdocker-composeの便利さを理解し、使えるようになりました。

docker-composeとは、イメージや起動オプションをテキストベースで管理するアプリケーションです。
docker-compose.ymlファイルに複数コンテナの起動設定を記述しておくと、
以降はコマンド一つでそれらコンテナの一斉起動、一斉停止、一斉削除等ができるようになります。

docker-compose.ymlの例
version: '3'
  
services:
    deploy:
        image: nginx
        restart: always
        ports:
            - 80:80
            - 443:443
        volumes:
            - /home/fclef/docker/server/deploy/nginx/ssl:/etc/nginx/ssl
            - /home/fclef/docker/server/deploy/nginx/conf:/etc/nginx/conf.d
            - /home/fclef/docker/server/deploy/nginx/params:/etc/nginx/params
            - /home/fclef/docker/server/deploy/letsencrypt:/etc/letsencrypt
            - /home/fclef/docker/server/deploy/content/html:/usr/share/nginx/html
            - /home/fclef/docker/server/deploy/script:/tmp/script

    gitlab:
        image: gitlab/gitlab-ce:latest
        restart: always
        ports:
            - 50080:80
            - 50443:443
        environment:
            GITLAB_OMNIBUS_CONFIG: |
                external_url 'http://localhost'
        volumes:
            - /home/fclef/docker/server/gitlab/config:/etc/gitlab
            - /home/fclef/docker/server/gitlab/logs:/var/log/gitlab
            - /home/fclef/docker/server/gitlab/data:/var/opt/gitlab
        depends_on:
            - deploy

大まかな手順

  • gitlabのバックアップ
  • gitlabコンテナの起動
  • gitlabのリストア

これだけなのに、結構かかりました。。

gitlabのバックアップ

参考:kuruwiの日記 GitLabのサーバ移行

参考先に書いてあるとおりですが、

# gitlab-rake gitlab:backup:create

/var/opt/gitlab/backupsにアプリケーションデータのバックアップを作成し、
/etc/gitlab下の設定ファイル達を移行しやすいように圧縮しておくだけです。

コンテナの起動

参考:GitLab Docs - GitLab Docker images

割愛。
イメージはgitlab/gitlab-ce:latestとしました。(→エラーになりました。)

リストア

できません。
エラーになります。
バックアップ元のバージョンが12.0.3だったのに、latest(13.2.4)にしようとしたため、
バージョン飛びすぎでエラーになりました。

エラー解消

13.2.4にするためには、一旦13.0.x系にする必要があります。
そして、13.0.x系にするには、12.x.x系の最新にする必要がありました。
よって、以下の手順を取りました。

  1. 12.0.3のイメージでコンテナを起動し、リストア
  2. 12.10.14のイメージでコンテナを再作成→起動時にデータがバージョンアップされる
  3. 13.0.12のイメージでコンテナを再作成→起動時にデータがバージョンアップされる
  4. latest(13.2.4)のイメージでコンテナを再作成→起動時にデータがバージョンアップされる

とりあえずこれでDockerコンテナでgitlabが稼働し始めました。

次回:DockerでPostgreSQLとOwnCloud

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?