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.jar

EXPOSE 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.conf

COPY ./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任务配置

与服务端类似,略

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值