我有一个具有以下服务的应用程序:
web/
- 在端口 5000 上保存并运行 python 3 烧瓶 Web 服务器。使用 sqlite3。worker/
- 有一个index.js
文件是队列的工作人员。Web 服务器使用 json API over port 与此队列交互9730
。worker 使用 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 服务器和烧瓶服务器,但不会启动工作程序(我知道这一点,因为我console.log
在worker/index.js
anddocker-compose up
命令中没有打印它)。
然后我跑去boot2docker ip
获取IP地址,当我访问它时,我得到一个Gateway timeout
错误但在docker stderr上没有错误。
我一直在尝试进行一系列更改以使其以某种方式工作,但不能。我真的认为如果有人可以解释出了什么问题以及如何使我的设置正常工作会很有帮助。