我有一个 Angular 应用程序,我试图从应用程序外部(即从 docker compose 文件)设置环境变量。
我指的是下面的文章
https://codinglatte.com/posts/angular/using-os-environment-variables-in-angular-with-docker/
码头工人-compose.yml
version: '3'
services:
tomcat-server:
image: "tomcat:latest"
ports:
- "8071:8080"
environment:
- API_URL=http://demo-production.com
当我执行以下命令时,我什至可以看到设置的环境变量
docker exec -it <dockerName> sh
env
但不知何故,Angular 应用程序没有收到该值,下面是我的 Angular 应用程序代码,根据上面的文章
环境.prod.ts
export const environment = {
production: true,
API_URL: $ENV.API_URL,
TEST_ENV: 'testing'
// API_URL: 'http://production.com'
};
打字.d.ts
declare var $ENV: Env;
interface Env {
API_URL: string
}
自定义 webpack.config.js
const webpack = require('webpack');
module.exports = {
plugins: [
new webpack.DefinePlugin({
$ENV: {
API_URL: JSON.stringify(process.env.API_URL)
}
})
]
};
我用来创建构建的命令
ng build --configuration=production --base-href=/demoapp/
我无法在这里找出问题,因为 docker 文件中设置的环境值没有反映在我的应用程序中。
我可以在这里得到一些帮助吗?