我想在 docker-swarm 堆栈文件中为我的网络提供一个别名。
目前,堆栈文件看起来像
version: '3'
networks:
mybridge:
services:
web:
restart: always
build: ./web
image: shivanand3939/web
expose:
- "8000"
volumes:
- ./output:/usr/src/app/static
command: /usr/local/bin/gunicorn -w 2 -b :8000 --access-logfile - classifierv2RestEndPoint_ridge_NB:create_app()
networks:
mybridge:
aliases:
- web
deploy:
replicas: 2
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
nginx:
restart: always
build: ./nginx/
image: shivanand3939/nginx
ports:
- "80:80"
volumes:
- /www/static
networks:
- mybridge
deploy:
replicas: 1
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
viz:
image: dockersamples/visualizer
ports:
- 8080:8080/tcp
volumes:
- /var/run/docker.sock:/var/run/docker.sock
deploy:
placement:
constraints: [node.role == manager]
当我运行这个文件时
docker stack deploy -c docker-stack.yml classifierbot
我得到以下输出
Creating network classifierbot_default
Creating network classifierbot_mybridge
Creating service classifierbot_viz
Creating service classifierbot_web
Creating service classifierbot_nginx
网络名称从mybridge更改为classifierbot_mybridge。因此 nginx 和 web 这两个服务无法相互通信。
所以,我的问题是如何给我的网络起一个别名也可以称为 mybridge
编辑:
一种方法是添加
networks:
mybridge:
external:
name: mybridge
并在堆栈文件之外创建 mybridge 但它违背了目的,对吗?因为我无法在单个堆栈文件中完成所有操作