【发布时间】:2020-08-02 17:43:47
【问题描述】:
我需要在我的 Dockerfile 中设置环境(我不能使用 docker-compose,因为我需要这个 dockerfile 用于 kubernetes)。 这是我的 Dockerfile:
FROM tensorflow/tensorflow:2.1.0-py3
RUN apt -qq -y update \
&& apt -qq -y upgrade
WORKDIR /socialworks-api
COPY . /socialworks-api
RUN python -m pip install --upgrade pip
RUN apt -y install git
#for mysql
RUN apt install -y libmysqlclient-dev
RUN pip --no-cache-dir install -r requirements.txt
EXPOSE 5000
CMD ["/bin/bash", "./start.sh"]
这是我的 start.sh 文件:
#!/bin/bash
export $(grep -v '^#' env/docker.env | xargs)
source env/docker.env
python app.py
这是我在 app.py 中启动烧瓶服务器的地方:
if __name__ == '__main__':
print("test")
socketio.run(app, host="0.0.0.0", debug=True, use_reloader=False)
问题是,在这些命令之后,我尝试运行我的 docker 容器并且正在启动烧瓶服务器(它甚至在终端中打印测试),当我尝试运行 http://0.0.0.0:5000/ 时,我无法连接问题在浏览器上。 也许问题出在我的 dockerfile 或 start.sh 文件中的 CMD 上?我是 Docker 新手。任何帮助将不胜感激。本地一切正常。 这是我用来运行 docker 容器的命令:
docker run -it flaskapp
这里是 docker ps:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
337f1bdacb3e flaskapp "/bin/bash ./start.sh" 44 seconds ago Up 42 seconds 5000/tcp dazzling_mcclintock
这里是日志:
docker logs 337f1bdacb3e
[nltk_data] Downloading package punkt to /root/nltk_data...
[nltk_data] Unzipping tokenizers/punkt.zip.
2020-04-20 10:02:44.287504: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-04-20 10:02:44.309581: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 2394225000 Hz
2020-04-20 10:02:44.310031: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x4971910 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-04-20 10:02:44.310068: I tensorflow/compiler/xla/service/service.cc:176] StreamExecutor device (0): Host, Default Version
test
(10) wsgi starting up on http://0.0.0.0:5000
日志与我在本地运行时得到的相同,并且在本地一切正常。可能是烧瓶应用程序在运行时以某种方式停止了吗?
【问题讨论】:
-
请分享 docker 容器日志。
docker logs CONTAINER_NAME -
你也可以添加你正在运行的docker命令来启动容器吗?
标签: python-3.x docker flask dockerfile