前端部署采用 docker 的方式, 实现在容器启动时传递环境变量, 请求不同服务地址
实现思路: 定义.env.xxx 文件(环境变量赋值),在compose.yml中引入.env.xxx 文件,环境变量通过nginx的sub_filter放到html的meta标签里
----------------------------------------------------------【etl-ui.env】--------------------------------------------------------------------
API_REQUEST_ADDRESS=http://xxx.xxx.x.xx:8601
----------------------------------------------------------【compose.yml】--------------------------------------------------------------------
compose.yml中前端容器中添加env_file, 引入环境变量配置文件
version: "6.6"
name: myy-system
services:
myy-myy-ui-1:
container_name: myy-myy-ui-1
image: xxx.xxx.x.xx:8084/myy-app-ui:latest
restart: unless-stopped
ports:
- "8001:8700"
env_file:
- etl-ui.env
deploy:
resources:
limits:
memory: 8G
environment:
TZ: Asia/Shanghai
depends_on:
- myy-myy-ignite-1
----------------------------------------------------------【entrypoint.sh】--------------------------------------------------------------------
在Dockerfile同级目录下添加entrypoint.sh文件, 获取容器启动时传入的环境变量API_REQUEST_ADDRESS的值保存到变量API_REQUEST_ADDRESS_VAL中
#!/bin/bash
sed -i "s|API_REQUEST_ADDRESS_VAL|${API_REQUEST_ADDRESS}|g" /usr/share/nginx/html/index.html
exec nginx -g 'daemon off;'
----------------------------------------------------------【Dockerfile】-----------------------------------------------------------