Было две причины, по которым моя конфигурация не работала.
Во-первых, Docker не следует по символическим ссылкам , а каталог mysql
является символической ссылкой:
$ ls -al /usr/local/opt | grep mysql
lrwxr-xr-x 1 cameronhudson admin 22 Jan 23 17:42 mysql -> ../Cellar/mysql/8.0.13
Однако даже после использования пути без каких-либо символических ссылок, /databases/mywebsite.com
, я продолжал испытывать ту же ошибку no such file or directory
.
Я обнаружил, что если я изменил свой файл docker-compose.yml
, чтобы смонтировать этокаталог как безымянный том, я получил другую, более разумную ошибку:
version: "3.7"
services:
db:
image: mysql
volumes:
- /databases/mywebsite.com:/var/lib/mysql
Новая ошибка:
ERROR: for mycontainer_db_1 Cannot start service db: b'Mounts denied: \r\nThe path /databases/mywebsite.com\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.'
После я добавил этот путь в Docker Desktop , Я смог up
сервисов, используя мою первоначальную конфигурацию.Он также работал с type: none
, type: volume
, type: bind
или вообще не включал type
.