Не удается настроить обратный прокси-сервер nginx с поддержкой php в docker compose - PullRequest
1 голос
/ 11 октября 2019

Я пытался настроить обратный прокси-сервер nginx с поддержкой php в docker compose, который запускает службу приложения на порту 3838. Я хочу, чтобы приложение запускало прокси-сервер nginx на порту 80. Я просмотрел несколько учебных пособий в Интернете, но ни одногоиз них помог мне решить проблему. Я также пытался следовать этому https://github.com/dmitrym0/simple-lets-encrypt-docker-compose-sample/blob/master/docker-compose.yml, но это не сработало. Вот мой текущий файл составления докера.

docker-compose.yml

version: '3'
services:
 nginx-proxy:
   image: jwilder/nginx-proxy
   ports:
     - "82:80"
     - "444:443"
   volumes:
     - "/etc/nginx/vhost.d"
     - "/usr/share/nginx/html"
     - "/var/run/docker.sock:/tmp/docker.sock:ro"
     - "/etc/nginx/certs"

app:
 build:
  context: .
  dockerfile: ./app/Dockerfile
 image: rocker/shiny
 container_name: docker-app
 restart: always
 ports:
  - 3838:3838

Я что-то упустил. Иногда я вижу переменные окружения virtual_host в файле docker-compose. Это нужно? Также мне нужно вручную настраивать файлы конфигурации nginx и прикреплять их к докер-файлу jwilder / nginx-proxy? Я новичок в докере, и мне действительно нужна помощь.

1 Ответ

1 голос
/ 13 октября 2019

Пожалуйста, обратитесь к разделу Несколько портов официальных документов nginx-proxy . В вашем случае, помимо установки обязательной переменной VIRTUAL_HOST env (без этого контейнер не будет обратно прокси-сервером сервис nginx-proxy), вы должны установить переменную VIRTUAL_PORT, так как nginx-proxy по умолчанию будет иметь значениеслужба работает на порту 80, но ваша app служба привязана к порту 3838.

Попробуйте этот файл docker-compose.yml, чтобы проверить, работает ли он:

version: "3"

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

  app:
    build:
      context: .
      dockerfile: ./app/Dockerfile
    image: rocker/shiny
    container_name: docker-app
    restart: always
    expose:
      - 3838
    environment:
      - VIRTUAL_HOST=app.localhost
      - VIRTUAL_PORT=3838
...