[英]Flask App runs in terminal but not in Docker Container
So, I've got this flask app that works fine when I run it via the terminal, but for some reason, if I start up a docker container, it instantly exits with 'exit code zero'.所以,我有这个 flask 应用程序,当我通过终端运行它时它工作正常,但由于某种原因,如果我启动一个 docker 容器,它会立即以“退出代码零”退出。
Here is the folder structure: https://imgur.com/a/BOGCt6S这是文件夹结构: https://imgur.com/a/BOGCt6S
docker-compose.yml: docker-compose.yml:
version: '3.2'
services:
flask-app:
build: ./Flask_App
volumes:
- ./Flask_App/static:/Flask_App/static
- ./Flask_App/db:/Flask_App/db
ports:
- '5001:5001'
# restart: unless-stopped
Dockerfile: Dockerfile:
FROM python:3
# Setup env
COPY requirements.txt ./
RUN pip install -r requirements.txt
# Setup App
RUN mkdir -p /Flask_App
COPY . /Flask_App
WORKDIR /Flask_App
EXPOSE 5001
ENTRYPOINT [ 'python3' ]
CMD [ 'app.py' ]
and the app.py file: (I know its just imports, but it works fine when I run it via the terminal on the host, so it probably is working ok)和 app.py 文件:(我知道它只是导入,但是当我通过主机上的终端运行它时它工作正常,所以它可能工作正常)
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
from flask_bootstrap import Bootstrap
from forms import *
app = Flask(__name__)
app.config.from_pyfile('config.py')
Bootstrap(app)
db = SQLAlchemy(app)
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'login'
from views import *
if __name__ == '__main__':
app.run(host=app.config['HOST'], port=app.config['PORT'], debug=app.config['DEBUG'])
and just in case, here is a part of the 'config.py' file:以防万一,这里是“config.py”文件的一部分:
DEBUG = False
HOST = '0.0.0.0'
PORT = 5001
As said by David Maze in a comment, the single quotes( '
) I used in ENTRYPOINT
and CMD
should be changed to double quotes ( "
), since they are supposed to be JSON arrays.正如David Maze在评论中所说,我在
ENTRYPOINT
和CMD
中使用的单引号 ( '
) 应该更改为双引号 ( "
),因为它们应该是 JSON ZA3CBC3F9D0CE2F2C15DCZEB1。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.