jmalcloud-view/docker-entrypoint.sh
jmal 810ae5f48f fix(docker): 优化域名解析和 Nginx 配置
- 添加循环检查 jmalcloud 主机名解析的功能,确保域名可用再启动 Nginx
-从 Nginx 配置中移除不必要的 DNS 解析设置 (resolver 指令)
2025-07-02 10:19:25 +08:00

25 lines
807 B
Bash

#!/bin/bash
set -e
# 使用 getent 检查是否可以解析 office 容器的 IP
if getent hosts office &> /dev/null; then
# 使用包含 office 的 Nginx 配置
cp /etc/nginx/nginx.conf.template /etc/nginx/nginx.conf
else
# 使用不包含 office 的 Nginx 配置
cp /etc/nginx/nginx.conf.no_office.template /etc/nginx/nginx.conf
fi
envsubst '${API_URL} ${API_OFFICE_URL}' < /var/www/public/config.js.template > /var/www/public/config.js
# 循环检查,直到 jmalcloud 主机名可以被成功解析
# 使用 getent hosts 是比 ping 更可靠的方式,因为它直接查询名称服务
while ! getent hosts jmalcloud > /dev/null 2>&1; do
echo "jmalcloud is not yet resolvable, waiting 2 seconds..."
sleep 2
done
echo "jmalcloud is now resolvable. Starting Nginx..."
exec "$@"