2

次のサービスを備えたアプリがあります。

  • 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.jsanddocker-compose upコマンドで出力されないためです)。

boot2docker ip次に、IPアドレスを取得するために実行し、アクセスするとGateway timeoutエラーが発生しますが、docker stderrにはエラーはありません。

私は何とかそれを機能させるためにたくさんの変更を試みてきましたが、できません。何が問題なのか、セットアップを機能させる方法を誰かが説明してくれると助かると思います。

4

1 に答える 1