Я настраиваю контейнер докеров, который будет обслуживать мое приложение 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) иRUN /usr/bin/nginx)В статье не говорится о запуске сервера nginx каким-либо другим способом.


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 сделает это за вас :)