背景
サクッと構築しちゃおうと着手したら、意図せずはまってしまったので、忘備のために、手順を記録する。
構築環境
ローカル環境に構築するだけだったので、ネットワーク内にDNSサーバは存在せず、ローカルIPでサーバに接続している。
また、1つのサーバで複数のアプリケーションを動作させていたのでGitlabへのアクセスは80ポートではなく、ほかのポートを指定する必要がある。
ハマった事象
以下のように、サーバのローカルIP('192.168.1.2')を指定した。
また、ポートは8080を利用することにした。
external_urlを指定しないと、gitlab上で、clone用のURLが、ホスト名称になってしまうため、「external_url 'http://192.168.1.2:8080'」として、指定した。
version: '3.6'
services:
gitlab:
image: 'gitlab/gitlab-ce:17.2.4-ce.0'
container_name: gitlab
hostname: '192.168.1.2'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.1.2:8080'
ports:
- '8080:80'
- '4433:443'
- '2222:22'
volumes:
- '/home/com/gitlab/config:/etc/gitlab'
- '/home/com/gitlab/logs:/var/log/gitlab'
- '/home/com/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
上記のdocker-composeを用いて、コンテナを起動し、ブラウザからアクセスしたが、gitlabに接続できなかった。
原因と解決方法
下記の記事を見て解決することができた。。。
原因
下記のようにexternal_urlをポート付きで指定すると、gitlabのNGINXのポートも自動的に同じポート(本ケースでは8080)に切り替わるようになっているらしい。
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.1.2:8080'
解決方法
下記のようにNGINXのポートを指定してあげることで解決できた。
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.1.2:8080'
nginx['listen_port'] = 80
まとめ
上記を踏まえて、正常にアクセスすることができた際のdocker-compose.yamlを記載する。
version: '3.6'
services:
gitlab:
image: 'gitlab/gitlab-ce:17.2.4-ce.0'
container_name: gitlab
hostname: '192.168.2.10'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.2.10:8080'
nginx['listen_port'] = 80
ports:
- '8080:80'
- '4433:443'
- '2222:22'
volumes:
- '/home/com/gitlab/config:/etc/gitlab'
- '/home/com/gitlab/logs:/var/log/gitlab'
- '/home/com/gitlab/data:/var/opt/gitlab'
shm_size: '256m'
P.S
gitlabの公式ページをよく見たら、確かにコンテナ側の指定ポートが、external_urlで指定したURLのポート番号(8929)と一致していた。。。
version: '3.6'
services:
gitlab:
image: gitlab/gitlab-ee:<version>-ee.0
container_name: gitlab
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com:8929'
gitlab_rails['gitlab_shell_ssh_port'] = 2424
ports:
- '8929:8929'
- '443:443'
- '2424:22'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
shm_size: '256m'