如何为每个集装箱芹菜工人使用单独的集装箱服务



我正在使用docker-compose来运行多个芹菜工作程序,并努力使工作程序以我想要的方式使用此zeta0/alpine-tor旋转代理池映像。

目前我的docker-compose.yml是这样的:

version: '3'
services:
worker:
build:
context: .
dockerfile: dockerfile
volumes:
- type: bind
source: .
target: /app
links:
- rabbit
- tor
depends_on:
- rabbit
- tor
rabbit:
hostname: rabbit
image: rabbitmq:latest
environment:
- RABBITMQ_DEFAULT_USER=myuser
- RABBITMQ_DEFAULT_PASS=mypassword
ports:
- "5672:5672"
tor:
hostname: tor
image: zeta0/alpine-tor
environment:
- tors=25
- privoxy=1
- new_circuit_period=10
ports:
- "8118:8118"
- "2090:2090"

然后我运行:docker-compose up --scale worker=5

问题是所有的工人都在使用相同的tor服务。我想为每个工人提供一个单独的高山托儿服务。这可能与docker-compose有关吗?如果是,我应该做些什么来实现这一点?

您可以尝试将worker作为5个不同的docker-compose服务运行(但都使用相同的worker映像(,也可以将tor服务作为5个相同的docker-compose服务来运行(同样,使用同一个tor映像(。

对于5个worker服务中的每一个,您都可以传入一个环境变量,指示您希望工作人员与哪个tor服务进行通信。然后,在您的worker中,您可以在torURL中使用此环境变量。

所以你的docker-compose.yml看起来是这样的(为了简洁起见,删除了一些配置(:

version: '3'
services:
worker_1:
environment:
- TOR_SERVICE=tor_1
...
worker_2:
environment:
- TOR_SERVICE=tor_2
...
worker_3:
environment:
- TOR_SERVICE=tor_3
...
worker_4:
environment:
- TOR_SERVICE=tor_4
...
worker_5:
environment:
- TOR_SERVICE=tor_5
...
rabbit:
hostname: rabbit
image: rabbitmq:latest
environment:
- RABBITMQ_DEFAULT_USER=myuser
- RABBITMQ_DEFAULT_PASS=mypassword
ports:
- "5672:5672"
tor_1:
...
tor_2:
...
tor_3:
...
tor_4:
...
tor_5:
...

相关内容

  • 没有找到相关文章

最新更新