2017-08-23 9 views
0

私は "Dockerize"したい単純なwebprojectを持っていますが、webappをホストすることに失敗しています。Dockerのホストからwebappにアクセスできない

FROM debian:jessie 

RUN apt-get update -y && \ 
    apt-get install -y python-pip python-dev curl && \ 
     pip install --upgrade pip setuptools 

COPY ./requirements.txt /app/requirements.txt 

WORKDIR /app 

RUN pip install -r requirements.txt 

COPY . /app 

WORKDIR /app/web 

そしてrequirements.txtのようになります:

paster create --template=pylons web 

そして最後にstart_server.sh:

Webディレクトリを使用して構築された

PasteScript==2.0.2 
Pylons==1.0.2 

私Dockerfileは次のようになります

#!/bin/bash 

paster serve --daemon development.ini start 

今、私が構築することができる午前:

docker build -t webapp . 

し、コマンドを実行します。

docker run -it -p 5000:5000 --name app webapp:latest /bin/bash 

そして、私が実行ドッキングウィンドウコンテナ内:

bash start_server.sh 

正常にWebアプリケーションを起動しますポート5000と私はドッカーのコンテナの中にカールする場合、私は期待される応答を得る。また、コンテナが起動し、正しいポートマッピングで実行されています

5000/tcp -> 0.0.0.0:5000 

は、しかし、私は持つホストからサーバからの応答を取得することはできません:今

bc6511d584ae  webapp:latest  "/bin/bash"   2 minutes ago  Up 2 minutes    0.0.0.0:5000->5000/tcp app 

私は、ドッキングウィンドウポートを実行する場合、それは正常に見えるアプリ:

curl localhost:5000 

私はおそらくここで何か誤解しているかもしれませんが、それは私にとってはうまくいくようです。あなたのdockerfileで

+0

ホストOSとは何ですか? –

+0

説明:\t Ubuntu 16.04.2 LTS – dared

答えて

0

あなたのポートマッピングは、あなたのコンテナのポートを開くなど、それを正しいと思うですEXPOSE 5000を追加する必要があり、その後、あなたはコメント

-p

回答ではlocalhostでそれをマッピング

ローカルホストの代わりにmake_serverを0.0.0.0にバインドする場合

+0

ハミュエルこんにちは、それを試して、動作しません。私はEXPOSE 5000をDockerfileに追加し、上記のように正確に再構築しましたが、まだ応答はありません。 – dared

+1

あなたのパイロンコードでmake_serverはlocalhostか0.0.0.0でipをバインドしましたか? localhostを0.0.0.0に変更すると – Hamuel

+0

が動作します。どうもありがとう! – dared

関連する問題