@askhat

Как поставить ownCloud за Nginx в Docker?

Мне нужно доступаться до инстанса ownCloud через Nginx, и оба они в отдельных Docker контейнерах. Я создал docker-compose.yml:
nginx:
  image: nginx
  ports:
    - 80:80
  volumes:
    - ./nginx.conf:/etc/nginx/nginx.conf
  links:
    - owncloud
owncloud:
  image: owncloud
  ports:
    - 6789:80
  volumes:
    - ~/ownCloud:/var/www/html/data

И соответствующий nginx.conf для проксификации запросов:
http {
  server {
    listen 80 default;
    server_name docker.dev;

    location / {
      proxy_pass http://127.0.0.1:6789;
      proxy_buffering off;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  }
}
events {}

Кажется всё верно, но Nginx логирует следующее при попытке доступиться на docker.dev
[error] 6#6: *8 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.99.1, server: docker.dev

Что я делаю не так?
  • Вопрос задан
  • 1508 просмотров
Решения вопроса 1
@askhat Автор вопроса
Проблема в том, что proxy_pass http://127.0.0.1:6789; смотрит на собственный контейнер, а не на сервис owncloud. К счастью docker-compose добавляет адреса сервисов в /etc/hosts, в чём можно убедиться выполнив команду docker exec nginx cat /etc/hosts, там будет строчка 172.17.0.2 owncloud 8a567934bb13.

Значит если изменить docker-compose.yml, заменив ports: - 6789:80 на expose: - 80, и nginx.conf, заменив значение proxy_pass на http://owncloud; — всё заработает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nazarpc
@nazarpc
Open Source enthusiast
Возьмите лучше вот это: https://github.com/nazar-pc/docker-webserver-apps/...
Там и процедура обновления описана (что вам в любом случае придется делать), и скорфигурировано всё как положено (включая LibreOffice для поддерки MS Office документов).
Базируется на https://github.com/nazar-pc/docker-webserver, что значит - есть готовые скрипты для резервного копирования и восстановления.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы