Итак, я пытаюсь создать производственную сборку моего 2-страничного приложения реакции. Когда я создаю docker изображение и запускаю изображение с docker run -d -p 3000:3000 --name client --network new reactportfolio:latest
, страницы видны на локальном хосте: 3000
Однако, когда я запускаю изображение с docker-compose up
, страницы не отображаются.
Клиентский файл Docker
FROM node:12.7.0-alpine as build
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json /app/package.json
RUN npm install
RUN npm install react-scripts@3.0.1 -g
COPY . /app
RUN npm run build
# production environment
FROM nginx:1.16.0-alpine
COPY --from=build /app/build /usr/share/nginx/html
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d
EXPOSE 3000
CMD ["nginx", "-g", "daemon off;"]
Клиент nginx .conf
server {
listen 3000;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
docker - составить. yaml
version: "2"
services:
client:
container_name: client
restart: always
build:
context: ./client
dockerfile: Dockerfile
environment:
- NODE_ENV=production
- REACT_APP_NET_SERVER=http://localhost:5000
- REACT_APP_MAIL_SERVER=http://localhost:6000
- REACT_APP_HANGFIRE_SERVER=http://localhost:4000
ports:
- "3000:3000"
networks:
- net
mailserver:
container_name: mailserver
restart: always
build:
context: ./nodemailer
dockerfile: Dockerfile
environment:
- PORT=6000
ports:
- "6000:6000"
networks:
- net
networks:
net:
driver: bridge
Что-нибудь, чего мне явно не хватает?