目录
前言
一、gitlab-runner docker安装
二、gitlab-runner的注册与使用
1.注册
2. .gitlab-ci.yml 脚本编写
总结
前言
前面搭建了gitlab与harbor ,现在就使用它们来实现自动化docker部署。所谓自动化部署,就是提交代码到指定分支时自动触发预先写好的脚本,来实现打包,推送镜像。想要实现这个功能还需要安装gitlab-runner,下面就是记录相关步骤的流程。
一、gitlab-runner docker安装
这里仍然是docker-compose的形式来安装,内容如下:
version: "3"
services:
gitlab-runner:
image: "gitlab/gitlab-runner:latest"
container_name: gitlab-runner
restart: always
privileged: true
volumes:
- "./data/gitlab-runner/config:/etc/gitlab-runner"
- "/var/run/docker.sock:/var/run/docker.sock"
重点:这里将内部的docker 挂载出来的路劲一定是虚机中安装的docker路径,因为要在内部调用外部的docker来执行命令,如果不匹配就无法调用。
在docker-compose.yml 文件夹内执行安装命令后等待安装完成就可以了
二、gitlab-runner的注册与使用
1.注册
注册也是很简单,下面提供代码,在安装gitlab-runner的虚拟机中执行
sudo docker exec gitlab-runner gitlab-runner register -n \
--url http://192.168.31.8:15482/ \ #gitlab 的ip端口
--registration-token APRduxxLs6qye_A_K47y \ # gitlab 上的token
--tag-list "global-runner,gitlab-test" \
--executor docker \
--docker-image docker \
--docker-image alpine:latest \
--docker-volumes /home/msq/gitlab-runner/.m2:/root/.m2 \
--docker-volumes /home/msq/gitlab-runner/.npm:/root/.npm \
--docker-volumes /var/run/docker.sock:/var/run/docker.sock \ #挂载出来的docker
--description "global-runner,gitlab-test"
执行之后这里多出绿色圆点在线,表示注册成功 了,gloabl-runner ,gitlab-test 表示tag 标签,只有用到该标签的脚本才会执行
2. .gitlab-ci.yml 脚本编写
该脚本我们可以在gitlab 项目下进入CI/CD 的编辑器,选择分支,点击配置就会自动创建
这是我的,我是配置在test分支上
在这里我们可以编辑脚本,也可以点击浏览模板进入github上学习官方的一些模板
我这里的脚本如下:
image: docker:stable
variables:
TAG: wxdt:0.0.1
PROJECT_NAME: wxdt
MAVEN_OPTS: "-Dmaven.repo.local=/root/.m2/repository"
cache:
key: dockerlayer-ci-cache
paths:
- .m2/repository
- /target/wxdt.jar
stages:
- package
- deploy
- push-image
maven-package:
image: maven:3.5-jdk-8-alpine
stage: package
tags:
- gitlab-test
script:
- mvn clean package -Dmaven.test.skip=true -P test $MAVEN_OPTS --settings=/root/.m2/settings.xml
cache:
key: dockerlayer-ci-cache
paths:
- target/*.jar
only:
- test
build-test:
stage: deploy
tags:
- gitlab-test
cache:
key: dockerlayer-ci-cache
paths:
- .m2/repository/
- target/*.jar
script:
- docker build -t $TAG .
- docker rm -f $PROJECT_NAME || true
- docker run -d --name $PROJECT_NAME --restart=always -v /home/msq/公共/msq/logs/wxdt:/logs -p 18082:18082 $TAG
after_script:
- docker rmi $(docker images -f "dangling=true" -q)
only:
- test
docker-push:
stage: push-image
tags:
- gitlab-test
before_script:
- docker login http://192.168.31.22 -u admin -p Harbor12345
script:
- docker tag $TAG 192.168.31.22/msq/$TAG
- docker push 192.168.31.22/msq/$TAG
only:
- test
简单说明一下,我这里是三个步骤,maven打包 --》docker 启动 --》镜像推送仓库
脚本执行的页面如下:
点击进入可以看到执行日志
推送成功后我们到仓库中看到,下面就是推送成功了
项目是否执行成功进入虚机中执行docker ps 查看
可以看到项目在docker中运行成功了,可查看日志docker logs -f wxdt
文章来源:https://www.toymoban.com/news/detail-409985.html
总结
兴趣是学习的最好的动力,再接再厉,继续深入研究。文章来源地址https://www.toymoban.com/news/detail-409985.html
到了这里,关于记录使用gitlab实现Docker自动化部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!