docker部署jenkins且jenkins中使用docker去部署项目

docker部署jenkins且jenkins中使用docker去部署项目

1、确定版本

2.346.1是最后一个支持jdk8的

2、编写docker-compose.yml并执行

在这个目录中新增data文件夹,注意data是用来跟docker中的文件进行映射的

docker-compose.yml

yml 复制代码
version: "3.1"
services:
  jenkins:
    image: jenkins/jenkins:2.346.1-lts
    container_name: jenkins
    ports:
      - 8080:8080
      - 50000:50000
    volumes:
      - ./data/:/var/jenkins_home/
      - /var/run/docker.sock:/var/run/docker.sock

docker-compose up -d

3、之后安装,打开localhost:8080

安装插件,如果插件失败,在这里面去修改

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

4、查看data文件是否多了许多文件,之后将下载好的jdk和maven放进去

bash 复制代码
macdeMacBook-Pro:jenkins mac$ cd data
macdeMacBook-Pro:data mac$ ls
apache-maven-3.9.0
config.xml
copy_reference_file.log
credentials.xml
fingerprints
hudson.model.UpdateCenter.xml
hudson.plugins.git.GitTool.xml
hudson.tasks.Ant.xml
hudson.tasks.Maven.xml
identity.key.enc
jdk1.8.0_202
jenkins.install.InstallUtil.installingPlugins
jenkins.install.InstallUtil.lastExecVersion
jenkins.install.UpgradeWizard.state
jenkins.model.JenkinsLocationConfiguration.xml
jenkins.mvn.GlobalMavenConfig.xml
jenkins.telemetry.Correlator.xml
jobs
logs
nodeMonitors.xml
nodes
org.jenkinsci.plugins.docker.commons.tools.DockerTool.xml
org.jenkinsci.plugins.gitclient.JGitApacheTool.xml
org.jenkinsci.plugins.gitclient.JGitTool.xml
plugins
queue.xml
queue.xml.bak
secret.key
secret.key.not-so-secret
secrets
updates
userContent
users
war
workspace

jdk地址:

https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz

5、jenkins中配置jdk和maven

6、在jenkins中下载docker

bash 复制代码
docker exec -u root jenkins apt-get update

docker exec -u root jenkins apt-get install -y docker.io

尝试切换到jenkins中,试一试docker命令能不能用,如果不能就是权限问题了

bash 复制代码
su jenkins

解决,重新进入root中,执行这个

bash 复制代码
chmod 666 /var/run/docker.sock

7、编写一个简单的springboot文件,且DockerFile文件

DockerFile

bash 复制代码
FROM openjdk:8-jdk

ENV LANG=en_US.UTF-8
ENV LC_CTYPE="en_US.UTF-8"
ENV LC_NUMERIC="en_US.UTF-8"
ENV LC_TIME="en_US.UTF-8"
ENV LC_COLLATE="en_US.UTF-8"
ENV LC_MONETARY="en_US.UTF-8"
ENV LC_MESSAGES="en_US.UTF-8"
ENV LC_PAPER="en_US.UTF-8"
ENV LC_NAME="en_US.UTF-8"
ENV LC_ADDRESS="en_US.UTF-8"
ENV LC_TELEPHONE="en_US.UTF-8"
ENV LC_MEASUREMENT="en_US.UTF-8"
ENV LC_IDENTIFICATION="en_US.UTF-8"

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
    && echo $TZ > /etc/timezone \
    && mkdir -p /excel/tmp/

WORKDIR /opt/app
COPY ./target/demo-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]

之后发到git就行

8、jenkins中新增一个maven项目

配置git

配置打包的

clean install -Dmaven.test.skip=true

配置构建语句

docker kill mytest || true

docker rm mytest || true

docker rmi mytest || true

docker build -t mytest /var/jenkins_home/workspace/test

docker run -d -p 8081:8081 --name mytest mytest:latest

9、查看运行结果


相关推荐
禁默12 分钟前
深入浅出:AWT的基本组件及其应用
java·开发语言·界面编程
Cachel wood19 分钟前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Code哈哈笑22 分钟前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习
gb421528724 分钟前
springboot中Jackson库和jsonpath库的区别和联系。
java·spring boot·后端
程序猿进阶25 分钟前
深入解析 Spring WebFlux:原理与应用
java·开发语言·后端·spring·面试·架构·springboot
zfoo-framework33 分钟前
【jenkins插件】
java
_oP_i36 分钟前
.NET Core 项目配置到 Jenkins
运维·jenkins·.netcore
风_流沙38 分钟前
java 对ElasticSearch数据库操作封装工具类(对你是否适用嘞)
java·数据库·elasticsearch
年薪丰厚1 小时前
如何在K8S集群中查看和操作Pod内的文件?
docker·云原生·容器·kubernetes·k8s·container