次のサービスを備えたアプリがあります。
web/
- ポート 5000 で Python 3 フラスコ Web サーバーを保持して実行します。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 サーバーとフラスコ サーバーが起動しますが、ワーカーは起動しません (これはconsole.log
、自分のworker/index.js
anddocker-compose up
コマンドで出力されないためです)。
boot2docker ip
次に、IPアドレスを取得するために実行し、アクセスするとGateway timeout
エラーが発生しますが、docker stderrにはエラーはありません。
私は何とかそれを機能させるためにたくさんの変更を試みてきましたが、できません。何が問題なのか、セットアップを機能させる方法を誰かが説明してくれると助かると思います。