Jenkins自动化部署脚本及配置记录

编程入门 行业动态 更新时间:2024-10-27 15:19:28

Jenkins自动化部署<a href=https://www.elefans.com/category/jswz/34/1771291.html style=脚本及配置记录"/>

Jenkins自动化部署脚本及配置记录

服务端java工程

需要部署项目的服务器上配置

1./home/info-plat/my-project目录下准备3个文件
Dockerfile

FROM moxm/java:1.8-full
RUN mkdir -p /my-project
WORKDIR /my-project
COPY my-project.jar project.jarEXPOSE containerPort
ENV TZ=Asia/Shanghai JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"CMD java -jar project.jar $JAVA_OPTS

start.sh

#!/bin/bash
docker build -t imageName .
echo "build image end"
docker run --name containerName -p hostPort:containerPort -d imageName 

stop.sh

#!/bin/bash
docker stop containerName
echo "stop container end"
docker rm containerName
echo "remove container end"
docker rmi imageName
echo "remove image end"

Jenkins任务配置

1.SSH Server

2.构建后操作

  • 选择Send build artifacts over SSH
  • SSH Server选择info-plat-dev
  • Transfers Transfer Set配置
    Source files:配置需要send的项目jar包,如xx1/xx2/project.jar。注意该路径是相对.jenkins/workspace/taskName的,即完整路径是.jenkins/workspace/taskName/xx1/xx2/project.jar
    Remove prefix:一般希望在目标路径下只保留项目jar包,所以这里配置需要删除的前缀路径为xx1/xx2
    Remote directory:配置jar要send到的远程路径,如/home/info-plat/my-project
    Exec command:配置在远程服务器执行的shell脚本
echo "exec command start..."
cd /home/info-plat/my-project
sh ./stop.sh
sh ./start.sh
echo "exec command end..."

前端web工程

需要部署项目的服务器上配置

工程所在路径:/home/info-plat/pc-ui

dist是前端工程build的产物
Dockerfile

FROM nginx
RUN mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
RUN rm -rf /etc/nginx/conf.d/default.confCOPY ./dist /pcui
COPY ./nginx.conf /etc/nginx/nginx.conf
COPY ./pc-ui.conf /etc/nginx/conf.d/pc-ui.conf

nginx.conf

user  root;
worker_processes  auto;#error_log  /var/log/nginx/error.log notice;
#pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';#    access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;gzip    on;include /etc/nginx/conf.d/*.conf;
}

pc-ui.conf

# 配置springboot服务集群
upstream info_plat_pc_ui_server {server ip:port;keepalive 32;
}server {listen 80;server_name localhost;# 打包好的dist目录文件,放置到这个目录下root /pcui/;gzip on;gzip_comp_level 5;gzip_min_length 1k;gzip_buffers 4 16k;gzip_proxied any;gzip_vary on;gzip_types application/javascript application/x-javascript text/javascript text/css text/xml application/xhtml+xml application/xml application/atom+xml application/rdf+xml application/rss+xml application/geo+json application/json application/ld+json application/manifest+json application/x-web-app-manifest+json image/svg+xml text/x-cross-domain-policy;gzip_static on;gzip_disable "MSIE [1-6]\.";# 注意维护新增微服务,gateway 路由前缀location ~* ^/(path1|path2|path3) {proxy_pass http://info_plat_pc_ui_server;proxy_set_header Host $http_host;proxy_connect_timeout 15s;proxy_send_timeout 15s;proxy_read_timeout 15s;proxy_set_header X-Forwarded-Proto http;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

start.sh

#!/bin/bash
docker build -t imageName .
echo "build image end"
docker run --name containerName -p hostPort:containerPort -d imageName
echo "run end"

stop.sh

#!/bin/bash
docker stop containerName 
echo "stop container end"
docker rm containerName 
echo "remove container end"
docker rmi imageName
echo "remove image end"

Jenkins任务配置

与服务端类似,略

更多推荐

Jenkins自动化部署脚本及配置记录

本文发布于:2024-03-08 13:07:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720963.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:脚本   Jenkins

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!