GitLab实现持续集成
linux上
Dockerfile文件
FROM gitlab/gitlab-runner:v11.0.2
MAINTAINER 1906171836@qq.com# 修改软件源
RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse' > /etc/apt/sources.list && \
echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse' >> /etc/apt/sources.list && \
echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse' >> /etc/apt/sources.list && \
echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse' >> /etc/apt/sources.list && \
apt-get update -y && \
apt-get clean# 安装 Docker
RUN apt-get -y install apt-transport-https ca-certificates curl software-properties-common && \
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add - && \
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && \
apt-get update -y && \
apt-get install -y docker-ce
COPY daemon.json /etc/docker/daemon.json# 安装 Docker Compose
WORKDIR /usr/local/bin
COPY docker-compose /usr/local/bin/docker-compose
RUN chmod +x docker-compose# 安装 Java
RUN mkdir -p /usr/local/java
WORKDIR /usr/local/java
COPY jdk-8u321-linux-x64.tar.gz /usr/local/java
RUN tar -zxvf jdk-8u321-linux-x64.tar.gz && \
rm -fr jdk-8u321-linux-x64.tar.gz# 安装 Maven
RUN mkdir -p /usr/local/maven
WORKDIR /usr/local/maven
#RUN wget https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz
COPY apache-maven-3.8.4-bin.tar.gz /usr/local/maven
RUN tar -zxvf apache-maven-3.8.4-bin.tar.gz && \
rm -fr apache-maven-3.8.4-bin.tar.gz
# COPY settings.xml /usr/local/maven/apache-maven-3.8.4/conf/settings.xml# 配置环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_321
ENV MAVEN_HOME /usr/local/maven/apache-maven-3.8.4
ENV PATH $PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin#如果不行的话就执行 vim ~/.bashrc 在此文件末尾下添加以下配置,然后在执行 source ~/.bashrc
#export JAVA_HOME=/usr/local/java/jdk1.8.0_321
#export MAVEN_HOME=/usr/local/maven/apache-maven-3.8.4
#export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATHWORKDIR /
daemon.json文件
- {
"registry-mirrors": ["https://mjaubtgm.mirror.aliyuncs.com"],
"insecure-registries": [
"192.168.31.147:5000"
]
} docker-compose.yml文件
version: '3'
services:
gitlab-runner:
build: environment
restart: always
container_name: gitlab-runner
privileged: true
volumes:
- /usr/local/docker/runner/config:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock执行docker exec -it gitlab-runner gitlab-runner register
- 剩下根据此文件操作GitLab实现持续集成_Haolarn-CSDN博客_gitlab持续集成
如果再集成代码(SonarQube)检测功能:
GitLab持续集成持续部署(CI&CD)_安澜公子的博客-CSDN博客_gitlab持续集成
2:客户端
目录结构(三个重要文件)
.gitlab-ci.yml
- stages:
- - package
- - clean
- package_maven:
- stage: package
- only:
- - master
- script:
- - pwd
- - /usr/local/maven/apache-maven-3.8.4/bin/mvn clean package -Dmaven.test.skip=true
- - cp target/springbootAdmin-0.0.1-SNAPSHOT.jar docker
- - cd docker
- - docker build -t 192.168.31.147:5000/springboot-admin .
- - docker tag 192.168.31.147:5000/springboot-admin 192.168.31.147:5000/springboot-admin:520
- - docker push 192.168.31.147:5000/springboot-admin:520
- - docker-compose up -d
- clean_maven:
- stage: clean
- script:
- #清除target目录
- - /usr/local/maven/apache-maven-3.8.4/bin/mvn clean
- #清除虚悬镜像
- - docker rmi $(docker images -q -f dangling=true)
Dockerfile文件
FROM openjdk:8-jre
MAINTAINER 1906171836@qq.com
ENV TARGET_JAR="0.0.1-SNAPSHOT"
RUN mkdir /app
COPY springbootAdmin-${TARGET_JAR}.jar /app/app.jar
CMD java -Xrs -Xmx1024m -jar /app/app.jar
EXPOSE 9008
docker-compose.yml文件
version: '3'
services:
springboot-admin:
image: 192.168.31.147:5000/springboot-admin:520
container_name: springboot-admin
ports:
- 9008:9008
最后提交gitlab自动部署
GitLab实现持续集成_Haolarn-CSDN博客_gitlab持续集成
GitLab实现持续集成相关推荐
- Gitlab+jenkins持续集成+自动化部署(三)
搭建gitlab+Jenkins自动化部署 在jenkins上安装插件 Build Authorization Token Root Plugin. Build Authorization Token ...
- 基于Docker容器的,Jenkins、GitLab构建持续集成CI
** 开发者将代码提交(push)到GitLab后,GitLab通过Hook通知jenkins,jenkins自动从GitLab中获取项目最新的源码进行集成和发布. 基于Docker,创建一个私有Gi ...
- Gitlab CI 持续集成的完整实践
来源:https://dwz.cn/mWyVHoSm 借着公司代码库迁移到私有Gitlab的契机,我接下持续集成的工作,实现了对Python服务端代码的单元测试.静态代码分析和接口测试的持续集成.总体 ...
- createprocess失败代码2_DevOPS | 基于sonarqube、jenkins和gitlab的持续集成代码检查
在持续集成过程中,针对代码的静态检查一般有两个时间点:一是提交代码的时候.二是提交merge request的时候,如果代码检查不通过,则可以直接拒绝此次代码提交或者合并.下面我们介绍下在常见的dev ...
- 架构——20——Jenkins+Gitlab实现持续集成——3
CI&CD: 持续集成注重将各个开发者的工作集合到一个代码仓库中,通常每天会进行几次, 主要目的是尽早发现集成错误,使团队更加紧密结合,更好地协作. 持续交付的目的是最小化部署或发布过程中团队 ...
- 持续集成之Jenkins+Gitlab实现持续集成
项目使用git+jenkins实现持续集成 开始构建 General 源码管理 我们安装的是Git插件,还可以安装svn插件 我们将git路径存在这里还需要权限认证,否则会出现error ...
- CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Jenkins安装(二)
大家好,我是SuieKa,本博文以学习笔记为主,此时此刻我已按捺不住自己的心情将学习搬运到博客上 上手之前,习惯性的多逼逼知识点,尽管各路大神都已经了如指掌了哈哈哈 目录 什么是Jenkins? 安装 ...
- GitLab CI持续集成配置方案
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地 ...
- 持续集成Jenkins+Gitlab实现持续集成
用户说明 假设node3是程序员的个人电脑,在这台机器上编写代码 ip地址192.168.10.10 Git的安装部署及使用 git config --global user.name 'zzg' # ...
最新文章
- 生态环境部:提升5.5亿居民饮用水环境安全保障水平
- 转:Bit-Map思想与2-BitMap思想
- IO-BufferedInputStream
- ecshop flow.php?step=checkout,【原创文章】推荐两种调试ecshop php程序日志记录的方法...
- Adobe_Audition消除人声
- cordova混合开发流程
- NBA Top Shot巨鲸17.5万美元购买的球星卡目前已值2000万美元
- 蓝桥杯 ALGO-22算法训练 数的划分
- java 图片识别_JAVA识别图片中的文字
- SharePoint 报告工具 (SPReport)
- 【干货笔记】Generating Question-Answer Hierarchies阅读笔记
- android studio打包h5,Android Studio打包生成APK教程
- PHP + AJAX实现幸运转盘抽奖
- 正则表达式-校验 Ip地址 Mac地址 端口 经纬度 车牌号码
- python官方文档学习_Python3.5.2官方文档学习备忘录
- PHP 文字生成透明图片之路
- js和jquery实现页面跳转的几种方式
- 解决ORA-01111, ORA-01110, ORA-01157
- python设计函数isleapyear_Python函数
- 如何评判刀片服务器性能,刀片服务器优点与刀片服务器缺点