Cześć zadokonserwowany projekt Areactjs i Expressjs, wszystko działa dobrze, gdy napisałem oddzielny plik Docker Skomponuj plik.

Ale teraz napisałem jeden plik komponowania

docker-compose-all-dev.yml plik

version: '3.7'

services:
  client:
    container_name: react-dev
    build:
      context: ./client
      dockerfile: Dockerfile.react-dev
    ports:
      - 3000:3000

  server:
    container_name: server-dev
    build:
      context: ./server
      dockerfile: Dockerfile.server-dev
    ports:
      - 5000:5000

Teraz działa tylko serwer klienta, dlaczego nie uruchomić serwera Backend?

Ale działa, gdy uruchamiam go w dwóch różnych plikach.

docker-compose-client.yml Plik:

version: '3.7'

services:

  client:
    container_name: react-dev
    build:
      context: ./client
      dockerfile: Dockerfile.react-dev
    ports:
      - 3000:3000

I plik docker-compose-server.yml

version: '3.7'

services:
  server:
    container_name: server-dev
    build:
      context: ./server
      dockerfile: Dockerfile.server-dev
    ports:
      - 5000:5000

Czy ktoś może mi powiedzieć, jaki jest możliwy problem nie prowadzenia obu aplikacji, gdy uruchomię w jednym pliku komponowania? Jak mogę to rozwiązać?

W celach informacyjnych.

My Dockerfile-server-dev Plik

FROM node:14

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install
COPY . .

EXPOSE 8080
CMD [ "node", "server.js" ]

I mój Dockerfile.react-dev

FROM node:14.1-alpine as build

WORKDIR /app

COPY . /app

ENV PATH /app/node_modules/.bin:$PATH

RUN yarn config delete proxy
Run npm config rm proxy

RUN npm config rm https-proxy

RUN npm install

RUN npm start

Nie wiem, jaki jest problem faktycznie prowadzący dwa serwer rozwoju w jednym pliku Docker-Compose

0
how recepes 19 marzec 2021, 14:57

2 odpowiedzi

Najlepsza odpowiedź

Istnieje co najmniej kilka problemów, brakuje {{x0} Zamiast tego użyj Engthpoint i ewentualnie CMD do uruchomienia. Innym problemem jest, że wystawiasz inny port na Dockerfile-server-dev niż na pliku komponowania.

1
Niklas 19 marzec 2021, 12:24

Rozwiązał problem.

Po prostu dodam tę linię: CMD ["npm", "start"] i usunięto npm start Teraz działa

0
how recepes 19 marzec 2021, 12:24