我有一个 angular 应用程序,该应用程序在docker容器中与nginx一起运行。 Docker映像在私有Docker Hub中发布。现在,我想将环境从docker传递到已编译的角度应用程序。当时我创建了一个config.json
和一个ConfigService
,它们会读出文件。该文件可以在Docker卷上更改。不幸的是,我不知道如何在模块中使用环境变量。
@NgModule({
imports: [
...
AgmCoreModule.forRoot({
apiKey: environment.system.googleMaps.apiKey // old way
}),
...
],
declarations: [
...
],
providers: [
...
ConfigService
...
]
})
export class ContractsModule {}
此外,这只是一种解决方法。完美的是使用docker环境。有什么想法吗?
我认为这是一种好方法:https://stackoverflow.com/a/49349963/8581092。
答案 0 :(得分:1)
您可以在构建docker映像时使用ENV关键字,或者在运行映像时使用--env。
答案 1 :(得分:0)
其他方法是创建一个属性文件,您可以在执行--env-file
命令时使用docker run
标志进行引用,如下所示:
docker run -d --env-file ENV_FILE_NAME IMAGE_NAME
通过属性文件,可以轻松在docker映像中添加或删除env变量。
请确保该文件与您执行docker run
命令的目录相同。