Многоэтапный контейнер AWS эластичный стебель с NGINX и Node and React - PullRequest
0 голосов
/ 04 декабря 2018

Мне не удалось развернуть приложение в многодокерном контейнере уже несколько дней.Я запускаю докер-контейнер nginx, который должен быть обратным прокси-сервером для моего приложения докеризованного узла.Когда я запускаю eb local run run, все работает как надо, и я не могу понять, почему он не будет работать при развертывании через эластичный бобовый стебель.Я пробовал несколько разных изменений конфигурации весь день, и я не знаю, что мне делать.У кого-нибудь есть совет?

Ошибка, которую я получаю в журналах NGINX от моего экземпляра EC2:

2018/12/04 04:18:44 [error] 6#6: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 136.49.25.164, server: , request: "GET / HTTP/1.1", upstream: "http://172.17.0.2:3000/", host: "inventorio-env-1.2vkt3bwr3w.us-east-1.elasticbeanstalk.com"

Вот соответствующие настройки: Dockerrun.aws.json:

{
  "AWSEBDockerrunVersion": 2,
  "volumes": [
    {
      "name": "inventorio",
      "host": {
        "sourcePath": "/var/app/current/inventorio"
      }
    },
    {
      "name": "nginx-proxy-conf",
      "host": {
        "sourcePath": "/var/app/current/proxy/conf.d"
      }
    }
  ],
  "containerDefinitions": [
    {
      "name": "inventorio",
      "image": "jpwarren13/inventor-io:docker3",
      "essential": true,
      "memory": 128,
      "mountPoints": [
        {
          "sourceVolume": "inventorio",
          "containerPath": "/var/www/html",
          "readOnly": true
        }
      ]
    },
    {
      "name": "nginx-proxy",
      "image": "nginx",
      "essential": true,
      "memory": 128,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 80
        }
      ],
      "links": ["inventorio"],
      "mountPoints": [
        {
          "sourceVolume": "inventorio",
          "containerPath": "/var/www/html",
          "readOnly": true
        },
        {
          "sourceVolume": "nginx-proxy-conf",
          "containerPath": "/etc/nginx/conf.d",
          "readOnly": true
        },
        {
          "sourceVolume": "awseb-logs-nginx-proxy",
          "containerPath": "/var/log/nginx"
        }
      ]
    }
  ]
}

Dockerfile:

FROM node:11.2.0

# Create app directory
WORKDIR /var/www/html

# Install app dependencies
COPY package*.json ./
# For npm@5 or later, copy package-lock.json as well
# COPY package.json package-lock.json .

RUN npm install

# Bundle app source
COPY . .

EXPOSE 3000

CMD [ "npm", "run", "start:docker" ]

proxy / conf.d / default.conf:

upstream inventorio{
    server inventorio:3000;
  }

server {
  listen 80;
  # server_name localhost;
  root /var/www/html;
 
  index index.html;

     location /{
        proxy_pass http://inventorio;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
     }
}

Я также попытался добавить директиву try_files для корневых запросов и получить:

2018/12/04 03:03:04 [error] 6#6: *1 open() "/var/app/current/appindex.html" failed (2: No such file or directory), client: 172.17.0.1, server: , request: "GET /sw.js HTTP/1.1", host: "localhost", referrer: "http://localhost/sw.js"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...