我正试图用码头部署一个堆栈。
下面是我的堆栈的工作方式:
这是我的船坞-合成人. This:
version: '3.2'
services:
website:
container_name: nyl2pronos-website
image: nyl2pronos-website
restart: always
build:
context: nyl2pronos_webapp
dockerfile: Dockerfile
volumes:
- ./logs/nginx-website:/var/log/nginx
expose:
- "80"
deploy:
replicas: 10
update_config:
parallelism: 5
delay: 10s
api:
container_name: nyl2pronos-api
build:
context: nyl2pronos_api
dockerfile: Dockerfile
image: nyl2pronos-api
restart: always
ports:
- 8001:80
expose:
- "80"
depends_on:
- db
- memcached
environment:
- DJANGO_PRODUCTION=1
volumes:
- ./data/api/uploads:/code/uploads
- ./data/api/static:/code/static
nginx-api:
image: nginx:latest
container_name: nyl2pronos-nginx-api
restart: always
expose:
- "80"
volumes:
- ./data/api/uploads:/uploads
- ./data/api/static:/static
- ./nyl2pronos_api/config:/etc/nginx/conf.d
- ./logs/nginx-api:/var/log/nginx
depends_on:
- api
nginx-proxy:
image: nginx:latest
container_name: nyl2pronos-proxy
restart: always
ports:
- 80:80
- 443:443
volumes:
- ./proxy:/etc/nginx/conf.d
- /etc/letsencrypt:/etc/letsencrypt
- ./logs/nginx-proxy:/var/log/nginx
deploy:
placement:
constraints: [node.role == manager]
depends_on:
- nginx-api
- website
当我使用码头-组成时,一切都很好。但是,当我尝试使用进行部署时,部署--compose=docker-come.ymlprod。我的nginx配置文件找不到不同的上游。
这是我的服务nginx-api提供的错误。
2019/03/23 17:32:41 [emerg] 1#1: host not found in upstream "api" in /etc/nginx/conf.d/nginx.conf:2
见下面我的nginx.conf
upstream docker-api {
server api;
}
server {
listen 80;
server_name xxxxxxxxxxxxxx;
location /static {
autoindex on;
alias /static/;
}
location /uploads {
autoindex on;
alias /uploads/;
}
location / {
proxy_pass http://docker-api;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
如果你发现我的配置有问题,或者我能做的更好,请告诉我!
发布于 2019-03-24 18:44:39
之所以发生这种情况,是因为nginx-api
服务在api
服务之前就已启动。
但是我添加了depends_on
选项?
您是对的,这个选项应该适用于docker-compose up
案例。但不幸的是,没有出现在docker stack deploy
上,也没有像文档所说的那样:
在部署具有版本3组合文件的群集模式中的堆栈时,将忽略depends_on选项。
,好吧,那我现在能做什么?
没什么。其实不是虫子-
码头群节点(您的堆栈服务)应该在错误时自动恢复。(这就是为什么定义restart: always
选项的原因)。所以不管怎么说,这对你都有用。
如果您只使用撰写文件来部署堆栈,而不是在docker-compose up
上使用--您可以完全删除depends_on
选项,这对停靠堆栈没有任何意义。
https://stackoverflow.com/questions/55318546
复制相似问题