前提
- ubuntuを基準に記載します
- 苦行インストール(source build)したGitLab 8.8+があること
- Docker engineがインストール済み
- letsencryptが使えること
- インターネットが使えること
Registryの構築
Docker registryの設定ファイル
以下のファイルを作成する
/etc/docker/registry/config.yml
version: 0.1
auth:
token:
realm: https://gitlab.example.jp/jwt/auth # GitLabのURL + /jwt/auth
service: container_registry
issuer: gitlab-issuer
rootcertbundle: /certs
letsencryptで証明書発行する
cd letsencryptのディレクトリ
./letsencrypt-auto certonly -d registry.example.jp
docker registryの起動
# image格納ディレクトリの作成
mkdir -p ~/gitlab/shared/registry
# imageの取得
docker pull registry:2.5
docker run -d -p 5000:5000 --restart=always \
--name=regisgry \
-v ~/gitlab/shared/registry:/var/lib/registry \
-v /etc/docker/registry/config.yml:/config.yml \
-v /etc/letsencrypt/archive/registry.example.jp:/certs \
-e REGISTRY_STORAGE_DELETE_ENABLED=true \
registry:2.5
※ REGISTRY_STORAGE_DELETE_ENABLED
を入れないとイメージの削除ができません。
nginxの設定
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/nginx/registry-ssl
を拝借して
/etc/nginx/conf.d/registry-ssl.conf
として使います
変更する場所は下記の3項目
/etc/nginx/conf.d/registry-ssl.conf
server_name registry.gitlab.example.com;
ssl_certificate /etc/gitlab/ssl/registry.gitlab.example.jp.crt # crtファイルを置いた場所
ssl_certificate_key /etc/gitlab/ssl/registry.gitlab.example.jp.key # keyファイルを置いた場所
nginxの再起動
service nginx restart
GitLabの設定変更
gitlab/config/gitlab.yml
registry:
enabled: true
host: registry.example.jp
api_url: https://registry.example.jp/
key: config/privkey.pem
path: /home/git/gitlab/shared/registry
issuer: gitlab-issuer
GitLabの再起動
/etc/init.d/gitlab restart