Este es mi archivo docker-stack.yml
version: "3" services: mysql: image: mysql:latest deploy: replicas: 1 update_config: parallelism: 1 restart_policy: condition: on-failure ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: <Censored> MYSQL_USER: <Censored> MYSQL_PASSWORD: <Censored> volumes: - ./db/data:/var/lib/mysql - ./db/logs:/var/log/mysql - ./db/config:/etc/mysql/conf.d php: image: wiput1999/php volumes: - ./web:/web nginx: image: nginx:latest ports: - "80:80" - "443:443" volumes: - ./code:/code:ro - ./site.conf:/etc/nginx/conf.d/default.conf - /etc/letsencrypt:/etc/letsencrypt - ./nginx/log:/var/log/nginxCuando ejecuto esta siguiente pila, obtuve mysql y nginx con este error "Configuración de montaje no válida para el tipo" enlace ": la ruta de origen del enlace no existe"
No tengo idea de qué está mal con mi código.
bind es un tipo de montaje que se usa para montar un directorio (o un archivo) en el host en el contenedor. Todos sus volúmenes están configurados así. Entonces, uno de sus directorios (o archivos) de origen no existe en el host . Revisa cada uno de estos:
Puede ejecutar ls -ld ./db/data ./db/logs ./db/config ./web ./code ./site.conf /etc/letsencrypt ./nginx/log >/dev/null y mirar el mensaje de error para averiguar cuál.
Considere usar configuraciones de ventana acoplable y secretos de ventana acoplable en lugar de volúmenes.
version: "3.3" services: nginx: configs: - source: nginx_vhost target: /etc/nginx/conf.d/default.conf secrets: - ssl_private_key ... configs: nginx_vhost: file: ./site.conf secrets: ssl_private_key: file: /etc/letsencrypt/private.keyhttps://docs.docker.com/engine/swarm/configs/ y https://docs.docker.com/compose/compose-file/#configs