1. Docker 安装 Jenkins
1.1 拉取镜像文件
docker pull jenkins/jenkins
1.2 创建挂载文件目录
mkdir -p $HOME/jenkins_home
1.3 启动容器
docker run -d -p 8080:8080 -v $HOME/jenkins_home:/var/jenkins_home --name jenkins jenkins/jenkins
1.4 进入容器查看初始密码
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
1.5 登录控制台完成初始化
2. 配置自动化部署
2.1 配置项目文件
2.1.1 创建DockerFile文件
# 该镜像需要依赖的基础镜像
FROM openjdk:8
ARG JAR_FILE
# 复制打包完成后的jar文件到/opt目录下
COPY ${JAR_FILE} /project-name.jar
# 运行过程中创建一个project-name.jar文件
RUN bash -c 'touch /project-name.jar'
# 声明服务运行在端口
EXPOSE 8801
ENV JAVA_OPTS="-Xms512m -Xmx2048m"
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /project-name.jar" ]
# 指定维护者的名字
MAINTAINER name
2.1.2 添加pom文件插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--生产的镜像名称和版本-->
<imageName>project-category/${project.artifactId}:${project.version}</imageName>
<dockerHost>http://${dockerHost}:2375</dockerHost>
<forceTags>true</forceTags>
<!--dockerfile的位置-->
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<!--jar名称配置,用在dockerfile中,需要自己写的可不用此配置-->
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
<!--jar源位置-->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
<dependencies>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
<!--build节点增加内容-->
<resources>
<resource>
<directory>src/main/resources</directory>
<!--开启过滤,用指定的参数替换directory下的文件中的参数-->
<filtering>true</filtering>
</resource>
</resources>
</build>
2.2 配置Jenkins
2.2.1 创建项目部署脚本
2.2.2 选择构建自由风格项目
2.2.3 General – 丢弃旧的构建历史,节省磁盘空间
2.2.4 源码管理 – 配置Git代码地址
1,配置Git地址(SSH)
2,配置账号密码
2.2.5 源码管理 – 高级克隆行为
2.2.6 Build Steps – 调用顶层 Maven 目标
2.2.6.1 编译依赖项目
如果当前项目依赖了本地其他项目,则需要先打包依赖项目,没有则跳过此步骤
目标:clean install -pl rely–project-name -am
2.2.6.2 打包部署项目
前提:此步骤需要目标服务器上的Docker进行过
新增用户组
操作和开发2375端口
操作目标: clean package -Pdev -DdockerHost=ip docker:build
注:-P 代表走不同的配置环境(非必须)
POM:${WORKSPACE}/project-name/pom.xml
注:打包项目的pom文件位置
2.2.7 Build Steps – Execute shell script on remote host using ssh
docker stop project-center
echo '----stop container----'
docker rm project-center
echo 'rm cont'
docker rmi `docker images | grep none | awk '{print $3}'`
echo '----rm none images----'
docker run -it --network=host -p 8801:8801 --name project-center -d project-category/project-name:1.0-SNAPSHOT
echo '----start container----'
docker cp -L /usr/share/zoneinfo/Asia/Shanghai project-center:/etc/localtime
docker cp -L /usr/share/zoneinfo/Asia/Shanghai project-center:/etc/timezone
docker restart project-center
原文地址:https://blog.csdn.net/weixin_46759279/article/details/134599586
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_22432.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。