Appearance
DockerでGitLabを構築
gitlabコンテナを構築
yaml
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: nob-gitlab
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url "http://${IP_address}:80"
gitlab_rails['gitlab_shell_ssh_port'] = 2022
ports:
- "80:80"
- "2022:22"
volumes:
- "/srv/gitlab/config:/etc/gitlab"
- "/srv/gitlab/logs:/var/log/gitlab"
- "/srv/gitlab/data:/var/opt/gitlab"docker compose up -dでコンテナを起動します。アクセスできるようになるまでに数分ラグがあります。Error: 502であれば根気良く待ってください。しばらく待ってhttp://${IP_address}:80にアクセスするとgitlabの画面が表示されます。
rootユーザのパスワードはサーバ内のファイルに記載されているため、以下のコマンドで調べられます。
shell
docker exec -it nob-gitlab grep 'Password:' /etc/gitlab/initial_root_passwordLet's Encryptを使ってSSL通信をできるようにする
external_urlをHTTPSプロトコルで設定するとLet’s EncryptでSSL通信ができるようにしてくれます。cf. https://docs.gitlab.com/omnibus/settings/ssl/#enable-the-lets-encrypt-integration
yaml
services:
gitlab:
image: gitlab/gitlab-ee:latest
container_name: nob-gitlab
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url "https://nob-gitlab.ddo.jp"
gitlab_rails['gitlab_shell_ssh_port'] = 2022
ports:
- "80:80"
- "443:443"
- "2022:22"
volumes:
- "/srv/gitlab/config:/etc/gitlab"
- "/srv/gitlab/logs:/var/log/gitlab"
- "/srv/gitlab/data:/var/opt/gitlab"自己証明書を使ってSSL通信をできるようにする
下記でコンテナを起動するとhttps://${設定したドメイン}でGitLabにアクセスできます:
yaml
services:
gitlab:
image: gitlab/gitlab-ee:latest
container_name: nob-gitlab
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url "https://gitlab.example.nob"
gitlab_rails['gitlab_shell_ssh_port'] = 2022
nginx['redirect_http_to_https'] = true
letsencrypt['enable'] = false
ports:
- "80:80"
- "443:443"
- "2022:22"
volumes:
- "/srv/gitlab/config:/etc/gitlab"
- "/srv/gitlab/logs:/var/log/gitlab"
- "/srv/gitlab/data:/var/opt/gitlab"
# 証明書をコンテナに配置
- "./volumes/ssl:/etc/gitlab/ssl"$ ls -l volumes/ssl/
total 12
-rw-r--r-- 1 root root 1123 Apr 27 12:25 gitlab.example.nob.crt
-rw-r--r-- 1 root root 956 Apr 27 12:25 gitlab.example.nob.csr
-rw------- 1 root root 1704 Apr 27 12:25 gitlab.example.nob.keygitlab-runnerコンテナを構築
gitlab-runnerは下記で起動できます:
yaml
services:
gitlab-runner:
image: gitlab/gitlab-runner:latest
container_name: nob-gitlab-runner
volumes:
- "/srv/gitlab/gitlab-runner/config:/etc/gitlab-runner"
- "/var/run/docker.sock:/var/run/docker.sock"docker compose up -dを実行してコンテナを作成。起動後、GitLab GUI上の "Create project runner" から作成したコマンドから、対話形式でrunnerを構築できます。
GitLabが 自己証明書でSSL通信をしている場合
runnerコンテナの中に、GitLab本体が使っている証明書{ドメイン名}.crtとして配置する必要があります。例として、docker-compose.yamlに下記を追加してください:
yaml
volumes:
- "./volumes/ssl/server.crt:/etc/gitlab-runner/certs/${ドメイン名}.crt"