下载镜像 版本选择2.401.1
docker pull jenkins/jenkins:2.401.1
进入jenkins容器 docker exec -it jenkins /bin/bash
查看密码 cat /var/jenkins_home/secrets/initialAdminPassword
一次性挂载完成,jdk和maven挂载之前选好版本在进行挂载挂载完成后修改比较麻烦
:前为宿主机位置
:后为容器内部,没有会自动创建对应文件及位置
不一次性挂载完成也可以,在/var/jenkins_home中创建一个文件夹将jdk和maven对应的版本放入文件中即可
docker run -d --name jenkins -p 8099:8080 -p 8889:8888 -p 50000:50000
-v /usr/jdk1.8.0_321:/usr/jdk1.8.0_321
-v /usr/apache-maven-3.9.6:/usr/apache-maven-3.9.6
-v /usr/local/docker/jenkins:/var/jenkins_home jenkins/jenkins:2.401.1
将 hudson.model.UpdateCenter.xml 文件中的 url 下载插件的镜像 改为 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json(清华大学镜像源)
没有一次性全部挂载接下来的操作
在挂载出来的目录下创建 myapps 给文件夹赋权限
将 maven 和 jdk 传入 文件中
ma\\ven
jdk
jdk版本尽量使用与项目一样的版本
jdk1.8.0_131的jdk
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz
解压
tar -zxvf jdk-8u131-linux-x64.tar.gz
重启容器后 访问 ip:挂载的端口号
选择自定义插件 下载完成后设置用户名密码
Maven Integration Publish Over SSH 手动下载两个插件
git下面两种都可以随便选一种即可
如果报 403 的话 将 jenkins中config.xml中的
配置SSH Jenkins配置SSH连接_jenkins ssh:-CSDN博客
创建自有或者maven都可以
Source files:准备发送的文件,该文件是相对于这个项目的workspace目录,也就是$JENKINS_HOME/workspace/xxxx/。例如要发送/home/jenkins_home/workspace/tf/target/123.war到目标目录,则设置Source files为target/123.war。如果要发送src下的所有文件,可以设置为target//*.*。
Remove prefix:例如设置为target/就是只发送123.war文件,如果不填会创建target目录层级。
Remote directory:目标目录,比如/usr/local。
Exec command:最后执行的指令。
app_name='test'
app_version='1.0.jar'
echo '----copy jar----'
# 停止容器
docker stop ${app_name}
# 删除容器
docker rm ${app_name}
# 删除镜像
docker rmi ${app_name}:${app_version}
# 构建新版镜像
cd /mydata/docker-project/test #jar上传到服务器的路径,一定要写对否者启动失败
docker build -t ${app_name}:${app_version} .
# 启动镜像
docker run -p 访问的端口号:8080 --name ${app_name} \
-e TZ="Asia/Shanghai" \
-d ${group_name}/${app_name}:${app_version}
echo '-----start container-----'
很简单的一个配置项,选择mvn版本,在填一下目标,over。正常来说是over了
在此目录下创建一个 dockerfile 或者在项目的根目录中创建一个dockerfile
FROM openjdk:18.0.2
MAINTAINER lxj
VOLUME /tmp
ARG JAR_FILE=test.jar
COPY ${JAR_FILE} test.jar
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN bash -c 'touch /test.jar'
RUN chmod +x /test.jar
ENTRYPOINT ["java", "-jar", "/test.jar"]
FROM openjdk:18.0.2:基于 openjdk:18.0.2 镜像构建新的镜像。
MAINTAINER xuqing:指定作者信息为 xuqing,不过在 Docker 17.04 之后,已经不推荐使用 MAINTAINER 指令,而是使用 LABEL 指令。
VOLUME /tmp:指定了/tmp目录作为一个数据卷,用于临时存储数据。这样可以在容器之间共享数据,或者持久化数据。
ARG JAR_FILE=./*.jar:定义了一个参数 JAR_FILE,并设置默认值为当前目录下的所有.jar文件。
COPY ${JAR_FILE} gmall-ums.jar:将本地的 JAR 文件复制到容器中,并重命名为 gmall-ums.jar。
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone:设置容器的时区为亚洲/上海。
RUN bash -c 'touch /gmall-ums.jar':在容器中创建一个名为 gmall-ums.jar 的空文件。
ENTRYPOINT ["nohup","java","-jar","/gmall-ums.jar"]:容器启动时执行的命令,使用 nohup 后台运行 java -jar /gmall-ums.jar 命令,启动 Spring Boot 应用
部署的是一个springBoot项目springCloud与之类似,修改获取jar包的位置即可