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

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

1、确定版本

2.346.1是最后一个支持jdk8的

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

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

在这里插入图片描述

docker-compose.yml

version: "3.1"
services:jenkins:image: jenkins/jenkins:2.346.1-ltscontainer_name: jenkinsports:- 8080:8080- 50000:50000volumes:- ./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放进去

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

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

请添加图片描述

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

su jenkins

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

chmod 666 /var/run/docker.sock

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

请添加图片描述

DockerFile

FROM openjdk:8-jdkENV 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、查看运行结果

在这里插入图片描述
在这里插入图片描述

请添加图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/58421.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 746. 使用最小花费爬楼梯

2023.8.8 昨天爽玩一天,在家就是舒服。 今天继续刷动态规划题。 动态规划题最重要的就是搞清楚dp[i] 的定义,本题dp[i] 的含义是:到达第i层,所需的最小花费。 那么由于起始台阶可以是0或者1,那么dp[0]和dp[1]都初始化…

QT笔记——QT自定义事件

我们有时候想发送自定义事件 1:创建自定义事件,首先我们需要知道它的条件 1:自定义事件需要继承QEvent 2:事件的类型需要在 QEvent::User 和 QEvent::MaxUser 范围之间,在QEvent::User之前 是预留给系统的事件 3&#…

一零六七、JVM梳理

JVM? Java虚拟机,可以理解为Java程序的运行环境,可以执行Java字节码(Java bytecode)并提供了内存管理、垃圾回收、线程管理等功能 java内存区域划分?每块内存中都对应什么? 方法区:类的结构信息、常量池、…

享元模式(C++)

定义 运用共享技术有效地支持大量细粒度的对象。 使用场景 在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行时代价——主要指内存需求方面的代价。如何在避免大量细粒度对象问题的同时,让外部客户程序仍…

【C++】多态的底层原理(虚函数表)

文章目录 前言一、虚函数表二、派生类中虚函数表1.原理2.例子: 三、虚函数的存放位置四 、单继承中的虚函数表五、多继承中的虚函数表六、问答题 前言 一、虚函数表 通过观察测试我们发现b对象是8bytes,除了_b成员,还多一个__vfptr放在对象的…

常量池-JVM(十九)

上篇文章说gc日志以及arthas。 Arthas & GC日志-JVM(十八) 一、常量池 常量池主要放两大类:字面量和符号引用。 字面量就是由字母、数字等构成的字符串或者数值常量。 符号引用主要包含三类常量。 类和接口的全限定名。字段的名称和…

wm8960没有声音

最近在imx6ull上调试这个声卡,用官方的镜像是能发声的,换到自己做的镜像上,就没有声音。 记录一下过程: 内核和设备树。只要有下面的显示,就说明加载成功。 再看一下aplay的显示 到此,驱动都是正常的。但…

Jmeter组件作用域及执行顺序

目录 一、Jmeter八大可执行元件 二、组件执行顺序 三、组件作用域 四、特殊说明 一、Jmeter八大可执行元件 配置元件---Config Element 用于初始化默认值和变量,以便后续采样器使用。配置元件大其作用域的初始阶段处理,配置元件仅对其所在的测试树分…

SpringMVC的架构有什么优势?——控制器(三)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

设计模式行为型——观察者模式

目录 什么是观察者模式 观察者模式的实现 观察者模式角色 观察者模式类图 观察者模式举例 观察者模式代码实现 观察者模式的特点 优点 缺点 使用场景 注意事项 实际应用 什么是观察者模式 观察者模式(Observer Pattern)是一种行为型设计模式…

hive修改表或者删除表时卡死问题的解决(2023-08-08)

背景:前阶段在做hive表的改表名时,总是超时,表是内部表,数据量特别大,无论你是修改表名还是删除表都是卡死的状态,怎么破? 终于:尝试出来一个新的方法 将内部表转化成外部表&#…

GD32F103硬件I2C0通讯

GD32F103的I2C模块有I2C0和I2C1;本程序使用I2C0功能模块; I2C0引脚复用和重映射: 当I2C0_REMAP0时,I2C0引脚复用功能,I2C0_SCL映射到PB6引脚,I2C0_SDA映射到PB7引脚; 当I2C0_REMAP1时,I2C0引脚重映射,I2C0_SCL映射到PB8引脚,I2C0_SDA映射到PB9引脚; I2C1引脚只有复用引脚: I2C…