2017-04-18 7 views
0

私は自分のPC上で実行でき、Web経由でユーザーインターフェイスに簡単にアクセスできる、派手なサーバーAPIを持っています。私は今、このAPIをドッカーコンテナに入れてリモートサーバーに配置しようとしています。リモートサーバーの 'docker run'コマンドintを実行した後、すべて正常に動作しているようですが、接続しようとするとERR_CONNECTION_REFUSED応答が返されます。面白いのは、私がコンテナに入ると、スワッガーサーバーが動作しており、私の要求に答えるということです。ここでスガッガーサーバーをドッカーコンテナにアクセスできない

は私Dockerfileです:

ここ
FROM python:3 
MAINTAINER Me 
ADD . /myprojectdir 
WORKDIR /myprojectdir 
RUN pip install -r requirements.txt 
RUN ["/bin/bash", "-c", "chmod 777 {start.sh,stop.sh,restart.sh,test.sh}"] 

は実行/構築するために私のコマンドです:ここでは

sudo docker build -t mycontainer . 
sudo docker run -d -p 33788:80 mycontainer ./start.sh 

はstart.shスクリプトです:

#!/bin/bash 

echo $'\r' >> log/server_log_`date +%Y%m`.dat 
python3 -m swagger_server >> log/server_log_`date +%Y%m`.dat 2>&1 

メインスワッサーサーバーの.py:

#!/usr/bin/env python3 

import connexion 
from .encoder import JSONEncoder 


if __name__ == '__main__': 

    app = connexion.App(__name__, specification_dir='./swagger/') 
    app.app.json_encoder = JSONEncoder 
    app.add_api('swagger.yaml', arguments={'title': 'A title'}) 
    app.run(port=80, threaded=True, debug=False) 

なぜ私は 'myremoteserver:33788/myservice/ui'にアクセスできないのか、それを解決するために何を変えるべきだと知っていますか?事前

答えて

0

おかげで、私は最終的に解決策を見つけることができました。 0.0.0.0で実行するようにフラスコサーバーに0.0.0.0を実行するように指示する必要があります。ローカル接続だけでなく、ドッカーコンテナが配置されているサーバーの名前をswagger.yamlで変更します。

関連する問題