我在 python 中有一个 swagger 服务器 api,我可以在我的电脑上运行,并通过 web 轻松访问用户界面。我现在正在尝试将此 API 运行到 docker 容器中并将其放入远程服务器中。在远程服务器中执行“docker run”命令后,一切似乎都工作正常,但是当我尝试连接时,我得到了 ERR_CONNECTION_REFUSED 响应。有趣的是,如果我进入容器,swagger 服务器正在工作并回答我的请求。
这是我的 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
以及swagger服务器的主要.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' 以及为解决它需要改变什么。
提前致谢