在本文和Twitter上进行了一些讨论之后,似乎没有简单的方法可以通过Webpack实现我想要的功能。这些文件仅在运行时用作静态文件,并且无法在构建时排除文件并在运行时将其包括在内。
因此,我决定采用我想到的解决方案/变通办法:在启动Docker容器时更改静态文件。
我通过做来创建我的docker镜像
npm run build:proddocker build -t angularapp .
我正在使用官方的Nginx Docker映像作为我的基本映像,并且Dockerfile看起来像
FROM nginx:1.11.1COPY dist /usr/share/nginx/htmlCOPY run.sh /run.shCMD ["bash", "/run.sh"]
将
run.sh用于通过修改配置文件
sed和nginx的事后开始:
#!/bin/sh/bin/sed -i "s|http://localhost:8080|${base_URL}|" /usr/share/nginx/html/api.config.chunk.jsnginx -g 'daemon off;'这使我可以
base_URL在
docker-compose.yml文件中配置“ via”环境变量(简化):
version: '2'services: api: image: restapi frontend: image: angularapp environment: base_URL: https://api.test.example.com
通过此解决方案/解决方法,我可以通过配置启动docker容器时通过环境变量使用的REST
API端点,来将我的jenkins作业创建的docker映像部署到我所有环境(开发,登台,生产)中部署的特定版本。



