Angular Docker运行时环境

时间:2018-12-19 16:23:28

标签: angular typescript docker

我有一个 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

2 个答案:

答案 0 :(得分:1)

您可以在构建docker映像时使用ENV关键字,或者在运行映像时使用--env。

docker run command with env

答案 1 :(得分:0)

其他方法是创建一个属性文件,您可以在执行--env-file命令时使用docker run标志进行引用,如下所示:

docker run -d --env-file ENV_FILE_NAME IMAGE_NAME

通过属性文件,可以轻松在docker映像中添加或删除env变量。

请确保该文件与您执行docker run命令的目录相同。