Почему в контейнере Docker Nginx по-прежнему отображается страница по умолчанию вместо предоставленного индексного файла? - PullRequest
0 голосов
/ 02 мая 2019

У меня есть этот вывод дерева для проекта Docker.

├── code
│   ├── index.php
│   └── style.css
├── docker-compose.yml
├── mariadb
│   ├── dbs
│   └── Dockerfile
└── nginx
    ├── Dockerfile
    ├── lemp.docker.conf
    └── nginx.conf

с содержимым nginx Dockerfile и обоими файлами conf, я, кажется, не смог понять, где я совершил ошибку.Пожалуйста, укажите.

Doginfile nginx

FROM ubuntu:16.04
ENV REFRESHED_AT YYYY-MM-DD
RUN apt-get -yqq update; apt-get -yqq install nginx
ADD lemp.docker.conf /etc/nginx/conf.d/
ADD nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

Конфигурация nginx CustomSite

server {
listen 0.0.0.0:80;
server_name _;
root /var/www/html;
index index.php index.html index.htm;
access_log /var/log/nginx/default_access.log;
error_log /var/log/nginx/default_error.log;
}

Конфигурация nginx

user www-data;
worker_processes 4;
pid /run/nginx.pid;
daemon off;
events { }
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
}

и, наконец, составьте файл

nginx:
 image: 'nginx:latest'
 ports:
  - '80:80'
 volumes:
  - ./code/:/var/www/html/
 links:
  - mariadb

mariadb:
 image: 'mariadb:latest'
 ports:
  - '3306:3306'
 volumes:
  - ./mariadb/dbs/:/var/lib/mysql/
 environment:
  - MYSQL_ROOT_PASSWORD=root.maria

1 Ответ

1 голос
/ 02 мая 2019

Я думаю, это потому, что default.conf все еще присутствует. Вы можете либо переписать его, либо удалить.

Удалить -

....
RUN apt-get -yqq update; apt-get -yqq install nginx
RUN  rm /etc/nginx/conf.d/default.conf
ADD lemp.docker.conf /etc/nginx/conf.d/
...

Переписать -

...
RUN apt-get -yqq update; apt-get -yqq install nginx
COPY lemp.docker.conf /etc/nginx/conf.d/default.conf
ADD nginx.conf /etc/nginx/nginx.conf
...

Другое дело, что вы не используете Dockerfile от nginx в своем докере, создающем YML-файл. Итак, я не вижу, чтобы ваш nginx Dockerfile где-либо использовался. Это может быть еще одна проблема. Сформировать файл нужно, чтобы он выглядел как-то ниже -

version: '3'

services:
  nginx:
    build:
      context: nginx
    ports:
      - '80:80'
    volumes:
      - ./code/:/var/www/html/
    links:
      - mariadb

  mariadb:
    image: 'mariadb:latest'
    ports:
      - '3306:3306'
    volumes:
      - ./mariadb/dbs/:/var/lib/mysql/
    environment:
      - MYSQL_ROOT_PASSWORD=root.maria
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...