前几天写了关于jenkins+docker+nodejs部署vue前端的内容,今天把对应vue项目的后端也通过jenkins+docker部署出来,使前后端相通,使之可以正常登录访问后端接口

回顾

这是上次部署的前端项目
在这里插入图片描述

[root@jenkins docker]# cat default.conf 
server {
        listen  80;
        server_name localhost;
        location / {
                root  /app;
                try_files $uri $uri/ /index.html;
                index  index.html index.htm;
                }
        location /api {
			if ($request_method = 'OPTIONS') {
                        return 204;
                }
                rewrite  ^/api/(.*)$ /$1 break;
                proxy_pass http://192.168.80.133:8071/;
        }}

这是当时的配置文件,可以看到当用户访问路由/api/下的内容时,前端都会proxy到http://192.168.80.133:8071/
这个就是今天需要部署的后端java项目

#创建job

新建job,类型选maven项目
在这里插入图片描述
选择丢弃旧的构建
在这里插入图片描述
选择参数化构建:
用来定义每次镜像的版本号
在这里插入图片描述
配置代码仓库及分支
在这里插入图片描述
构建环境勾选清除工作空间和添加时间戳到构建输出
在这里插入图片描述
构建步骤选择执行shell
在这里插入图片描述
配置maven打包命令
在这里插入图片描述

点击保存!

编写shell语句

在这里插入图片描述

这里的大致步骤就是停止并删除java-agent容器,构建新的java-agent带版本号的镜像,用最新的版本号镜像去启动容器,或者上传到harbor,远程其他节点去拉去新的镜像和启动。

#!/bin/bash
docker ps |grep java-agent
dcoker stop java-agent
docker rm java-agent
docker build -t java-agent:$version .
#构建和部署在一台
docker run --name java-agent -p 8071:8071 -d java-agent:$version
#构建和部署不在一台,或者上传到harbor
#docker tag java-agent:$version  192.168.80.133:8000/test/java-agent:$version
#docker push 192.168.80.133:8000/test/java-agent:$version
#远程其他节点部署
# ssh 192.168.80.** "docker pull 192.168.80.133:8000/test/java-agent:$version"
# ssh 192.168.80.** "docker stop java-agent;docker rm java-agent"
# ssh 192.168.80.** "docker run --namejava-agent -p 8071:8071 -d 192.168.80.133:8000/test/java-agent:$version"

编写dockerfile

Dockerfile文件是我提前写好上传到代码库的,下图是文件内容
在这里插入图片描述

[root@jenkins java-agent]# cat Dockerfile
FROM java:8
MAINTAINER jay
VOLUME /tmp
#复制jar包
ADD target/sport-api-agent-0.0.1-SNAPSHOT.jar app.jar
#更新文件时间
RUN bash -c 'touch /app.jar'
#暴露端口
EXPOSE 8071
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xms256m","-Xmx512m","/app.jar","--spring.profiles.active=test"]

–spring.profiles.active=test 指定读取的具体配置文件名字

一切准备就绪,构建看看
在这里插入图片描述
第一次构建的话是需要去下载maven的依赖库,我这是以及构建了几次


在这里插入图片描述
maven 编译打包完成
日志显示开始执行shell内语句了
在这里插入图片描述
构建完成,登录服务器查看docker进程

在这里插入图片描述
容器运行中,打印日志看看是否有报错

日志显示正常,
通过前端界面登录看能否通过后端API接口验证

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

搞定!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐