diff --git a/Dockerfile b/Dockerfile index 2d223969..d9a7a8c7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -# 使用轻量级的 Nginx 镜像 +# 使用轻量级的 Nginx 镜像 FROM nginx:alpine ARG NGINX_CONF=nginx.conf @@ -10,12 +10,15 @@ COPY dist /usr/share/nginx/html EXPOSE 8088 - -# 创建启动脚本 -RUN echo -e '#!/bin/sh\n\ -echo "Waiting for MySQL/Redis/MinIO to start..."\n\ -sleep 15\n\ -nginx -g "daemon off;"' > /start.sh && \ +# 安装 getent 依赖(Alpine 自带) +# 创建启动脚本:轮询等待后端 DNS 解析成功后再启动 nginx +RUN printf "#!/bin/sh\n\ +echo \"Waiting for upstream besure-server-inner to resolve...\"\n\ +while ! getent hosts besure-server-inner > /dev/null 2>&1; do\n\ + sleep 2\n\ +done\n\ +echo \"Upstream resolved! Starting nginx...\"\n\ +nginx -g \"daemon off;\"\n" > /start.sh && \ chmod +x /start.sh -CMD ["/start.sh"] \ No newline at end of file +CMD ["/start.sh"] diff --git a/nginx-inner.conf b/nginx-inner.conf index 60747051..388e0abc 100644 --- a/nginx-inner.conf +++ b/nginx-inner.conf @@ -1,4 +1,4 @@ -server { +server { listen 8088; server_name localhost; @@ -23,7 +23,8 @@ server { # 如果 inner 环境的后端服务名不同,比如叫 besure-server-inner # 就把下面的 proxy_pass 改成对应的服务名或IP location /admin-api-inner/ { - proxy_pass http://besure-server-inner:48081; # 👈 这里改! + set $backend_inner "http://besure-server-inner:48081"; + proxy_pass $backend_inner; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -35,7 +36,8 @@ server { # 如果 inner 环境还需要访问原 /admin-api/,可以保留 location /admin-api/ { - proxy_pass http://besure-server:48081; # 👈 原生产后端 + set $backend_server "http://besure-server:48081"; + proxy_pass $backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -47,7 +49,8 @@ server { # 其他路径保持不变 location /api/ { - proxy_pass http://besure-server:48081; + set $backend_server "http://besure-server:48081"; + proxy_pass $backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -58,7 +61,8 @@ server { } location /jmreport/ { - proxy_pass http://besure-server:48081; + set $backend_server "http://besure-server:48081"; + proxy_pass $backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -69,7 +73,8 @@ server { } location /v3/api-docs/ { - proxy_pass http://besure-server:48081; + set $backend_server "http://besure-server:48081"; + proxy_pass $backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -80,7 +85,8 @@ server { } location /doc.html { - proxy_pass http://besure-server:48081; + set $backend_server "http://besure-server:48081"; + proxy_pass $backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -91,21 +97,24 @@ server { } location /swagger-ui/ { - proxy_pass http://besure-server:48081; + set $backend_server "http://besure-server:48081"; + proxy_pass $backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } # 处理Swagger静态资源 location /webjars/ { - proxy_pass http://besure-server:48081; + set $backend_server "http://besure-server:48081"; + proxy_pass $backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } # 处理API文档JSON文件 location ~ /v3/api-docs/.*\.json$ { - proxy_pass http://besure-server:48081; + set $backend_server "http://besure-server:48081"; + proxy_pass $backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } @@ -121,4 +130,4 @@ server { location = /50x.html { root /usr/share/nginx/html; } -} \ No newline at end of file +}