gitlab持续集成部署(CI/CD),使用docker配置gitlab-runner
2018-03-28 11:47
851 查看
gitlab持续集成部署(CI/CD),使用docker配置gitlab-runner
无互联网环境下,在外网docker pull [image],docker save [image] > [image].tar,在局域网下docker load < [image].tar创建gitlab-runner容器:
sudo docker pull gitlab/gitlab-runner
sudo docker run -d --name gitlab-runner --restart always \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-runner:latest
将gitlab上的项目注册到gitlab-runner中:
sudo docker exec -it gitlab-runner gitlab-ci-multi-runner register
输入上述命令后会有一系列的配置需要输入,当然也可以设置完后进行更改
按照提示输入即可,前两项可以在指定项目设置中CI/CD选项里的Runners settings选项中的Specific Runners里看到,tags是gitlab-ci.yml文件中所要用到的,executor我们输入docker
配置成功后,我们可以在设置中CI/CD选项里的Runners settings选项中的Specific Runners里看到runner信息
下面就是编写.gitlab-ci.yml配置文件:(下面是一个例子,参数官方文档都有介绍)
image: node before_script: - eval $(ssh-agent -s) - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts stages: - build job_build: stage: build script: - npm config set registry=http://0.0.0.0:7001 - npm install - npm run build - ssh fay@0.0.0.0 "rm -r /home/fay/dev/nginx/html/;mkdir -p /home/fay/dev/nginx/html/;" - scp -r /builds/fay/dist/* fay@0.0.0.0:/home/fay/dev/nginx/html/ only: - master tags: - fay
before_script里我写的是连接远程服务器的配置,其中SSH_KNOWN_HOSTS、SSH_PRIVATE_KEY需要配置在项目设置CI/CD中Secret variables选项中,相关ssh-gen一定要注意,不要输入密码,不然自动部署的时候会卡在那里报错,SSH_KNOWN_HOSTS里要有记录远程服务器的信息,ssh-scan扫描一下目标地址就可以了记录在SSH_KNOWN_HOSTS里了。
相关文章推荐
- 使用Docker构建持续集成与自动部署的Docker集群
- 使用Gitlab实现自动化部署与持续集成
- 『中级篇』docker之CI/CD持续集成-gitlab安装(70)
- 使用Docker构建持续集成与自动部署的Docker集群
- 使用GitLab、Jenkins、Docker建立快速持续化集成交付部署方案
- 使用Docker构建持续集成与自动部署的Docker集群
- 使用Docker构建持续集成与自动部署的Docker集群
- 使用Docker构建持续集成与自动部署的Docker集群
- Linux服务器下Jenkins+Ant+Tomcat+SVN实现持续集成和部署配置方法
- 使用bitnami部署gitlab的邮件提醒配置
- 持续集成篇_08_Hudson持续集成服务器的使用(自动化编译、分析、打包、部署)
- 在 CentOS 7 上使用 Docker 部署安装 GitLab
- 使用jenkins配置.net mvc网站进行持续集成一
- 12 Maven-使用Hudson进行持续集成及系统配置
- 持续集成篇_08_Hudson持续集成服务器的使用(远程自动化部署)
- Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover【毕成功的博客】 - 51CTO技术博客
- Jenkins持续集成安装、配置、简单使用
- Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记
- Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记
- 使用jenkins配置.net mvc网站进行持续集成三