gpt4 book ai didi

python - Docker容器启动后退出

转载 作者:行者123 更新时间:2023-12-02 20:59:26 28 4
gpt4 key购买 nike

我正在构建和运行这个 docker 容器。它正在运行一个简单的 flask服务器。但是当我运行时,它立即退出。

这是我的Dockerfile

FROM python:3

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 8080

# CMD ["python3", "-m", "http.server", "8080"]
CMD ["python3", "./py_server.py"]

这是 py_server.py
from flask import Flask
app = Flask(__name__)

PORT = 8080

@app.route('/')
def hello_world():
return "Hello World"

if __name__ == '__main__':
app.run(PORT)

这就是我分别构建和运行容器的方式。

构建:
docker build -t banuka/python-venv .

运行:
docker run -dit -p 8080:8080 --name server1 banuka/python-venv:latest

有人可以告诉我我做错了什么吗?

最佳答案

有几个问题:

  • 你想要the -it parameter ,而不是 -dit :
  • docker run -it -p 8080:8080 --name server1 banuka/python-venv:latest
  • 您将 PORT 作为变量传递给 the app.run() function ,因此它被解释为第一个 host参数,而不是你想要的,它是 port范围。你想要的是这个:app.run(port=8080)
  • 正如@Alexandre 指出的那样,如果您要远程访问主机,则需要将其显式绑定(bind)到 host='0.0.0.0' ,所以我们需要 app.run(host='0.0.0.0',port=8080)
  • 关于python - Docker容器启动后退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61184956/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com