Не удается смонтировать файл как том в docker-compose после выходных, почему? - PullRequest
0 голосов
/ 04 марта 2019

Сегодня я получил новую ошибку в моей докер-среде.Я только начал свой проект (Web, Php и Postgres Containers), но контейнер Nginx не запустился, потому что site.conf, который я монтирую с томами, является «каталогом».

В прошлую пятницу все было хорошо и работало хорошо для меня.Я ничего не меняю в этом случае.; (

Я создал дополнительный файл docker-compose, где вы можете попытаться воспроизвести мою ошибку.

docker-compose Файл:

version: "3"

services:
  nginx:
    container_name: nginxCr
    image: nginx:1.15.7
    ports:
      - "80:80"
    volumes:
      - .:/var/www
      - ./site.conf:/etc/nginx/conf.d/site.conf

site.conf может бытьпуст для тестирования.

после docker-compose up -d Контейнер не запущен.

протоколирование докера nginxCr обеспечивает следующее:

2019/03/04 14:49:25 [крит] 1 # 1: pread () "/etc/nginx/conf.d/site.conf"ошибка (21: каталог) nginx: [crit] pread ()" /etc/nginx/conf.d/site.conf "ошибка (21: каталог)

Как-то начатьdocker (docker compose) для создания каталога вместо связывания моего конфигурационного файла.

У меня Windows 10 Pro (сборка 17134)

Docker версия 18.09.2, сборка 6247962

docker-compose версия 1.23.2, сборка 1110ad01

ОБНОВЛЕНИЕ: Проблема, кажется, только для Windows ... на моем Nix-сервере она работает нормально

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

решением было uncheck -> apply

, а затем

check -> apply Жесткий диск в «Shared Drivers» в Docker-Settings

* facepalm *

0 голосов
/ 04 марта 2019

Храните ваши www файлы в отдельной папке вместо ..Создайте файл композиции, как показано ниже:

services:
  nginx:
    container_name: nginxCr
    image: nginx:1.15.7
    ports:
      - "80:80"
    volumes:
      - ./www:/var/www
      - ./site.conf:/etc/nginx/conf.d/site.conf

Итак, в вашем Present Work Dir должна быть папка с именем www (чтобы вам не приходилось объединять тома)и файл с именем site.conf.Даже если это пустой файл, он должен быть в вашем каталоге.В противном случае docker создаст папку с таким именем.

Если у вас есть папка с именем site.conf, удалите эту папку и выполните touch site.conf, затем выполните docker-compose up -d

...