docker-stack.yml无效的卷types绑定
这是我的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/nginx
当我运行这个下面的堆栈时,我得到了mysql和nginx这个错误“types”绑定“的无效安assembly置:绑定源path不存在”
我不知道我的代码有什么问题。
bind
是用于将主机上的目录(或文件)挂载到容器中的挂载types。 所有的卷都是这样设置的。 所以你的一个源目录(或文件) 在主机上不存在。 检查每个这些:
- ./db/data
- ./db/logs
- ./db/config
- ./web
- 。/码
- ./site.conf
- 在/ etc / letsencrypt
- ./nginx/log
您可以执行ls -ld ./db/data ./db/logs ./db/config ./web ./code ./site.conf /etc/letsencrypt ./nginx/log >/dev/null
并查看错误信息找出哪一个。
请考虑使用dockerconfiguration和docker机密来代替卷。
version: "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.key