LoginSignup
20
24

More than 5 years have passed since last update.

Docker + nginx-proxyでGitLab CI環境を作ってみる(1)

Last updated at Posted at 2016-02-02

Jenkinsとかその手のツールをまともに使ったことない僕ですが、CI環境をお手軽に構築して使ってみたい欲望が高まってきたので、マイナーではありますが、以前ちょっとかじったGitLab CIをDockerを使って構築してみたいと思います。ちなみにGitLab CIって知名度激低ですかね???

GitLab CI公式
https://about.gitlab.com/gitlab-ci/

ちなみにGitLabのバージョン7以前はGitLabのインストールまではそれほど苦労しないのですが、GitLab CIまでやろうとすると色々と苦労しました。今回はCI環境が統合されたバージョン8以降でDockerを使って構築することで、楽に構築することを目指します。

Dockerのインストールについてはこちらを参考ください。

AWS/EC2にCentOS7を入れてDockerホストを作成 その1
http://qiita.com/ABE_TAKASHI/items/2b04cf4c70f28b864134

2016/11/11追記

Docker + nginx-proxy でGitLab環境(Let's Encrypt付き)を構築する
http://qiita.com/ABE_TAKASHI/items/654ef6ed22071c93d6f2

という記事を新たに書いたので、こちらの投稿と合わせてご覧ください。

nginx-proxy を立てる

GitLabを立てる場合、いちいちよく分からないポート番号を指定してWEBページにアクセスしたりするのがいやなので、nginx-proxy を立ててサブドメインとか使ってスマートにアクセスできるようにします。

nginx-proxyはnginxコンテナとdocker-genコンテナの二つを立てて運用しますので、docker-composeでまとめて管理するようにします。

(参考)
Docker + nginx-proxy + PHP7 on Apache + MySQL5.7 で WordPress の環境を作る その1
http://qiita.com/ABE_TAKASHI/items/f0cd899fd7ac2cc9b5a0
前に書いたこの投稿では二つのコンテナを別々に立ち上げましたが、今回やろうとしていることも、docker-composeを使う以外はほぼ同じになります。

設定ファイルを置く任意のディレクトリ(/var/docker/nginx)を作成し、その中に移動します。さらにnginx-proxyのテンプレートファイルを置くディレクトリ(/var/docker/nginx/templates)を作成して、テンプレートファイルをダウンロードしてきます。

[docker-op@docker-base ~]$ mkdir -p /var/docker/nginx && cd /var/docker/nginx

[docker-op@docker-base nginx]$ mkdir templates && cd templates

[docker-op@docker-base template]$ curl -o nginx.tmpl https://raw.githubusercontent.com/jwilder/docker-gen/master/templates/nginx.tmpl
(出力略)

[docker-op@docker-base template]$ cd ..

そして、nginxコンテナとdocker-genコンテナをセットにしたdocker-compose.ymlファイルを作成します。

[docker-op@docker-base nginx]$ vi docker-compose.yml
docker-compose.yml
nginx:
  image: nginx:latest
  container_name: nginx
  volumes:
    - /tmp/nginx:/etc/nginx/conf.d
  ports:
    - "80:80"

docker-gen:
  image: jwilder/docker-gen:latest
  container_name: docker-gen
  volumes_from:
    - nginx
  volumes:
    - /var/run/docker.sock:/tmp/docker.sock
    - /var/docker/nginx/templates:/etc/docker-gen/templates
  links :
    - nginx
  command: "-notify-sighup nginx -watch --only-published /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf"

あとは、docker-composeコマンドでnginxとdocker-genの2コンテナを立ち上げます。確認すると2つのコンテナが立ち上がっていることが確認できます。

[docker-op@docker-base nginx]$ docker-compose up -d

[docker-op@docker-base nginx]$ docker ps -a
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS                  PORTS                                                   NAMES
60900fa566ee        jwilder/docker-gen:latest       "/usr/local/bin/docke"   17 minutes ago      Up 17 minutes                                                                   docker-gen
83fbebe4d069        nginx:latest                    "nginx -g 'daemon off"   17 minutes ago      Up 17 minutes           0.0.0.0:80->80/tcp, 443/tcp                             nginx

長くなりますので、次に続きます。

Docker + nginx-proxyでGitLab CI環境を作ってみる(2)
http://qiita.com/ABE_TAKASHI/items/deb516d44459eb901961

20
24
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
20
24