GitLabをPodmanで動かす

プロジェクトをCentOS 7のDockerで動くGitLab CEで管理していた。
CentOS 8のPodmanで動くGitLab CEへ移行するため、移行先に同じプロジェクトを作成する。
GitLabのホスト名とIPアドレスとを/etc/hostsで紐づけているので、プロジェクトの内部で
  1. git pull
  2. /etc/hostsを編集してGitLabのホスト名とIPアドレスを紐づけ直す
  3. 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
タグ