我有一个由后端和前端组成的Web服务,在前端中,我使用了一个API uri,它可以根据部署服务的环境而变化。

使用webpack's EnvironmentPlugin,我可以简单地使用其他环境变量来构建源代码。该插件允许我在javascript中使用process.env,这在开发阶段很方便,但是在 bundle 前端的代码后,process.env在 bundle 时将与给定的环境变量保持不变。

问题是,我在CI管道上为Web服务构建了一个docker镜像,但是直到稍后对其进行部署之前,我不知道API uri。

如何根据环境变量有效地更改API uri?

最佳答案

您有两种选择来传递环境变量,一种是通过文件

docker run --env-file ./env.list ubuntu bash

另一种是通过命令行使用docker run命令的-e选项。您可以堆叠-e选项以传递多个环境变量。

您在dockerfile中拥有的功能之一就是能够声明条目。这样,您可以执行以下操作:
  • 通过docker run cmdline设置环境数据(通过上面的信息)
  • 脚本中的
  • 获取环境信息
  • 最后,使用sed
  • 之类的脚本在脚本中使用它来修改包含uri数据的任何文件

    09-25 16:23
    查看更多