LoginSignup
4
4

More than 5 years have passed since last update.

苦行インストールしたGitLab環境でコンテナレジストリをLet'sEncryptを利用しつつ環境構築

Posted at

前提

  • 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
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4