- 使用nginx做反向代理,nginx是直接yum安装的
- 里面docker跑了我的一个项目的两个环境,一个生产一个测试
- 还用docker跑redis就给我这两项目用
- java项目里面有step.sh
init.sh创建了我的几个项目目录,安装了docker、unzip、nginx
#!/bin/bash yum install -y # 定义多级目录路径数组 directories=( "/home/logs" "/www/xxx-platform" "/www/xxx-platform-forntend" "/wwww/test/xxx-platform" "/www/test/xxx-platform-forntend" ) # 循环创建每个目录 for dir in "${directories[@]}"; do # 使用-p选项创建目录,如果目录已经存在则不报错 mkdir -p "$dir" # 检查目录是否创建成功 if [ -d "$dir" ]; then echo "目录 $dir 创建成功。" else echo "目录 $dir 创建失败。" fi done # 安装Docker echo "开始安装Docker..." sudo yum update -y sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io # 启动Docker服务 sudo systemctl start docker # 验证Docker是否安装成功 if [ -x "$(command -v docker)" ]; then echo "Docker 安装成功。" else echo "Docker 安装失败。" fi yum install -y unzip sudo yum install -y epel-release sudo yum install -y nginx sudo systemctl start nginx sudo systemctl enable nginx
然后再去我的java两个项目里面上传我的step.sh,以下以prod的step为样例
#!/bin/sh docker stop java17-container docker rm java17-container docker rmi java17-image docker build -t java17-image . docker run -dit -p 12001:12001 -p 9998:9998 -v /www/xxx-platform/log:/home/logs/xxx-platform --name java17-container --restart=always java17-image
最后nginx啥都不用动直接去/etc/nginx/conf.d/里面上传我之前留下来的几个conf,两个前端+两个后端,下面列一个后端为样例
server { listen 80; server_name platformapi.xxx.tech; index index.html; client_max_body_size 1024M; error_log /home/nginx/logs/xxx-platform-error.log; access_log /home/nginx/logs/xxx-platform.log; location / { proxy_pass http://127.0.0.1:12001/; } }
然后重启nginx命令systemctl restart nginx
ps:因为项目打包已经防盗jenkins里面去了,只需要去那边修改下连接服务器的凭证密码,后续就直接将打好的包推过来再触发了我的step就行了,so,docker ps
没问题ok