我有这个dockr复合的。
version: '3.8'
services:
mongo:
image: mongo
restart: always
env_file:
- ./.env
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD}
volumes:
- mongo-db:/data/db
ports:
- "27017:27017"
node-app:
depends_on:
- mongo
image: USERNAME/PRIVATE_REPO_NAME:0.1
env_file:
- ./.env
deploy:
replicas: 2
placement:
max_replicas_per_node: 1
update_config:
parallelism: 1
delay: 10s
resources:
limits:
cpus: '0.50'
memory: 512M
reservations:
cpus: '0.25'
memory: 256M
nginx:
depends_on:
- node-app
image: nginx:stable-alpine
ports:
- "80:80"
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
mysql:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_USER: admin
MYSQL_PASSWORD: password
MYSQL_ALLOW_EMPTY_PASSWORD: 1
MYSQL_DATABASE: db
ports:
- 3306:3306
- 33060:33060
volumes:
- mysql-db:/var/lib/mysql
adminer:
image: adminer
restart: always
ports:
- 8080:8080
depends_on:
- mysql
portainer:
image: portainer/portainer-ce:latest
restart: unless-stopped
security_opt:
- no-new-privileges:true
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./portainer-data:/data
ports:
- 9000:9000
volumes:
mongo-db:
mysql-db:和码头-合成-生产。
version: '3.8'
services:
node-app:
build:
context: .
target: production
environment:
- NODE_ENV=production
command: npm startDockerfile
FROM node:14 as base
FROM base as production
WORKDIR /app
COPY package.json .
RUN npm install --only=production
COPY . .
EXPOSE 4000
FROM base as development
....Nginx default.conf
server { # simple reverse-proxy
listen 80;
# pass requests for dynamic content to rails/turbogears/zope, et al
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://node-app:4000;
proxy_redirect off;
}
}我构建映像并将其推送到专用码头回购,然后在VPS (1 vCPU和1 GM )上拉出映像,然后运行
docker stack deploy -c docker-compose.yml -c docker-compose-prod.yml nodestack --with-registry-auth但是我运行docker stack ps nodestack我得到
is7hybeurfgb nodestack_adminer.1 adminer:latest docker-desktop Running Running about a minute ago
l92hsxrnpznh nodestack_mongo.1 mongo:latest docker-desktop Running Preparing about a minute ago
2sg4x4lzk5uy nodestack_mysql.1 mysql:latest docker-desktop Running Running 2 minutes ago
88vnttgk5grb nodestack_nginx.1 nginx:stable-alpine docker-desktop Running Running 2 minutes ago
7l5bm8tnjatv nodestack_node-app.1 USERNAME/PRIVATE_REPO_NAME:0.1 docker-desktop Running Running 2 minutes ago
4xn3odusd265 nodestack_node-app.2 USERNAME/PRIVATE_REPO_NAME:0.1 Running Pending 2 minutes ago "no suitable node (max replica…"
o38en2hwnikp nodestack_portainer.1 portainer/portainer-ce:latest docker-desktop Running Running about a minute ago而且它不会用新的更新来重新创建节点。为什么我要获得no suitable node (max replicas per node limit exceed),以及如何修复它以保持每个副本中只有一个节点运行两个副本?
发布于 2022-07-25 23:22:53
我认为您混淆了群集集群中的节点和容器中的NodeJS实例。他们之间没有任何关系。从这一产出:
7l5bm8tnjatv nodestack_node-app.1 USERNAME/PRIVATE_REPO_NAME:0.1 docker-desktop Running Running 2 minutes ago
4xn3odusd265 nodestack_node-app.2 USERNAME/PRIVATE_REPO_NAME:0.1 Running Pending 2 minutes ago "no suitable node (max replica…"看起来,您在docker-desktop上运行,其中包含一个节点群集群。你可以在docker node ls上看到这一点。若要在桌面上部署多个容器,请删除约束:
max_replicas_per_node: 1或设置多个群集节点(VM)并部署到该集群。
https://stackoverflow.com/questions/73116115
复制相似问题