首页 > 解决方案 > 具有多种服务的 Docker

问题描述

使用运行多个服务的 Docker 进行首次设置。

花了一段时间,但无法查明问题所在。

我认为以下是问题的原因。

为什么 Node 应用程序无法工作/启动?

web_1       | npm ERR! code ENOENT
web_1       | npm ERR! syscall open
web_1       | npm ERR! path /app/http/app/package.json
web_1       | npm ERR! errno -2
web_1       | npm ERR! enoent ENOENT: no such file or directory, open '/app/http/app/package.json'
web_1       | npm ERR! enoent This is related to npm not being able to find a file.
web_1       | npm ERR! enoent 
web_1       | 
web_1       | npm ERR! A complete log of this run can be found in:
web_1       | npm ERR!     /root/.npm/_logs/2020-12-27T23_32_03_845Z-debug.log

为什么它看不到它:

码头工人-compose.yml

version: '3'
services:
  mongo:
    image: mongo
    restart: always
    ports:
     - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: mongo_user
      MONGO_INITDB_ROOT_PASSWORD: mongo_secret
  api:
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
    ports:
      - "4433:4433"
    depends_on:
      - rabbit
    volumes:
      - .:/app
  web:
    build:
      context: .
      dockerfile: Dockerfile1
    restart: always
    ports:
      - "8080:8080"
    depends_on:
      - api
    volumes:
      - .:/app
  rabbit:
    hostname: rabbit
    image: rabbitmq:management
    environment:
      - RABBITMQ_DEFAULT_USER=rabbitmq
      - RABBITMQ_DEFAULT_PASS=rabbitmq
    ports:
      - "5673:5672"
      - "15672:15672"
  worker_1:
    build:
      context: .
    hostname: worker_1
    entrypoint: celery
    command: -A workerA worker --loglevel=info -Q workerA
    volumes:
      - .:/app
    links:
      - rabbit
    depends_on:
      - rabbit

Dockerfile

FROM python:3.8
ADD Pipfile.lock /app/Pipfile.lock
ADD Pipfile /app/Pipfile

WORKDIR /app
COPY . /app

RUN pip install pipenv
RUN pipenv install --system --deploy --ignore-pipfile
ENV FLASK_APP=app/http/api/endpoints.py
ENV FLASK_RUN_PORT=4433
ENV FLASK_ENV=development
ENTRYPOINT ["python"]
#CMD ["app/http/api/endpoints.py","--host=0.0.0.0","--port 4433"]
CMD ["-m", "flask", "run"]

Dockerfile1

FROM node:10
WORKDIR /app/http/app
ADD app/http/app/package.json /app/http/app/package.json
ADD app/http/app/package-lock.json /app/http/app/package-lock.json
RUN npm i
CMD ["npm","start"]

如何进行这样的设置

烧瓶,RabbitMQ,反应????

如何正确制作?

标签: dockerdocker-compose

解决方案


推荐阅读