Итак, у меня есть приложение flask, которое отлично работает, когда я запускаю его через терминал, но по какой-то причине, если я запускаю контейнер docker, оно мгновенно завершается с «нулевым кодом выхода».
Вот структура папок: https://imgur.com/a/BOGCt6S
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:
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' ]
и файл 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'])
и на всякий случай вот часть файла config.py:
DEBUG = False
HOST = '0.0.0.0'
PORT = 5001