メインコンテンツへスキップ
  1. ノート/
  2. ツールとデプロイ/

DockerでGitLabを動かすメモ

·917 文字·2 分· loading · loading · · ·
ICE345
著者
ICE345
CS Student | System | Linux | OCaml
Ubuntu、Debian、ARM、x86-64では、パッケージ名やイメージが異なる場合があります。また、rootパスワードをコマンドラインへ直接書くと、履歴やプロセス一覧へ漏れる可能性があります。実運用ではSecretsやGitLabの初期設定を利用してください。

1. Dockerを準備する
#

Ubuntuの例です。Dockerの公式インストール手順を、利用するディストリビューションに合わせて確認してください。

sudo apt update
sudo apt install ca-certificates curl
sudo systemctl status docker
docker version

2. GitLabの永続ディレクトリを作成する
#

sudo mkdir -p /srv/gitlab/config /srv/gitlab/logs /srv/gitlab/data

3. GitLabコンテナを起動する
#

利用するCPUアーキテクチャーに対応した公式または信頼できるイメージを選びます。イメージ名は、実際のGitLab公式ドキュメントに合わせて変更してください。

export GITLAB_HOSTNAME='gitlab.example.com'
export GITLAB_ROOT_PASSWORD='set-this-outside-the-command-history'
sudo docker run --detach \
  --hostname "$GITLAB_HOSTNAME" \
  --publish 80:80 \
  --publish 443:443 \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  --env GITLAB_ROOT_PASSWORD="$GITLAB_ROOT_PASSWORD" \
  gitlab/gitlab-ce:latest

SSHポートをGitLabコンテナへ公開する場合は、ホスト側の22番ポートと競合しない番号を選びます。GitLabのSSHクローン用ポートと、ホストの管理用SSHポートを混同しないでください。

4. 起動状態を確認する
#

docker ps -a
docker logs -f gitlab
ss -ltnp | grep -E ':80|:443|:22'

GitLabの初回起動には時間がかかります。コンテナが起動していても、内部サービスの初期化が完了するまでWeb画面が利用できないことがあります。

5. コンテナを再作成する場合
#

まず設定とデータのバックアップを確認します。コンテナだけを削除しても、/srv/gitlabの永続データは残ります。

docker stop gitlab
docker rm gitlab

同じボリュームを使って新しいコンテナを起動すれば、設定とリポジトリデータを引き継げます。docker volume pruneや再帰的な削除を実行する前には、対象パスを必ず確認してください。

まとめ
#

  • OSとCPUアーキテクチャーに合ったDockerとGitLabイメージを選ぶ。
  • /etc/gitlab/var/log/gitlab/var/opt/gitlabを永続化する。
  • ホストのポート競合を確認する。
  • rootパスワードやトークンをMarkdown、シェル履歴、Gitへ残さない。
  • 本番ではタグを固定し、バックアップとアップグレード手順を準備する。

関連記事


评论