使用Docker + nginx-proxy创建GitLab CI环境(1)

我是从未真正使用过Jenkins或类似工具的人,但由于我渴望轻松构建和使用CI环境,所以我决定尝试一下以前稍微接触过的使用Docker构建的GitLab CI。顺便问一下,GitLab CI的知名度很低吗?

GitLab CI的介绍网页:https://about.gitlab.com/gitlab-ci/

顺便提一下,GitLab 7之前的版本安装起来不会太麻烦,但是要安装GitLab CI就比较困难了。这次我们将使用集成了CI环境的版本8以及更高版本,并使用Docker来进行构建,以便更轻松地完成搭建。

请参考这里的 Docker 安装方式。

在AWS/EC2中安装CentOS7并创建一个Docker主机,第一部分。

2016年11月11日后续添加

使用Docker和nginx-proxy来搭建带有Let’s Encrypt的GitLab环境

由于写了这篇新文章,请与这里的帖子一起阅读。

搭建nginx-proxy。

如果搭建GitLab,我不喜欢每次都要指定不清楚的端口号来访问WEB页面,所以我会搭建nginx-proxy来以智能的方式使用子域名等进行访问。

为了进行nginx-proxy的运维,需要启动nginx容器和docker-gen容器,因此需要使用docker-compose进行统一管理。

使用 Docker + nginx-proxy + PHP7 on Apache + MySQL5.7 来创建 WordPress 的环境 第一部分

在之前的帖子中,我们分别启动了两个容器。但是这一次,我们要做的事情除了使用 docker-compose 之外,几乎都是相同的。

创建一个名为/var/docker/nginx的任意目录,并将设置文件放入其中。然后创建一个名为/var/docker/nginx/templates的目录,并将nginx-proxy的模板文件放入其中,然后下载模板文件。

[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
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两个容器。确认后可以看到已经成功启动了两个容器。

[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

广告
将在 10 秒后关闭
bannerAds