- 版本选择2.401.1
docker pull jenkins/jenkins:2.401.1
- 将 /var/jenkins_home 挂载到 /usr/local/docker/jenkins/jenkins_home
docker run \ -d \ --name jenkins \ -p 8099:8080 \ -p 8888:8888 \ -p 50000:50000 \ -v /usr/local/docker/jenkins/jenkins_home:/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 传入 文件中
maven
jdk
jdk1.8.0_131 用跟项目中统一版本 避免后期报错版本不兼容
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:8099
选择自定义插件 下载完成后设置用户名密码
- Maven Integration plugin Publish Over SSH 手动下载两个插件
-
-
-
-
- 如果报 403 的话 将 config.xml中的
-
- 配置SSH Server
构建一个自由风格软件项目
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 9201:9201 --name ${app_name} \
-e TZ="Asia/Shanghai" \
-v /mydata/docker-project/test/test.jar:/app/test.jar \
-d ${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 应用