docker-stack.yml 无效的卷类型绑定
docker-stack.yml invalid volume type bind
这是我的 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 并出现此错误
"invalid mount config for type "bind": 绑定源路径不存在"
我不知道我的代码有什么问题。
bind
是一种挂载类型,用于将主机上的目录(或文件)挂载到 到 容器中。您所有的卷都是这样设置的。因此,您的源目录(或文件)之一不存在 主机 上。检查每一项:
- ./db/data
- ./db/logs
- ./db/config
- ./web
- ./code
- ./site.conf
- /etc/letsencrypt
- ./nginx/log
您可以执行 ls -ld ./db/data ./db/logs ./db/config ./web ./code ./site.conf /etc/letsencrypt ./nginx/log >/dev/null
并查看错误消息以找出是哪一个。
请考虑使用 docker 配置和 docker 机密代替卷。
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.key
https://docs.docker.com/engine/swarm/configs/ and https://docs.docker.com/compose/compose-file/#configs
这是我的 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 并出现此错误 "invalid mount config for type "bind": 绑定源路径不存在"
我不知道我的代码有什么问题。
bind
是一种挂载类型,用于将主机上的目录(或文件)挂载到 到 容器中。您所有的卷都是这样设置的。因此,您的源目录(或文件)之一不存在 主机 上。检查每一项:
- ./db/data
- ./db/logs
- ./db/config
- ./web
- ./code
- ./site.conf
- /etc/letsencrypt
- ./nginx/log
您可以执行 ls -ld ./db/data ./db/logs ./db/config ./web ./code ./site.conf /etc/letsencrypt ./nginx/log >/dev/null
并查看错误消息以找出是哪一个。
请考虑使用 docker 配置和 docker 机密代替卷。
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.key
https://docs.docker.com/engine/swarm/configs/ and https://docs.docker.com/compose/compose-file/#configs