所以我有:
version: "3.6"
services:
nginx:
image: nginx
app:
image: node:latest
我的nginx配置是:
upstream project_app {
server app:4000;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://project_app;
}
[为了在不停机的情况下更新容器(滚动更新),我首先将app
服务升级为2:
docker-compose up -d --no-deps --scale app=2 --no-recreate app
它将沿着project_app_1
创建project_app
。
但是在此步骤中,即使新的project_app_1
容器准备就绪,所有流量都将流向以前的容器project_app
。
要同时使用它们,我需要运行docker-compose restart nginx
。
现在,流量是到project_app
和project_app_1
的路由器,这真的很酷。
我现在准备杀死现在已经过时的project_app
。
我的问题是:
project_app_1
还是有点自动?http://app:4000
起作用的事实是因为DNS主机名配置,对吗?在哪里可以了解更多?谢谢
PS:如果您对我使用的整个脚本感到好奇,我将其报告为on the associated github issue。
您可以使用:
upstream project_app {
server app:4000 down;
server app1:4000 down;
}
如果应用程序关闭,则跳至app1,如果应用程序备份,请使用它。