之前有写篇文章讲述本地 PC 构建 Docker 镜像上传仓库 , 可是随着部署版本增加,本地 PC 资源吃紧的情况下,打包操作往往不理想 . 于是还是将打包环境迁移到服务器上.
Docker 安装 Jenkins
docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| version: '3.9' services: jenkins: image: jenkins/jenkins:jdk17 container_name: jenkins restart: unless-stopped user: 0:995 ports: - 9001:8080 - 50001:50000 volumes: - /etc/localtime:/etc/localtime - $PWD/jenkins_home:/var/jenkins_home - /usr/bin/docker:/usr/bin/docker - /var/run/docker.sock:/var/run/docker.sock - /usr/local/bin/docker-compose:/usr/local/bin/docker-compose
|
可以根据自己的需求修改文件
docker-compose up -d
启动容器 , 访问相应地址 docker logs -f jenkins --tail 500
查看初次登录密码 , 修改账号密码等
构建 Springboot 项目
Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13
| FROM frolvlad/alpine-java:jdk8-slim VOLUME /tmp COPY target/ruoyi-admin.jar app.jar
ARG ACTIVE
ENV ACTIVE $ACTIVE ENV TIMEZONE="America/Los_Angeles"
ENV TZ=America/Los_Angeles ENTRYPOINT ["java","-jar","-Duser.timezone=America/Los_Angeles","/app.jar","--spring.profiles.active=${ACTIVE}"]
|
新建项目,勾选参数化构建
比如我这里会设置几个参数
1 2 3 4 5 6 7 8 9 10 11 12 13
| # Springboot Active profile ACTIVE druid,prod druidaws,aws
# Docker镜像仓库 DOCKER_REPO sgccr.ccs.tencentyun.com/xxxx/test sgccr.ccs.tencentyun.com/xxxx
# 镜像版本号(默认还会打一个latest) VERSION 1.0.0
|
Maven 构建命令
clean package -DskipTests -Dmaven
这里记得去 Jenkins 设置中提前安装好 Maven 并且选中生效
添加构建镜像并推送命令
1 2 3 4 5
| cd $WORKSPACE/ruoyi-admin docker build --build-arg ACTIVE=$ACTIVE . -t $DOCKER_REPO:latest -t $DOCKER_REPO:$VERSION -f $WORKSPACE/ruoyi-admin/Dockerfile docker login 镜像仓库 --username=仓库账号 -p 仓库密码 docker push $DOCKER_REPO:latest docker push $DOCKER_REPO:$VERSION
|
执行成功后 , 去部署的服务器 pull 镜像并更新即可
参考链接