我有一个提供以下服务的应用程序:
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.log
和worker/index.js
命令中的docker-compose up
不会打印出来)。
因此,我运行boot2docker ip
以获取IP地址,当我访问它时,出现Gateway timeout
错误,但在docker stderr上没有错误。
我一直在尝试大量更改以使其以某种方式起作用,但不能。我真的认为,如果有人可以解释问题所在以及如何使我的设置正常工作,这将很有帮助。
当工作者开始工作并睡觉时,使用命令-d在后台运行