脚本及配置记录"/>
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自动化部署脚本及配置记录
发布评论