Приложение Angular не запускается из файла docker-compose.yml - PullRequest
0 голосов
/ 28 октября 2019

Я написал приведенный ниже файл Docker для моего углового приложения.

Dockerfile:

# base image
FROM node:10.16.0-alpine AS build-step
# set working directory
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:1.16.1-alpine
COPY --from=build-step /app/dist/* /usr/share/nginx/html/
EXPOSE 4100
CMD ["nginx","-g","daemon off;"]

Образы Docker созданы успешно. В файле docker-compose.yml я написал:

version: '3'
services:
  applicationui:
    image:  applicationui
    build: /
    network_mode: host
    container_name: angular-container
    ports:
      - 4200:4100 

после выполнения docker-compose, когда я нажимаю на браузер с localhost: 4200 страница не открывается.

Запуск docker-сочинить enter image description here Любая подсказка, где я пропустил?

Ответы [ 2 ]

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

Вы не перезаписываете конфигурацию Nginx в своем Dockerfile, поэтому фактическая проблема с портом, так как Nginx по умолчанию прослушивает PORT 80. поэтому измените открытый порт.

EXPOSE 80

Поскольку Nginx по умолчанию прослушивает порт 80, а не порт 4100, как Angular ng serve и т. д., который вы ожидаете от Nginx.

Так что лучше использовать Expose 80, что повысит читабельность, так как упомянутое @David не будет иметь никакого эффекта, если вы установите network_mode: host.

Так что откройте браузер с помощью 80, и он должен работать.

или вы можете привязать нужный порт без упоминания сети хоста в docker-compose

    ports:
      - 4200:80 

http://localhost/

0 голосов
/ 28 октября 2019

ports: не имеет никакого эффекта, если вы установите network_mode: host. Этот параметр часто используется как обходной путь для проблем с сетью Docker, и в этом нет необходимости. Просто удали эту строку. (Вы также можете безопасно удалить container_name: и image: без вредных последствий.)

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