部署gitlab、gitlab-runner,基于gitlab-runner的CI/CD实现(一)
部署gitlab
使用docker-compose进行对gitlab容器的编排
version: '2'
services:
gitlab:
image: 'twang2218/gitlab-ce-zh:11.1.4'
restart: unless-stopped
hostname: 'gitlab.example.com'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
# 需要配置到 gitlab.rb 中的配置可以在这里配置,每个配置一行,注意缩进。
# 比如下面的电子邮件的配置:
# gitlab_rails['smtp_enable'] = true
# gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
# gitlab_rails['smtp_port'] = 465
# gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
# gitlab_rails['smtp_password'] = "password"
# gitlab_rails['smtp_authentication'] = "login"
# gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab_rails['smtp_tls'] = true
# gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
ports:
- '80:80'
- '443:443'
volumes:
- config:/etc/gitlab
- data:/var/opt/gitlab
- logs:/var/log/gitlab
volumes:
config:
data:
logs:
部署gitlab-runner
使用docker-compose进行对gitlab-runner容器的编排
version: '2'
services:
gitlab-runner:
image: gitlab/gitlab-runner:alpine
restart: unless-stopped
depends_on:
- gitlab
privileged: true
volumes:
- ./config/gitlab-runner:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
- /bin/docker:/bin/docker
启动gitlab和gitlab-runner容器
docker-compose up -d && docker logs -f
注册gitlab-runner
进入gitlab-runner容器中进行操作
docker exec -it gitlab-runner /bin/bash
切换用户到gitlab-runner
su gitlab-runner
注册runner
gitlab-register
浏览器中登录
http://ip 进入gitlab中
创建项目
在项目根目录下建立。gitlab-ci.yml文件
stages:
- deploy
runcontainer:
stage: deploy
tags:
- my-tag
script:
- ssh root@ip " cd /opt/ly_cif/ && docker-compose up -d "
在CI/CD中流水线执行