0

我正在开发一个基于 React 的网络应用程序。这个应用程序应该能够在生产中作为 Docker 容器运行。我在我的存储库中创建了一个.env.development文件,我可以在其中配置应用程序将连接到的 API 端点。

REACT_APP_API_BASE_URL=http://localhost:8180/api

以这种方式在我的本地机器上运行容器可以正常工作。

现在我想在 Docker 堆栈中运行这个容器,所以我配置了一个docker-compose.yml.

  1. 我应该在哪里以及如何存储/管理上述配置,以便 Docker 堆栈能够获取它?有没有类似“推荐方式”的东西?
  2. environment在 的部分中定义此参数是否足够docker-compose.yml?还是我需要使用 Docker config 甚至 Docker Secrets 之类的东西?
4

1 回答 1

1

如果我们订阅了 build-once-run-anywhere 方法,那么您是对的,我们的目标应该是构建一次容器并通过修改其环境变量在任何环境中运行它。

修改环境变量并不一定意味着将值(如 API 密钥)直接传递给您的应用程序,您可以使用环境变量指向vaultetcd服务,并使用这些工具引导您的应用程序并构建您的配置文件.

我建议在您的容器中添加一个初始化层(使用),在触发ENTRYPOINT之前配置您的应用程序。CMD这可以是设置数据库连接、预热缓存或安装依赖项。

你当然可以用糟糕的入口点开枪打死自己。一定要查看一些流行的图像,看看它们是如何处理这些场景的——postgres是一个很好的选择。

于 2019-02-10T08:49:24.600 回答