先注册好Runner: https://www.cnblogs.com/zsifan/p/11714788.html
以及搭建Java和Maven环境: https://www.cnblogs.com/zsifan/p/11716177.html
安装Docker和Docker-Compose:
Docker安装:https://docs.docker.com/v17.09/engine/installation/linux/docker-ce/ubuntu/#prerequisites
Docker-Compose安装: https://docs.docker.com/compose/install/
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
因为国内下载github的速度很慢 所以没使用这种方法,使用的是软件包安装 apt-get install docker-compose
在linux主机上git项目中创建目录docker
DockerFile:
FROM java:8 MAINTAINER [email protected] ADD weixin-0.0.1-SNAPSHOT.jar weixin-0.0.1-SNAPSHOT.jar EXPOSE 9000 CMD java -jar weixin-0.0.1-SNAPSHOT.jar
docker-compose.yml:
version : "3.1" services: weixin: image: weixin:latest ports: - "9000:9000" container_name: weixin
jar包是mvn打包复制过来的,因为docker build 只能使用DockerFile该目录中的资源(一定要注意)
随后在git项目根目中编写 .gitlab-ci.yml
stages: - pull - package - build - restart pull: stage: pull script: - cd /usr/local/xiangmu/weixin - git pull [email protected]:complete/weixin.git package: stage: package script: - cd /usr/local/xiangmu/weixin - /usr/local/bin/apache-maven-3.6.2/bin/mvn clean package - cp target/weixin-0.0.1-SNAPSHOT.jar docker/weixin-0.0.1-SNAPSHOT.jar build: stage: build script: - cd /usr/local/xiangmu/weixin/docker - docker build -t weixin -f DockerFile . restart: stage: restart script: - cd /usr/local/xiangmu/weixin/docker - docker-compose down - docker-compose up -d
随后push代码到gitlab中 将会触发CI/CD
一定要注意cd到你项目的目录中
不加cd 列如最后一步:
restart: stage: restart script: - docker-compose down - docker-compose up -d
不然会出现找不到该文件
完成之后jar包就被打包成镜像,以及启动了容器
因为打包成镜像会造成前面的镜像名字成为
使用docker images|grep none|awk '{print $3 }'|xargs docker rmi 命令将
将该过程新建一个管道来运行就可以了(最后一步)
clean: stage: clean script: - docker images|grep none|awk '{print $3 }'|xargs docker rmi