赞
踩
将项目通过maven进行编译打包
将文件上传到指定的服务器中
将war包放到tomcat的目录中
通过Dockerfile将Tomcat和war包转成一个镜像,由DockerCompose去运行容器
项目更新后,需要将上述流程再次的从头到尾的执行一次,如果每次更新一次都执行一次上述操作,很费时,费力。我们就可以通过CI、CD帮助我们实现持续集成,持续交付和部署。
CI(continuous intergration)持续集成
持续集成:编写代码时,完成了一个功能后,立即提交代码到Git仓库中,将项目重新的构建并且测试。
快速发现错误。
防止代码偏离主分支。
实现CI,需要使用到Gitlab远程仓库,先通过Docker搭建Gitlab
创建一个全新的虚拟机,并且至少指定4G的运行内存,4G运行内存是Gitlab推荐的内存大小。
并且安装Docker以及Docker-Compose
将ssh的默认22端口,修改为60022端口,因为Gitlab需要占用22端口
vi /etc/ssh/sshd_config
PORT 22 -> 60022
systemctl restart sshd
docker-compose.yml文件去安装gitlab(下载和运行的时间比较长的)
ip改为自己的ip
- version: '3.1'
- services:
- gitlab:
- image: 'twang2218/gitlab-ce-zh:11.1.4'
- container_name: "gitlab"
- restart: always
- privileged: true
- hostname: 'gitlab'
- environment:
- TZ: 'Asia/Shanghai'
- GITLAB_OMNIBUS_CONFIG: |
- external_url 'http://192.168.75.135'
- gitlab_rails['time_zone'] = 'Asia/Shanghai'
- gitlab_rails['smtp_enable'] = true
- gitlab_rails['gitlab_shell_ssh_port'] = 22
- ports:
- - '80:80'
- - '443:443'
- - '22:22'
- volumes:
- - /opt/docker_gitlab/config:/etc/gitlab
- - /opt/docker_gitlab/data:/var/opt/gitlab
- - /opt/docker_gitlab/logs:/var/log/gitlab
创建工作目录
/opt/docker_gitlab-runner
将提供好的
docker-compose.yml
文件以及environment
目录全部复制到上述目录中在宿主机启动docker程序后先执行
sudo chown root:root /var/run/docker.sock
(如果重启过 docker,重新执行)在
/opt/docker_gitlab-runner
目录中执行docker-compose up -d
启动容器
environment 目录
提供的 yml
启动完成之后 gitlab-runner 安装完毕,但是该容器还缺少以下环境
jdk
maven
docker-compose
#切到environment 目录下
cd environment
#复制jdk到gitlab-runner容器中 //这里的dd1 是gitlab-runner容器的id
docker cp jdk-8u231-linux-x64.tar.gz dd1:/usr/local/jdk/
#进入gitlib-runner 容器
docker exec -it gitlab-runner的id bash#进入容器jdk目录
cd /usr/local/jdk#解压 jdk
tar -zxvf jdk-8u231-linux-x64.tar.gz
配置环境变量echo "export JAVA_HOME=/usr/local/jdk/jdk1.8.0_231" >>/etc/profile
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >>/etc/profile
#使环境变量生效
source /etc/profile#任意目录查看 是否成功
java -version容器内部没有jdk目录要进去创建
#复制maven压缩包
docker cp apache-maven-3.6.3-bin.tar.gz dd1:/usr/local/mvn/
#进入gitlib-runner 容器
docker exec -it gitlab-runner的id bash
#进入容器maven目录
cd /usr/local/mvn
#解压maven
tar -zxvf apache-maven-3.6.3-bin.tar.gz
#查看maven目录
pwd容器内部也没有mvn 也要创建
#复制docker-compose 到容器内部
docker cp docker-compose dd1:/usr/local/bin/
#进入gitlib-runner 容器
docker exec -it gitlab-runner的id bash#进入docker-compose安装目录
cd /usr/local/bin/#授权
chmod 777 docker-compose#任意目录测试 docker-compose
docker-compose
直接写宿主ip访问
获得url 跟令牌
第一次注册 默认用户是 root 你写个密码就行
#添加容器权限,保证容器可以使用宿主机的
docker exec -it gitlab-runner usermod -aG root gitlab-runner#注册Runner信息到gitlab
docker exec -it gitlab-runner gitlab-runner register
输入url 令牌 脚本选择shell tags deploy
创建maven工程,添加web.xml文件,编写html页面
dockerfile
- FROM daocloud.io/library/tomcat:8.5.15-jre8
- COPY TestCI.war /usr/local/tomcat/webapps
docker-compos.yml
- version: "3.1"
- services:
- #服务名
- testci:
- build: docker
- restart: always
- # 容器名
- container_name: testci
- ports:
- - 8080:8080
.gitlab-ci.yml
- stages:
- - test
-
- test:
- stage: test
- script:
- - echo first test ci
- - /usr/local/mvn/apache-maven-3.6.3/bin/mvn package
- - cp target/TestCI.war docker/TestCI.war
- - docker-compose down
- - docker-compose up -d --build
-
- tags:
- - deploy
gitlab 创建项目 获得远程链接
这个idea项目相当于创建了一个 testci的容器
项目变成 git ,提交上传到远程仓库
这时候,只要改变idea,提交,上传 ,远程仓库就可以收到
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。