1、启动 java 后端服务
1.1、手动构建镜像
先把 java应用程序打成 jar 包,放到指定目录
通过Dockerfile 打成镜像
# 镜像仓库的地址访问地址 harbor.hkc.cn
FROM harbor.hkc.cn/jpaas/openjdk_base:8
# 邮箱
MAINTAINER hw@hkc.cn
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
USER root
WORKDIR /
#导入编译后的jar包
ADD target/hkc-eip.jar /jpaas-eip.jar
#暴露端口 不是实际运行端口
EXPOSE 9900
#启动命令 占位符
CMD java $JAVA_OPTS $APPLICTION_OPTS -jar /jpaas-eip.jar
执行构建命令
# 把jar包和Dockerfile 放在同一层目录
docker build -t harbor.hkc.cn/eip/jpass-eip:v3 .
# 先登录到镜像服务器 登录远程
docker login harbor.hkc.cn
# 推送镜像 docker push 镜像名:标签名
docker push harbor.hkc.cn/eip/jpaas-eip:v3
# 镜像仓库地址:查看是否推送
https://xxxx.xxxx.xxxx.xxxx/harbor/
1.1、gitlab 流水线构建镜像
前提条件:
1、配置了gitrunner 来监听这个分支。
2、maven 镜像连接远程能下载的。
项目里面需要配置 Dockerfile .gitlab-ci.yml 这个两个文件
Dockerfile 文件内容(可能会跟手动镜像的不一样。路径问题)
FROM harbor.hkc.cn/jpaas/openjdk_base:8
MAINTAINER liuli@hkc.cn
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
USER root
WORKDIR /
#导入编译后的jar包
ADD target/hkc-eip.jar /jpaas-eip.jar
#暴露端口
EXPOSE 9900
#启动命令
CMD java $JAVA_OPTS $APPLICTION_OPTS -jar /jpaas-eip.jar
.gitlab-ci.yml 文件内容
image: harbor.hkc.cn/jpaas/cibase:0.8.1
stages:
- maven
- deploy
# 当前路径均为 .gitlab-ci.yml文件所在目录
maven_job:
stage: maven
tags:
- default
# 指定分支
only:
- eip_release_git
# - eip_release
# - eip_dev
# - eip_test
script:
- echo "maven job maven version"
- mkdir -p /root/gitrunner/$CI_PROJECT_NAME
- cd ./hkc-eip/
- mvn clean package -DskipTests=true
# 需要删除定时任务 job 相关代码
- mkdir ./target/hkc-eip
- cd ./target/hkc-eip
- jar -xvf ../hkc-eip.jar
# 删除不用的 job 文件夹
- rm -rf ./BOOT-INF/classes/com/redxun/job
- rm -rf ./BOOT-INF/classes/mapper/job
# 压缩文件
- jar -cvfM0 hkc-eip.jar ./
- cd ..
#- echo "pwd" /builds/hkc-eip/hkc-eip-server/hkc-eip/target
#- pwd
# 删除旧的
- rm -rf ../target/hkc-eip.jar
# 把新的替换过来
- mv ../target/hkc-eip/hkc-eip.jar ../target/
- echo "ls"
- ls
- rm -rf ./target/hkc-eip
- cd ..
- cp -f ./target/*.jar /root/gitrunner/$CI_PROJECT_NAME/
cache:
paths:
- .m2/repository
# artifacts:
# expire_in: 3 hrs
# paths:
# - ./target/hkc-eip.jar
deploy_job:
stage: deploy
image: docker:stable
variables:
DOCKER_TLS_CERTDIR: ""
GODEBUG: "x509ignoreCN=0"
DOCKER_HOST: "tcp://docker:2375"
services:
- name: docker:19.03.8-dind
alias: docker
command:
- "--insecure-registry=harbor.hkc.cn"
tags:
- default
# 指定分支
only:
- eip_release_git
# - eip_release
# - eip_dev
# - eip_test
script:
- datetime=`date +%Y%m%d%H%M%S`
- echo "set now datetime"
- echo $datetime
- ls -al /root/gitrunner
- echo "set branch name CI_PROJECT_NAME"
# - CI_BRANCH_NAME=`git symbolic-ref --short -q HEAD`
- echo $CI_PROJECT_NAME
- mkdir target && cp -f /root/gitrunner/$CI_PROJECT_NAME/*.jar ./target/
- docker login harbor.hkc.cn -u 0179733 -p Qweasd123
# 注意 Dockerfile 和 nginx 的配置文件的位置
- docker build -t harbor.hkc.cn/eip/jpaas-eip:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA-$datetime -f ./hkc-eip/Dockerfile .
- docker push harbor.hkc.cn/eip/jpaas-eip:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA-$datetime
after_script:
- rm -rf /root/gitrunner/$CI_PROJECT_NAME
启动服务:
在 portainer ce 上配置堆栈启动
去 镜像仓库找到最新的镜像文件
jpaas-eip-server.yml 启动文件信息
version: '3.7'
services:
jpaas-eip-server:
# 镜像名 :点进镜像看里面具体的名称
image: harbor.hkc.cn/eip/jpaas-eip:eip_release_git-c4ace4ed-20240429020258
# 容器名
container_name: jpaas-eip-server
# 主机名
hostname: jpaas-eip-server
# 环境配置
environment:
TZ: Asia/Shanghai
APPLICTION_OPTS: "-Dspring.profiles.active=prod"
JAVA_OPTS: "-Xms4096m -Xmx4096m -XX:+UseG1GC -XX:+UseStringDeduplication -Xloggc:/root/jpaas-gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/root/ -Dfile.encoding=utf-8"
deploy:
replicas: 1
placement:
# 需要部署服务器的标签
constraints: [node.labels.foo == app]
restart_policy:
condition: on-failure
# 暴露外部端口:内部端口
ports:
- 9900:9900
networks:
- golbal-service-jpaas-net
# 使用的网络
networks:
golbal-service-jpaas-net:
external: true
启动后检查是否出错(查看日志)
2、启动 前端 服务
2.1、手动构建镜像
先把 前端应用程序打成 dist 包,放到指定目录(把名称改成你Dockerfile 里面配置的文件夹名称)
文件目录
-- eip
-- docker
-- default.conf (就是 nginx 的配置文件)
-- Dockerfile
Dockerfile
FROM harbor.hkc.cn/jpaas/nginx:1.14.1
MAINTAINER liuli@hkc.cn
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
USER root
WORKDIR /
#导入编译后的dist
COPY eip/ /usr/share/nginx/html/eip/
ADD docker/default.conf /etc/nginx/nginx.conf
#暴露端口
EXPOSE 80 5001 5005 8005
#启动命令
ENTRYPOINT ["nginx","-g","daemon off;"]
docker/default.conf (nginx 的配置文件)
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include 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/access.log ;
#error_log /var/log/error.log ;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
server_tokens off;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 3;
gzip_types text/plain application/javascript application/css text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
resolver 127.0.0.11 valid=10s;
# 直接走请求 ap
upstream job {
server jpaas-eip-job-server:9900;
}
# 直接走请求 ap
upstream gateway {
server jpaas-eip-server:9900;
}
# pc 端 后台界面 ng
upstream jpaas {
server jpaas-jpaas-nginx-server:8000;
}
# pc 端 表单界面 ng
upstream form {
server jpaas-form-nginx-server:8000;
}
# eip pc 服务
server {
listen 80;
server_name localhost;
location /jpaas {
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://jpaas;
}
location /job {
proxy_set_header Host $host;
proxy_pass http://job;
}
location / {
root html;
index index.html index.htm;
}
location /eip {
alias /usr/share/nginx/html/eip/;
index index.html index.htm;
try_files $uri $uri/ /eip/index.html;
client_max_body_size 900m;
client_body_buffer_size 900m;
}
location /form {
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://form;
}
location /api/ {
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_set_header developer ray;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://gateway/;
}
location /api/srm {
proxy_set_header Host $host;
proxy_pass http://172.16.11.56:2381/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/(.*)$" /$1 break;
}
location /api/DccProcess/Incomplete.do {
#proxy_set_header Host $host;
#proxy_pass http://10.5.0.75:8150/api/DccProcess/Incomplete.do;
#client_max_body_size 50m;
#client_body_buffer_size 50m;
proxy_set_header Host $host;
proxy_pass http://localhost:8002/;
rewrite ^/api/DccProcess/(.*)$ /api/dcc-process/$1 last; # 使用last进行内部重定向
}
location /api/dcc-process {
proxy_set_header Host $host;
proxy_pass http://10.5.0.75:8150/;
client_max_body_size 50m;
client_body_buffer_size 50m;
# rewrite "^/api/(.*)$" /$1 break;
rewrite ^/api/dcc-process/(.*)$ /api/DccProcess/$1 break;
}
location /api/ecs {
proxy_set_header Host $host;
proxy_set_header ORigin "";
proxy_pass http://10.5.101.138:14114/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/ecs/(.*)$" /$1 break;
}
location /api/oa3 {
proxy_set_header Host $host;
proxy_set_header ORigin "";
proxy_pass http://10.5.101.138:14114/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/oa3/(.*)$" /$1 break;
}
location /api/hkc {
proxy_set_header Host $host;
proxy_pass http://172.16.0.212:8090/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/(.*)$" /$1 break;
}
location /api/qspsams {
proxy_set_header Host $host;
proxy_pass http://10.5.0.225/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/(.*)$" /$1 break;
}
location /api/goal {
proxy_set_header Host $host;
proxy_pass http://10.5.100.67:7207/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/(.*)$" /$1 break;
}
location /api/ehr {
proxy_set_header Host $host;
proxy_pass http://10.5.0.199:8089/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/ehr/(.*)$" /$1 break;
}
location /api/pzdqh {
proxy_set_header Host $host;
proxy_pass http://pz.cqhkc.com:9999/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/pzdqh/(.*)$" /$1 break;
}
location /api/pzdsh {
proxy_set_header Host $host;
proxy_pass http://10.5.0.183:8080/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/pzdsh/(.*)$" /$1 break;
}
}
# 文件服务端口 5001
server {
listen 5001;
server_name localhost;
location / {
root /root/serverfiles/opt/temp111;
index index.html index.htm;
if ($request_filename ~* .*\.(png)$){
add_header Cache-Control "no-cache, no-store";
}
}
}
# 文件服务端口 5005
server {
listen 5005;
server_name localhost;
location / {
root /root/serverfiles/historyfile;
index index.html index.htm;
if ($request_filename ~* .*\.(png)$){
add_header Cache-Control "no-cache, no-store";
}
}
}
# 文件服务端口 8005
server {
listen 8005;
server_name localhost;
location / {
root /root/serverfiles/upload;
index index.html index.htm;
if ($request_filename ~* .*\.(png)$){
add_header Cache-Control "no-cache, no-store";
}
}
}
}
执行构建命令
# 把jar包和Dockerfile 放在同一层目录
docker build -t harbor.hkc.cn/eip/jpass-eip-web:v1 .
# 先登录到镜像服务器 登录远程
docker login harbor.hkc.cn
# 推送镜像 docker push 镜像名:标签名
docker push harbor.hkc.cn/eip/jpaas-eip-web:v1
# 镜像仓库地址:查看是否推送
https://xxxx.xxxx.xxxx.xxxx/harbor/
2.2、gitlab 流水线构建镜像
Dockerfile
FROM harbor.hkc.cn/jpaas/nginx:1.14.1
MAINTAINER liuli@hkc.cn
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
USER root
WORKDIR /
#导入编译后的dist
COPY eip/ /usr/share/nginx/html/eip/
# 这个可能路径随着具体能访问的路径变化
ADD jpaas-admin-front/docker/default.conf /etc/nginx/nginx.conf
#暴露端口
EXPOSE 80 5001 5005 8005
#启动命令
ENTRYPOINT ["nginx","-g","daemon off;"]
docker/default.conf (nginx 的配置文件)
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include 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/access.log ;
#error_log /var/log/error.log ;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
server_tokens off;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 3;
gzip_types text/plain application/javascript application/css text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
resolver 127.0.0.11 valid=10s;
# 直接走请求 ap
upstream job {
server jpaas-eip-job-server:9900;
}
# 直接走请求 ap
upstream gateway {
server jpaas-eip-server:9900;
}
# pc 端 后台界面 ng
upstream jpaas {
server jpaas-jpaas-nginx-server:8000;
}
# pc 端 表单界面 ng
upstream form {
server jpaas-form-nginx-server:8000;
}
# eip pc 服务
server {
listen 80;
server_name localhost;
location /jpaas {
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://jpaas;
}
location /job {
proxy_set_header Host $host;
proxy_pass http://job;
}
location / {
root html;
index index.html index.htm;
}
location /eip {
alias /usr/share/nginx/html/eip/;
index index.html index.htm;
try_files $uri $uri/ /eip/index.html;
client_max_body_size 900m;
client_body_buffer_size 900m;
}
location /form {
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://form;
}
location /api/ {
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_set_header developer ray;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://gateway/;
}
location /api/srm {
proxy_set_header Host $host;
proxy_pass http://172.16.11.56:2381/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/(.*)$" /$1 break;
}
location /api/DccProcess/Incomplete.do {
#proxy_set_header Host $host;
#proxy_pass http://10.5.0.75:8150/api/DccProcess/Incomplete.do;
#client_max_body_size 50m;
#client_body_buffer_size 50m;
proxy_set_header Host $host;
proxy_pass http://localhost:8002/;
rewrite ^/api/DccProcess/(.*)$ /api/dcc-process/$1 last; # 使用last进行内部重定向
}
location /api/dcc-process {
proxy_set_header Host $host;
proxy_pass http://10.5.0.75:8150/;
client_max_body_size 50m;
client_body_buffer_size 50m;
# rewrite "^/api/(.*)$" /$1 break;
rewrite ^/api/dcc-process/(.*)$ /api/DccProcess/$1 break;
}
location /api/ecs {
proxy_set_header Host $host;
proxy_set_header ORigin "";
proxy_pass http://10.5.101.138:14114/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/ecs/(.*)$" /$1 break;
}
location /api/oa3 {
proxy_set_header Host $host;
proxy_set_header ORigin "";
proxy_pass http://10.5.101.138:14114/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/oa3/(.*)$" /$1 break;
}
location /api/hkc {
proxy_set_header Host $host;
proxy_pass http://172.16.0.212:8090/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/(.*)$" /$1 break;
}
location /api/qspsams {
proxy_set_header Host $host;
proxy_pass http://10.5.0.225/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/(.*)$" /$1 break;
}
location /api/goal {
proxy_set_header Host $host;
proxy_pass http://10.5.100.67:7207/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/(.*)$" /$1 break;
}
location /api/ehr {
proxy_set_header Host $host;
proxy_pass http://10.5.0.199:8089/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/ehr/(.*)$" /$1 break;
}
location /api/pzdqh {
proxy_set_header Host $host;
proxy_pass http://pz.cqhkc.com:9999/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/pzdqh/(.*)$" /$1 break;
}
location /api/pzdsh {
proxy_set_header Host $host;
proxy_pass http://10.5.0.183:8080/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/pzdsh/(.*)$" /$1 break;
}
}
# 文件服务端口 5001
server {
listen 5001;
server_name localhost;
location / {
root /root/serverfiles/opt/temp111;
index index.html index.htm;
if ($request_filename ~* .*\.(png)$){
add_header Cache-Control "no-cache, no-store";
}
}
}
# 文件服务端口 5005
server {
listen 5005;
server_name localhost;
location / {
root /root/serverfiles/historyfile;
index index.html index.htm;
if ($request_filename ~* .*\.(png)$){
add_header Cache-Control "no-cache, no-store";
}
}
}
# 文件服务端口 8005
server {
listen 8005;
server_name localhost;
location / {
root /root/serverfiles/upload;
index index.html index.htm;
if ($request_filename ~* .*\.(png)$){
add_header Cache-Control "no-cache, no-store";
}
}
}
}
.gitlab-ci.yml 文件
image: harbor.hkc.cn/jpaas/node:16.20.0-alpine
stages:
- maven
- deploy
# 当前路径均为 .gitlab-ci.yml文件所在目录
npm_job:
stage: maven
tags:
- default
# 指定分支
only:
- eip_release_git
#- eip_release
#- eip_test
#- eip_dev
script:
- echo "maven job maven version"
- mkdir -p /root/gitrunner/$CI_PROJECT_NAME
#- npm install --registry=http://10.5.100.108:18081/repository/npm-hkc-public/
# 注意具体项目文件路径 需要动态修改 node_modules 是放在服务器上的能访问的依赖文件
- cp -rf /root/gitrunner/eip_pc_module/node_modules ./jpaas-admin-front/
- cd jpaas-admin-front
# 如果 build 失败,需要对 vue-cli-service 进行授权
#- chmod 777 node_modules/.bin/vue-cli-service
- npm run build:prod
- mv dist eip
- tar -zcvf eip.tar.gz eip
- cp -rf eip.tar.gz /root/gitrunner/$CI_PROJECT_NAME/
cache:
paths:
- node_modules
# artifacts:
# expire_in: 3 hrs
# paths:
# - ./target/hkc-eip.jar
deploy_job:
stage: deploy
image: docker:stable
variables:
DOCKER_TLS_CERTDIR: ""
GODEBUG: "x509ignoreCN=0"
DOCKER_HOST: "tcp://docker:2375"
services:
- name: docker:19.03.8-dind
alias: docker
command:
- "--insecure-registry=harbor.hkc.cn"
tags:
- default
# 指定分支
only:
- eip_release_git
#- eip_release
#- eip_test
#- eip_dev
script:
- datetime=`date +%Y%m%d%H%M%S`
- echo "set now datetime"
- echo $datetime
# - ls -al
- echo "set branch name CI_PROJECT_NAME"
- echo $CI_PROJECT_NAME
# - ls -al /root/gitrunner/$CI_PROJECT_NAME
- cp -rf /root/gitrunner/$CI_PROJECT_NAME/eip.tar.gz . && tar -zxvf eip.tar.gz && rm -rf eip.tar.gz
- docker login harbor.hkc.cn -u 0179733 -p Qweasd123
# 注意 Dockerfile 和 nginx 的配置文件的位置
- docker build -t harbor.hkc.cn/eip/jpaas-eip-web:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA-$datetime -f ./jpaas-admin-front/Dockerfile .
- docker push harbor.hkc.cn/eip/jpaas-eip-web:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA-$datetime
after_script:
- rm -rf /root/gitrunner/$CI_PROJECT_NAME
启动服务:
在 portainer ce 上配置堆栈启动
去 镜像仓库找到最新的镜像文件
jpaas-eip-nginx-server.yml 启动文件信息
version: '3.7'
services:
jpaas-eip-nginx-server:
# 镜像名
image: harbor.hkc.cn/eip/jpaas-eip-web:eip_release_git-ebb79d2d-20240429075512
# 容器名
container_name: jpaas-eip-nginx-server
# 主机名
hostname: jpaas-eip-nginx-server
# 环境配置
environment:
- TZ=Asia/Shanghai
volumes:
- /root/serverfiles/opt/temp111:/root/serverfiles/opt/temp111
- /root/serverfiles/historyfile:/root/serverfiles/historyfile
- /root/serverfiles/upload:/root/serverfiles/upload
# 开放端口
ports:
- 80:80
- 5001:5001
- 5005:5005
- 8005:8005
privileged: true
deploy:
replicas: 1
placement:
# 需要部署服务器的标签
constraints: [node.labels.foo == manager]
restart_policy:
condition: on-failure
networks:
- golbal-service-jpaas-net
# 使用的网络
networks:
golbal-service-jpaas-net:
external: true
启动后检查是否出错(查看日志)
3、启动 nginx 做代理
3.1、直接堆栈启动
eip_nginx.yml
version: '3.7'
configs:
# 定义配置文件
nginx-config:
external: true
name: nginx-config.conf
services:
nginx:
# 镜像名称
image: harbor.hkc.cn/jpaas/nginx:1.14.1
# 主机名
hostname: jpaas-top-proxy-nginx-server
# 容器名
container_name: jpaas-top-proxy-nginx-server
environment:
- TZ=Asia/Shanghai
# 挂在数据目录
volumes:
- /root/serverfiles/opt/temp111:/root/serverfiles/opt/temp111
- /root/serverfiles/historyfile:/root/serverfiles/historyfile
- /root/serverfiles/upload:/root/serverfiles/upload
# 开放端口
ports:
- 80:80
- 5001:5001
- 5005:5005
- 8005:8005
configs:
- source: nginx-config
target: /etc/nginx/nginx.conf
deploy:
replicas: 1
placement:
# 需要部署服务器的标签
constraints: [node.labels.foo == manager]
restart_policy:
condition: on-failure
privileged: true
restart: always
# 使用网络
networks:
- golbal-service-jpaas-net
# 定义网络
networks:
golbal-service-jpaas-net:
external: true
需要 新增配置文件
nginx-config.yml
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include 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/access.log ;
#error_log /var/log/error.log ;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
server_tokens off;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 3;
gzip_types text/plain application/javascript application/css text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
resolver 127.0.0.11 valid=10s;
# 直接走请求 ap
upstream job {
server jpaas-eip-job-server:9900;
}
# 直接走请求 ap
upstream gateway {
server jpaas-eip-server:9900;
}
# pc 端 界面 ng
upstream eip {
server jpaas-eip-nginx-server:8000;
}
# pc 端 界面 ng
upstream eipmobile {
server jpaas-eip-mobile-nginx-server:8000;
}
# pc 端 后台界面 ng
upstream jpaas {
server jpaas-jpaas-nginx-server:8000;
}
# pc 端 表单界面 ng
upstream form {
server jpaas-form-nginx-server:8000;
}
# eip pc 服务
server {
listen 80;
server_name localhost;
location /jpaas {
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://jpaas;
}
location /job {
proxy_set_header Host $host;
proxy_pass http://job;
}
location /eip {
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://eip;
}
location /form {
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://form;
}
location /api/ {
client_max_body_size 1000m;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
proxy_set_header developer ray;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://gateway/;
}
location /api/srm {
proxy_set_header Host $host;
proxy_pass http://172.16.11.56:2381/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/(.*)$" /$1 break;
}
location /api/DccProcess/Incomplete.do {
#proxy_set_header Host $host;
#proxy_pass http://10.5.0.75:8150/api/DccProcess/Incomplete.do;
#client_max_body_size 50m;
#client_body_buffer_size 50m;
proxy_set_header Host $host;
proxy_pass http://localhost:8002/;
rewrite ^/api/DccProcess/(.*)$ /api/dcc-process/$1 last; # 使用last进行内部重定向
}
location /api/dcc-process {
proxy_set_header Host $host;
proxy_pass http://10.5.0.75:8150/;
client_max_body_size 50m;
client_body_buffer_size 50m;
# rewrite "^/api/(.*)$" /$1 break;
rewrite ^/api/dcc-process/(.*)$ /api/DccProcess/$1 break;
}
location /api/ecs {
proxy_set_header Host $host;
proxy_set_header ORigin "";
proxy_pass http://10.5.101.138:14114/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/ecs/(.*)$" /$1 break;
}
location /api/oa3 {
proxy_set_header Host $host;
proxy_set_header ORigin "";
proxy_pass http://10.5.101.138:14114/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/oa3/(.*)$" /$1 break;
}
location /api/hkc {
proxy_set_header Host $host;
proxy_pass http://172.16.0.212:8090/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/(.*)$" /$1 break;
}
location /api/qspsams {
proxy_set_header Host $host;
proxy_pass http://10.5.0.225/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/(.*)$" /$1 break;
}
location /api/goal {
proxy_set_header Host $host;
proxy_pass http://10.5.100.67:7207/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/(.*)$" /$1 break;
}
location /api/ehr {
proxy_set_header Host $host;
proxy_pass http://10.5.0.199:8089/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/ehr/(.*)$" /$1 break;
}
location /api/pzdqh {
proxy_set_header Host $host;
proxy_pass http://pz.cqhkc.com:9999/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/pzdqh/(.*)$" /$1 break;
}
location /api/pzdsh {
proxy_set_header Host $host;
proxy_pass http://10.5.0.183:8080/;
client_max_body_size 50m;
client_body_buffer_size 50m;
rewrite "^/api/pzdsh/(.*)$" /$1 break;
}
}
# 文件服务端口 5001
server {
listen 5001;
server_name localhost;
location / {
root /root/serverfiles/opt/temp111;
index index.html index.htm;
if ($request_filename ~* .*\.(png)$){
add_header Cache-Control "no-cache, no-store";
}
}
}
# 文件服务端口 5005
server {
listen 5005;
server_name localhost;
location / {
root /root/serverfiles/historyfile;
index index.html index.htm;
if ($request_filename ~* .*\.(png)$){
add_header Cache-Control "no-cache, no-store";
}
}
}
# 文件服务端口 8005
server {
listen 8005;
server_name localhost;
location / {
root /root/serverfiles/upload;
index index.html index.htm;
if ($request_filename ~* .*\.(png)$){
add_header Cache-Control "no-cache, no-store";
}
}
}
}
在堆栈出查看是否成功