Запуск ddev: сбой веб-контейнера (macOS Catalina использует папку «Документы» для сайта)

при вводе ddev start в терминале я получаю сообщение об ошибке

Failed to start xxx: web container failed: log=, err=container exited, please use 'ddev logs -s web` to find out why it failed 

журнал ошибок идет

...
+ disable_xdebug
Disabled xdebug
+ ls /var/www/html
ls: cannot open directory '/var/www/html': Stale file handle
/var/www/html does not seem to be healthy/mounted; docker may not be mounting it., exiting
+ echo '/var/www/html does not seem to be healthy/mounted; docker may not be mounting it., exiting'
+ exit 101

и я не знаю, что делать здесь. каталога /var/www не существует и его создание не помогает. поиск в Интернете не приносит никакой ценной информации, единственное, что я нашел, это это

ls /var/www/html >/dev/null || (echo "/var/www/html does not seem to be healthy/mounted; docker may not be mounting it., exiting" && exit 101)

но я понятия не имею, что это значит, и не объясняет, что делать.

my config.yaml

APIVersion: v1.12.2
name: xxx
type: php
docroot: public
php_version: "7.2"
webserver_type: nginx-fpm
router_http_port: "80"
router_https_port: "443"
xdebug_enabled: false
additional_hostnames: []
additional_fqdns: []
mariadb_version: "10.2"
nfs_mount_enabled: true
provider: default
use_dns_when_possible: true
timezone: ""

docker-compose.yaml

web:
container_name: ddev-${DDEV_SITENAME}-web
build:
  context: '/Users/jnz/Documents/xxx/.ddev/.webimageBuild'
  args:
    BASE_IMAGE: $DDEV_WEBIMAGE
    username: 'jb'
    uid: '504'
    gid: '20'
image: ${DDEV_WEBIMAGE}-built
cap_add:
  - SYS_PTRACE
volumes:
  - type: volume
    source: nfsmount
    target: /var/www/html

    volume:
      nocopy: true

  - ".:/mnt/ddev_config:ro"
  - ddev-global-cache:/mnt/ddev-global-cache

  - ddev-ssh-agent_socket_dir:/home/.ssh-agent


restart: "no"
user: "$DDEV_UID:$DDEV_GID"
hostname: xxx-web

links:
  - db:db

# ports is list of exposed *container* ports
ports:
  - "127.0.0.1:$DDEV_HOST_WEBSERVER_PORT:80"
  - "127.0.0.1:$DDEV_HOST_HTTPS_PORT:443"
environment:
  - DOCROOT=$DDEV_DOCROOT
  - DDEV_PHP_VERSION=$DDEV_PHP_VERSION
  - DDEV_WEBSERVER_TYPE=$DDEV_WEBSERVER_TYPE
  - DDEV_PROJECT_TYPE=$DDEV_PROJECT_TYPE
  - DDEV_ROUTER_HTTP_PORT=$DDEV_ROUTER_HTTP_PORT
  - DDEV_ROUTER_HTTPS_PORT=$DDEV_ROUTER_HTTPS_PORT
  - DDEV_XDEBUG_ENABLED=$DDEV_XDEBUG_ENABLED
  - DOCKER_IP=127.0.0.1
  - HOST_DOCKER_INTERNAL_IP=
  - DEPLOY_NAME=local
  - VIRTUAL_HOST=$DDEV_HOSTNAME
  - COLUMNS=$COLUMNS
  - LINES=$LINES
  - TZ=
  # HTTP_EXPOSE allows for ports accepting HTTP traffic to be accessible from <site>.ddev.site:<port>
  # To expose a container port to a different host port, define the port as hostPort:containerPort
  - HTTP_EXPOSE=${DDEV_ROUTER_HTTP_PORT}:80,${DDEV_MAILHOG_PORT}:8025
  # You can optionally expose an HTTPS port option for any ports defined in HTTP_EXPOSE.
  # To expose an HTTPS port, define the port as securePort:containerPort.
  - HTTPS_EXPOSE=${DDEV_ROUTER_HTTPS_PORT}:80
  - SSH_AUTH_SOCK=/home/.ssh-agent/socket
  - DDEV_PROJECT=xxx
labels:
  com.ddev.site-name: ${DDEV_SITENAME}
  com.ddev.platform: ddev
  com.ddev.app-type: php
  com.ddev.approot: $DDEV_APPROOT

external_links:
- "ddev-router:xxx.ddev.site"

healthcheck:
  interval: 1s
  retries: 10
  start_period: 10s
  timeout: 120s

person honk31    schedule 19.02.2020    source источник
comment
Похоже, у вас нет общего каталога проекта в докере? Или перезапустить докер...   -  person rfay    schedule 20.02.2020
comment
@rfay перезапуск докера/компьютера здесь не помогает. если бы проект не был передан докеру, как бы я его добавил?   -  person honk31    schedule 20.02.2020
comment
Вы не указываете, с какой ОС вы работаете, но с Windows или macOS у вас есть раздел общего доступа в конфигурации графического интерфейса Docker. Если вы работаете в Windows, вы должны предоставить общий доступ ко всему диску (например, к диску C:). Если вы используете macOS, вам нужно указать путь (или родитель пути), где находится ваш проект, например /Users   -  person rfay    schedule 21.02.2020
comment
О, кроме того, если вы используете macOS Catalina, документы обычно ограничены по умолчанию, поэтому вам может потребоваться предоставить Docker полный доступ к диску, чтобы это работало. Или, если вы используете NFS, см. ddev.readthedocs. io/en/stable/users/performance/ последний абзац о полном доступе к диску для nfsd. Для начала используйте каталог, которого нет в Документах.   -  person rfay    schedule 21.02.2020
comment
спасибо @rfay. Я запускаю macOS Catalina и работаю с документами. забавно, что другие проекты работают нормально. но этот конкретный проект принадлежит кому-то другому... в любом случае, я попробую его в другом каталоге и сообщу здесь.   -  person honk31    schedule 21.02.2020


Ответы (1)


Итак, как указал @rfay в комментариях, проблема была вызвана ограничениями каталога macOS catalina.

мне пришлось перейти в настройки системы> безопасность> конфиденциальность> файлы и папки и добавить /sbin/nfsd. теперь он имеет полный доступ к HD.

кроме того, я предоставил докеру доступ к documents.

теперь ddev запущен и работает даже в папках внутри User/xxx/Documents.

person honk31    schedule 21.02.2020