#docker #nginx #docker-compose #dockerfile #nginx-config
#docker #nginx #docker-compose #dockerfile #nginx-config
Вопрос:
Я пытаюсь запустить с помощью Docker compose приложение angular. Это мой файл Dockerfile контейнера Angular
# Stage 0, for downloading project’s npm dependencies, building and compiling the app.
FROM node:14.13 as node
# set working directory
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
# add .bin to $PATH
ENV PATH /usr/src/app/node_modules/.bin:$PATH
# install package.json (o sea las dependencies)
COPY package.json /usr/src/app/package.json
RUN npm install
RUN npm install -g @angular/cli@10.0.3
# add app
COPY . /usr/src/app
# start app
CMD npm build-prod
# Stage 1, for copying the compiled app from the previous step and making it ready for production with Nginx
FROM nginx:alpine
COPY --from=node /usr/src/app/dist/bloomingfrontend /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/conf.d/default.conf
файл docker-compose:
version: '3.3'
services:
web:
build: './blooming_frontend'
ports:
- 80:80
depends_on:
- spring
spring:
build: ./blooming_backend
ports:
- 8080:8080
И nginx.conf
server {
server_name localhost;
listen 80;
root /usr/share/nginx/html;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
}
Как мне кажется в некоторых руководствах, это нормально работать, но при доступе к локальному хосту выдает
Страница localhost отклонила соединение.
Я новичок в Nginx, и я не знаю, что мне нужно делать
Ответ №1:
в вашей конфигурации nginx localhost
соответствует контейнеру, а не хосту (nginx будет принимать соединения только из самого контейнера). Удаление server_name
строки должно заставить ее работать.