Docker сочиняет с nginx продолжает показывать страницу приветствия

NaturalBornCamper спросил: 12 мая 2018 в 03:50 в: docker

Я новичок в docker и пробовал простейший docker-compose.yml, показывая приветственную мировую страницу, которая будет построена поверх этого, в конечном итоге с полным стекем LEMP , который будет иметь тот же конфиг, что и мой сервер. Однако большинство учебников устарели и существует так много способов использования docker , что я не могу найти его, используя только Docker compose v3, который по-прежнему актуальен. Я проверил документы, и это ужасно запутывает и для новичков, и пыталось заставить его работать последние 5 часов, поэтому я подумал, что попрошу SO.

docker-compose.yml

version: '3'
services:
  web:
    image: bitnami/nginx:1.10.3-r0 #using this version as it's the same on my server
    volumes:
      - "./test.conf:/etc/nginx/sites-available/test.local"
      - "./test.conf:/etc/nginx/sites-enabled/test.local"
      - "./code:/var/www/html" #code contains only a basic index.html file
    ports:
      - "80:80"

test.conf

server {
    listen 80;
    listen [::]:80;
    server_name test.local;    index index.html; #Only a basic helloworld index.html file
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/html;
}

Нужен ли мне файл Dockerfile с этим? В учебниках не упоминается, что это необходимо.

ПРИМЕЧАНИЕ.
Пробовал добавить том

- "./default.conf:/etc/nginx/conf.d/default.conf"

, но ничего не меняется и страница приветствия все еще загружается, а с помощью nginx: latest я получаю очень многословную ошибку, содержащую эту фразу: "unknown: пытаетесь ли вы установить каталог в файл (или наоборот)? если указанный путь к узлу существует и является ожидаемым типом".

ОБНОВЛЕНИЕ about docker-compose.yml:

  • Без строки "./code:/usr/share/nginx/html", папка /usr/share/nginx/html содержит файл index.html по умолчанию (ожидается)
  • С помощью строки "./code:/usr/share/nginx/html", /usr/share/nginx/html EMPTY!
  • С помощью строки "./:/usr/share/nginx/html" в папке /usr/share/nginx/html есть и пустая папка "code", и куча случайные тестовые файлы, которые я удалил некоторое время назад.

Между попытками я запускаю свой сценарий сброса, чтобы убедиться, что я начинаю новый:

docker rm $(docker ps -a -q)
docker rmi $(docker images -q) --force
docker volume rm $(docker volume ls -q)

Запуск docker inspect <container> возвращает это для тома, не уверен, что это нормально, что тип "привязывается" как к привязке, а не к vo Луме.

"Mounts": [
    {
        "Type": "bind",
        "Source": "/e/DEV/sandbox/docker",
        "Destination": "/usr/share/nginx/html",
        "Mode": "rw",
        "RW": true,
        "Propagation": "rprivate"
    }
],

5 ответов

NaturalBornCamper ответил: 12 мая 2018 в 07:26
Спасибо за этот подробный ответ! Я уже знал это, но я все еще пытался. К сожалению, сообщение по умолчанию все еще отображается. Я обнаружил кое-что очень странное, однако, проверьте последнее обновление в моем вопросе, я действительно смущен
lvthillo ответил: 12 мая 2018 в 03:49
Можете ли вы создать код каталога только с индексным файлом и смонтировать его так: ./code:/usr/share/nginx/html и использовать докеры-компоновку вверх -build, чтобы, безусловно, перестроить ваш образ. Убедитесь, что ваша локальная среда тоже чисто
NaturalBornCamper ответил: 13 мая 2018 в 11:16
Просто попробовал с --build, тот же результат, что и в моем вопросе .. html-папка пуста на контейнере. Я запускаю эти команды между испытаниями, чтобы очистить все, и ничего не меняет: "docker rm $ (docker ps -a -q)", "docker rmi $ (docker images -q) --force", "docker volume rm $ (объем докеров ls -q)"
NaturalBornCamper ответил: 13 мая 2018 в 11:16
Я думаю, что мой докер может быть поврежден, но это новая установка, поэтому я не понимаю и не знаю, где спросить
lvthillo ответил: 13 мая 2018 в 11:36
вы можете попробовать это? :: docker-compose rm --all & & & докер-композит pull & & docker-compose build --no-cache & & & & docker-compose up -d -force-recreate & & & &