LoginSignup
59
64

More than 5 years have passed since last update.

gitlab.com上でgitlab-ciを動かし、GitLabRegistryにdocker build & pushする

Last updated at Posted at 2016-06-29

概要

gitlab.comではプライベートなリポジトリが作れる上に、プライベートなDocker Registryも立てられるということで、
github + DockerHubを連携させるような感じで、プライベートな、仲間内で使いまわすようなコンテナを管理したい。

社内にプライベートなDocker Registryを立てようとするも、証明書がオレオレ証明書なのは・・・と躊躇したり、
DockerHubに公開するのも(何らかの事情で)難しい場合には良いと思う。

1か月ぐらい前にチャレンジしたときは動かせなかったのに、今日やったらうまくできた記念。

使うもの

すべて、GitLabさんが提供してくれるものを使う。ローカルリソースは常に枯渇しておるのです。

もの 説明
GitLab Dockerfileなどの資材を管理する
Gitlab-CI docker buildやdocker pushを行う。標準で使えるSharedRunnnerを使う
Registry Gitlabさんが提供してくれるDockerRegistry

前提

gitレポジトリには、以下のファイルを置いておきます。

  • Dockerfile
  • .gitlab-ci.yml (ビルドスクリプト)
  • その他Dockerfile内で使用される各種資材

pushのたびにbuildする例

Using the GitLab Container Registryに記載のあるサンプルをもとに作成する。

registry.example.comをregistry.gitlab.comに変えればOK!!!

https://gitlab.com/(ユーザ名かグループ名)/(プロジェクト名)/container_registryにアクセスし、表示されている内容をメモっておく。

ユーザ名:hoge
プロジェクト名:bar

とした場合は、こんな感じになる。


image: docker:latest
services:
   - docker:dind

before_script:
  - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com

build:
   stage: build
   script:
     - docker build -t registry.gitlab.com/hoge/bar:latest .
     - docker push registry.gitlab.com/hoge/bar:latest
   tags:
     - docker

タグがついたらタグをつけて登録する例

GitLab Documentationに使える変数の一覧があって、
そこにタグを示す値が$CI_BUILD_TAGとあるので、これを使う。

onlyにtagsを設定しておくことで、通常のpushではビルドせず、タグが打たれたらビルドされるようにしておく。


image: docker:latest
services:
   - docker:dind

before_script:
  - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com

tag-build:
   stage: build
   only:
     - tags
     - triggers
   script:
     - docker build -t registry.gitlab.com/hoge/bar:$CI_BUILD_TAG .
     - docker push registry.gitlab.com/hoge/bar:$CI_BUILD_TAG
   tags:
     - docker

確認

ビルドできるDockerfileをpushしたり、タグを打ってみたりして、ビルドされることを確認する。

GitLab.png

感想

gitlab + gitlab-ci + gitlab registryで完結しておくと、.gitlab-ci.yml(ビルドスクリプト)もすっきり。

$CI_BUILD_TOKENと書くことで、認証情報をスクリプトや設定ファイル内に平文で書かなくて良いのもすてき。

59
64
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
59
64