docker - 具有多种服务的 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,反应????
如何正确制作?
解决方案
推荐阅读
- php - 这个关于类型提示的 PhpStorm 警告是否正确?
- javascript - 如何根据 Firestore + javascript 是否为空来应用过滤器
- azure - 从 ADF 访问 Azure 密钥保管库密钥
- kotlin - kotlin 方法的参数 Int 可以修改吗?
- python - 使用 Python 在字典理解中更改 10% 的值
- rxjs - 长期观察者的 RxJS 统计/警告
- powershell - Powershell - 如何排除 Get-childitem 命令中的所有文件并包括 Get-Adgroupmember
- xcode - 后退按钮无法快速工作,需要 4-5 秒的 Webview 才能返回,如何获得 Progress SwiftUI
- typescript - 禁止 TypeScript 中的记录索引类型转换
- ios - 如何检测第三方键盘ios