はじめに
GitLab を試したくてローカルPC 上に立てることにしたときの記録である.
また、別PC でも素早く環境構築ができるように docker-compose を使うことにした.
なお、試行錯誤の中での記録なので誤りもあると思う.
今回は SSL を使った GitLab の立ち上げまでである.
参考サイトおよび書籍
環境
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"
手順
1. docker-compose.yml を作成する
https://mikoto2000.blogspot.com/2018/06/gitlab-docker-image-https.html を基にして作成した.
差分としては以下である.
・ポート番号を変えた
・GitLab の初期 root パスワードを rootroot
にした
・GitLab Runner を立てるようにした (現時点では本当に動くかは不明)
・PlantUML コンテナを立てる
・🛑 は「./PV/gitlab/opt:/var/opt/gitlab
」だと docker-compose up -d
に失敗したため仕方無く
version: '3'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: 'mygitlab-core'
restart: always
hostname: 'server_01'
volumes:
- './PV/gitlab/config:/etc/gitlab'
- './PV/gitlab/log:/var/log/gitlab'
- mygitlab_opt:/var/opt/gitlab 🛑
environment:
TZ: "Asia/Tokyo"
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://server_01:59443/'
nginx['redirect_http_to_https'] = true
gitlab_rails['gitlab_shell_ssh_port'] = 59022
gitlab_rails['initial_root_password'] = 'rootroot'
ports:
- "59080:80"
- "59443:59443"
- "59022:22"
runner:
image: "gitlab/gitlab-runner"
container_name: 'mygitlab-runner'
restart: "always"
hostname: "server_01"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./PV/runner:/etc/gitlab-runner
volumes:
mygitlab_opt:
2. 自己署名証明書を作成する
https://mikoto2000.blogspot.com/2017/12/openssl-ca.html を実施する.
上記 URL の手順を実施すると、次のような構成で生成される.
最初は余計な間違いを起さないためにも「server_01」という名称にしておくと良い.
$ pwd
/etc/ssl/keys
$ tree . --charset=C
.
|-- server_01.crt .... サーバ証明書
|-- server_01.csr
`-- server_01.key .... サーバ秘密鍵
3. 上記 2 で生成した証明書と鍵を次のように配置する
.
|-- PV
| `-- gitlab
| `-- config
| `-- ssl
| |-- server_01.crt
| `-- server_01.key
`-- docker-compose.yml
4. /etc/hosts に「127.0.0.1 server_01」を登録する
$ cat /etc/hosts
127.0.0.1 localhost
127.0.0.1 server_01 # 追加
略
5. docker-compose up -d を実行する
docker-compose ps で Up になってから 10〜15分ほど待つ.
挙動が心配なら docker-compose logs -f gitlab
でログを監視すること.
6. Web ブラウザから GitLab にログインする
https://server_01:59443
にアクセスし、「root
」「rootroot
」でログインする.
もしも Not Found や 502 エラーであれば、上記 5 でのセットアップ中かも知れないので待機すること.
以上