增加脚本,支持docker环境变量的方式传入服务端接口地址

This commit is contained in:
2025-09-08 09:49:51 +08:00
parent 081eb910eb
commit ae8e8e7e8f
2 changed files with 56 additions and 1 deletions
+13 -1
View File
@@ -2,6 +2,10 @@ FROM nginx
MAINTAINER jeecgos@163.com
VOLUME /tmp
ENV LANG en_US.UTF-8
ENV VITE_GLOB_API_URL https://api.xjygjk.com
ENV VITE_GLOB_DOMAIN_URL https://api.xjygjk.com
RUN echo "server { \
#解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 \
location / { \
@@ -18,4 +22,12 @@ RUN echo "server { \
&& mkdir -p /var/www/html
ADD dist/ /var/www/html/
EXPOSE 3100
# 添加运行时注入脚本
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# 启动脚本
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 80
+43
View File
@@ -0,0 +1,43 @@
#!/bin/sh
set -e
# 从环境变量获取 APP_SHORT_NAME
APP_SHORT_NAME="${VITE_GLOB_APP_SHORT_NAME:-CQYTHEALTHADMIN}"
CONFIG_VAR="__PRODUCTION__${APP_SHORT_NAME}__CONF__"
# 1. 创建运行时配置文件
cat > /var/www/html/config.js << EOF
// 动态注入运行时配置
window['$CONFIG_VAR'] = {
"VITE_GLOB_APP_TITLE": "${VITE_GLOB_APP_TITLE:-健康管理后台}",
"VITE_GLOB_APP_TITLE_JD": "${VITE_GLOB_APP_TITLE_JD:-健康干预后台}",
"VITE_GLOB_APP_SHORT_NAME": "${VITE_GLOB_APP_SHORT_NAME:-CqytHealthAdmin}",
"VITE_GLOB_APP_CAS_BASE_URL": "${VITE_GLOB_APP_CAS_BASE_URL:-http://cas.default.com/cas}",
"VITE_GLOB_APP_OPEN_SSO": ${VITE_GLOB_APP_OPEN_SSO:-false},
"VITE_GLOB_APP_OPEN_QIANKUN": ${VITE_GLOB_APP_OPEN_QIANKUN:-true},
"VITE_GLOB_ONLINE_VIEW_URL": "${VITE_GLOB_ONLINE_VIEW_URL:-http://fileview.jeecg.com/onlinePreview}",
"VITE_GLOB_API_URL": "${VITE_GLOB_API_URL:-http://default-api.com}",
"VITE_GLOB_DOMAIN_URL": "${VITE_GLOB_DOMAIN_URL:-http://default-domain.com}",
"VITE_GLOB_ST_DOMAIN_URL": "${VITE_GLOB_ST_DOMAIN_URL:-http://default-domain.com}",
"VITE_GLOB_API_URL_PREFIX": "${VITE_GLOB_API_URL_PREFIX:-}"
};
// 冻结对象(可选,模拟生产行为)
Object.freeze(window['$CONFIG_VAR']);
Object.defineProperty(window, '$CONFIG_VAR', {
configurable: false,
writable: false
});
EOF
# 2. 修改 index.html
# - 在 </head> 前插入 <script src="/config.js">
# - 并注释或移除原始的 _app.config.js 加载
sed -i '/<head[ >]/a <script src="\/config.js" defer><\/script>' /var/www/html/index.html
# 3. 屏蔽原始 _app.config.js(通过注释 script 标签)
# 匹配 src="/_app.config.js" 开头,允许后面有 ?v=任意字符
sed -i 's|<script[^>]*src="/_app.config.js[^"]*"[^>]*></script>|<!-- 屏蔽构建时配置:<script src="/_app.config.js" /> -->|g' /var/www/html/index.html
# 启动 Nginx
exec nginx -g "daemon off;"