У меня проблема с кластером машин arm64, которые не запускают контейнеры. Все они остаются как 0/2, 0/1 и т. д. Похоже, это связано с настройкой расписания для их развертывания на amd64 вместо arm64, но я не могу найти, где это изменить (я предполагаю, что для этого есть конфигурация docker-compose).
$ sudo docker service ls 1 ↵
ID NAME MODE REPLICAS IMAGE PORTS
t761cgtu2n4o persistence_mariadb replicated 0/1 mojlighetsministeriet/mariadb-arm64:latest *:3306->3306/tcp
l1gxlfuwtfs9 services_email replicated 0/2 mojlighetsministeriet/email-arm64:latest
6o1ud2la0eig services_groups replicated 0/2 mojlighetsministeriet/groups-arm64:latest
При проверке сервиса я получаю:
"Placement": {
"Platforms": [
{
"Architecture": "amd64",
"OS": "linux"
}
]
},
Я использую файлы docker-compose для настройки служб, как я могу пометить образы для запуска на машинах arm64 (образы нормально запускаются на машинах arm64 с $ docker run)?
Это пример конфига для одного сервиса:
email:
image: mojlighetsministeriet/email-arm64
secrets:
- smtp-password
environment:
SMTP_HOST: smtp.example.com
SMTP_PORT: 587
SMTP_EMAIL: [email protected]
deploy:
replicas: 2
update_config:
parallelism: 1
delay: 10s
failure_action: continue
monitor: 60s
max_failure_ratio: 0.3
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
labels:
- traefik.docker.network=proxy
- traefik.port=80
- traefik.enable=true
networks:
- proxy