Flask Web应用程序,Node.js(队列)工作程序。无法使docker工作

问题描述 投票:2回答:1

我有一个提供以下服务的应用程序:

  • web/-在端口5000上保存并运行python 3 flask网络服务器。使用sqlite3。
  • worker/-有一个index.js文件,它是队列的工作程序。 Web服务器使用json API通过端口9730与该队列进行交互。工作人员使用Redis进行存储。工作程序还将数据本地存储在文件夹worker/images/

现在,我正在尝试使用docker和docker-compose来完成所有这些工作。作为那些新手,我很挣扎。

web/Dockerfile

FROM python:3.4-slim

RUN apt-get update
RUN apt-get install -y sqlite3 libsqlite3-dev imagemagick

COPY . /web
WORKDIR /web

RUN pip install -r requirements.txt

worker/Dockerfile

FROM dockerfile/nodejs

COPY . /worker
WORKDIR /worker

RUN npm install

docker-compose.yml

redis:
    image: redis:latest
worker:
    build: ./worker
    ports:
        - "9730:9730"
    links:
        - "redis:redis"
    command: npm start
web:
    build: ./web
    ports:
        - "80:5000"
    links:
        - "worker:worker"
    command: python app.py

docker-compose build可以正常运行并执行所有操作。

现在,这将启动Redis服务器和Flask服务器,但不会启动工作服务器(我知道这是因为我的console.logworker/index.js命令中的docker-compose up不会打印出来)。

因此,我运行boot2docker ip以获取IP地址,当我访问它时,出现Gateway timeout错误,但在docker stderr上没有错误。

我一直在尝试大量更改以使其以某种方式起作用,但不能。我真的认为,如果有人可以解释问题所在以及如何使我的设置正常工作,这将很有帮助。

python node.js docker boot2docker docker-compose
1个回答
0
投票

当工作者开始工作并睡觉时,使用命令-d在后台运行

© www.soinside.com 2019 - 2024. All rights reserved.