Dockerfile: почему нет доступа к порту или команды RUN? (файл докеров angular-on-nginx)

Я настраиваю контейнер докеров, который будет обслуживать мое приложение Angular 5 на сервере nginx, следуя эта статья.

В статье предлагается этот Dockerfile:

# Stage 0, based on Node.js (for npm) to build and compile the Angular application.
FROM node:8.11.2 as node
WORKDIR /app
COPY package.json /app/
RUN npm install
COPY ./ /app/

ARG env=prod
# For Angular 6: ARG conf=production
RUN npm run build -- --prod --environment $env
# For Angular 6: RUN npm run build --configuration $conf

# Stage 1, based on Nginx, to have only the compiled app, ready for production with Nginx
FROM nginx:1.15
COPY --from=node /app/dist/ /usr/share/nginx/html
COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf

Мне было интересно: почему следующее не включено?

  • инструкция по открытию порта (например, EXPOSE 80) и
  • команда запуска nginx (например, RUN /usr/bin/nginx)

В статье не говорится о запуске сервера nginx каким-либо другим способом.

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
0
169
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Поскольку вы используете nginx:1.15, проверьте его Dockerfile:

...

EXPOSE 80

STOPSIGNAL SIGTERM

CMD ["nginx", "-g", "daemon off;"]
Ответ принят как подходящий

a port exposing instruction (e.g. EXPOSE 80)

Инструкция EXPOSE - это больше документация, чем что-либо еще. документация для образа nginx сообщает вам опубликовать порт при запуске контейнера с -p 80:80, что не требует инструкции EXPOSE. EXPOSE 80 позволит вам использовать -P для той же цели.

a nginx run command (e.g. RUN /usr/bin/nginx)

изображение nginx сделает это за вас :)

Другие вопросы по теме