Докер-контейнер Nginx в сети хоста не обслуживает угловое приложение - PullRequest
0 голосов
/ 23 октября 2018

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

Это мой Dockerfile:

# Stage 1
FROM node:10.11.0-alpine as node

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm ci

COPY . .

RUN npm run build

# Stage 2
FROM nginx:1.14-alpine

COPY --from=node /usr/src/app/dist/gui /usr/share/nginx/html

COPY ./nginx.conf /etc/nginx/conf.d/default.conf

nginx.conf:

server {
  listen 80;
  server_name 127.0.0.1;
  location / {
    root /usr/share/nginx/html;
    index index.html index.html;
    try_files $uri $uri/ /index.html =404;
  }

  location /api {
    proxy_pass http://localhost:8080/api;
  }
}

И мой докер-Файл compose.yml:

version: "3.5"

services:
  gui:
    container_name: gui
    network_mode: "host"
    build:
        context: gui

$ docker-compose up запускает контейнер.Но на localhost: 80 .

ничего нет. В чем проблема?Nginx не обслуживает приложение?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Оказалось, что я правильно написал Dockerfile, nginx.conf и docker-compose.yml.Проблема была в угловом приложении, которое не удалось скомпилировать, поэтому RUN npm run build не удался.

Запуск приложения локально с npm start не выявил проблему, потому что был активен режим live-reload.Только полная компиляция не может быть завершена.

@ Ntwobike Спасибо за вашу попытку.Команда CMD ["nginx", "-g", "daemon off;"] также не нужна.

0 голосов
/ 23 октября 2018
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...