Первый раз с помощью docker-compose. Попытка настроить контейнер Nginx в качестве веб-сервера и контейнера, в котором хранится мое приложение dotnetcore. Предполагается, что nginx передаст вызов на пустельгу. Оба изображения создаются и запускаются, но при обращении к "http://localhost:8080":
появляется ошибка
proxy_1 | 2019/05/12 16:39:45 [error] 6#6: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.19.0.1, server: , request: "GET / HTTP/1.1", upstream: "http://172.19.0.2:4000/", host: "localhost:8080"
Структура проекта следующая:
- Dockersingleproject
- Dockersingleproject / (приложение dotnetcore)
- * файлы приложения '
- DockerFile
- Nginx /
- докер-compose.yml
У меня сложилось впечатление, что проблема в том, что соединение между контейнером веб-сервера и контейнером приложений отказывается, но я не могу понять, почему. Ниже приложение Dockerfile:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /Dockersingleproject
COPY bin/Debug/netcoreapp2.2/publish .
ENV ASPNETCORE_URLS http://+:4000
EXPOSE 4000
ENTRYPOINT ["dotnet", "Dockersingleproject.dll"]
Файл докера приложения предоставляет порт 4000. Файл nginx.conf:
worker_processes 1;
events { worker_connections 1024; }
http {
sendfile on;
upstream docker-nginx {
server app:4000;
}
server {
listen 8080;
location / {
proxy_pass http://docker-nginx;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
proxy_buffers 8 16k; # Buffer pool = 8 buffers of 16k
proxy_buffer_size 16k; # 16k of buffers from pool used for headers
}
}
}
Сервер прослушивает порт 8080 и передает запрос на порт 4000 в серверном «приложении». Который определен в файле docker-compose:
version: '2'
services:
app:
build:
context: ./Dockersingleproject
dockerfile: Dockerfile
ports:
- "4000:4000"
proxy:
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- "8080:8080"
links:
- app
Служба приложений отображает запросы порта 4000 на 4000, и в моей голове это должно работать.
IP-адрес контейнера nginx: 172.19.0.3
IP-адрес контейнера приложения: 172.19.0.2
Пожалуйста, дайте мне знать, где лежит мое замешательство. Я собираюсь обвинить мой компьютер в том, что это проблема. Любая информация приветствуется.
При получении доступа к сайту отказано в соединении, что привело к повреждению шлюза nginx 502