Portainer ce管理容器的操作过程
作者:localhost@c_sdn
这篇文章主要介绍了Portainer ce管理容器的操作过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
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/jpg; 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 ~* .*\.(jpg)$){ 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 ~* .*\.(jpg)$){ 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 ~* .*\.(jpg)$){ 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/jpg; 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 ~* .*\.(jpg)$){ 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 ~* .*\.(jpg)$){ 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 ~* .*\.(jpg)$){ 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/jpg; 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 ~* .*\.(jpg)$){ 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 ~* .*\.(jpg)$){ 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 ~* .*\.(jpg)$){ add_header Cache-Control "no-cache, no-store"; } } } }
在堆栈出查看是否成功
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。