jenkins+docker+maven部署java程序
jenkins+docker+maven部署java程序
·
前几天写了关于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接口验证
搞定!
更多推荐
已为社区贡献2条内容
所有评论(0)