GitLabをPodmanで動かす
プロジェクトをCentOS 7のDockerで動くGitLab CEで管理していた。
CentOS 8のPodmanで動くGitLab CEへ移行するため、移行先に同じプロジェクトを作成する。
GitLabのホスト名とIPアドレスとを/etc/hostsで紐づけているので、プロジェクトの内部で
- git pull
/etc/hosts
を編集してGitLabのホスト名とIPアドレスを紐づけ直す
- git push
を行うと移行は完了する。
コンテナの自動起動
Dockerは--restart=alwaysにより自動でコンテナを起動することができるが、Podmanはサービスとして登録する必要がある。
まずコンテナを起動させる。
podman run -d --hostname GITLAB.HOST.NAME -p 443:443 -p 80:80 -p 22:22 --name gitlab -v /opt/gitlab/config:/etc/gitlab -v /opt/gitlab/logs:/var/log/gitlab -v /opt/gitlab/data:/var/opt/gitlab docker.io/gitlab/gitlab-ce
ポート22は
git clone ssh://git@GITLAB.HOST.NAME:22/MY_NAME/MY_PROJECT.git
のようにsshで使われる。
サービスの準備をする
vi /etc/systemd/system/gitlab-container.service
[Unit]
Description=GitLab CE
[Service]
Restart=always
ExecStart=/usr/bin/podman start -a gitlab
ExecStop=/usr/bin/podman stop -t 2 gitlab
[Install]
WantedBy=multi-user.target
サービスを有効にする
systemctl enable gitlab-container
問題
ログを保存するディレクトリが空でないとGitLabが起動しない。
ログをコンテナの外で保存したが、サービスが起動する前にこのディレクトリを空にする必要がある…
2020/06/27 22:58