docker - Docker为同一个服务提供不同的环境变量
问题描述
我目前正在用 python 构建一个网络爬虫。但是为了访问特定页面,我需要一个 API 密钥,并且该密钥在请求方面受到严格限制。所以,我的想法是创建 python 脚本并将 API 密钥设置为每个容器的环境变量。这样,我可以以更大的吞吐量进行抓取。
现在,我的问题:
我知道您可以通过设置环境变量,docker-compose.yml
但这样做不会使该文件可通过 git 上的公共存储库共享。有没有比通过撰写文件更好的方法来为每个容器设置环境变量?我正在考虑.env
文件,但这使它成为python脚本中的噩梦,因为我必须在我的文件夹中以不同的方式命名每个文件。
这就是我的撰写文件现在的样子
version: '3'
services:
user-list_1:
build: .
environment:
- API_KEY="1212_323131-23"
user-list_2:
build: .
environment:
- API_KEY="API_KEYFOR2"
解决方案
只需使用 中的env_file
选项docker-compose.yml
,它将直接为该容器设置环境变量。无需.env
在 python 中阅读 a 。代码如下所示:
version: '3'
services:
scraper-1:
build: .
ports:
- "9999:5000"
env_file:
- .env.container1
scraper-2:
build: .
ports:
- "8888:5000"
env_file:
- .env.container2
推荐阅读
- python - 在 Open3d 中从点云创建 rgbd_image
- python - 预处理后更新单词的字符索引
- java - 在 R.layout.activity_super_admin 上膨胀类 com.google.android.material.bottomnavigation.BottomNavigationView 时出错
- java - 父子关系的 JPA/Hibernate 映射
- python - 无法让 CNN 进行多类分类。抛出“logits 和标签必须具有相同的形状”
- javascript - foreach 仅适用于重复中的最后一个元素
- mysql - 在 ado 记录集中设置变量 - VBA
- javascript - 通过遍历数组来响应更改的元素文本
- pentaho - Pentaho Kettle 刷新 mondrian 缓存
- javascript - 在用户脚本中运行 XMLHttpRequest 时,“无法添加 CORS 标头 'Origin'”