У меня есть простое фляжное приложение, которое использует базу данных SQLLite.
Вот мой код app.py
from flask import Flask
from flask_restful import Api
from flask_jwt import JWT
from datetime import timedelta
from db import db
from security import authenticate, identity
from resources.user import UserRegister
from resources.product import Product, ProductList
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.secret_key = '@hsgvTyb@3gd###123'
api = Api(app)
@app.before_first_request
def create_tables():
db.create_all()
jwt = JWT(app, authenticate, identity) # /auth
app.config['JWT_EXPIRATION_DELTA'] = timedelta(seconds=1800)
api.add_resource(Product, '/product/<string:name>')
api.add_resource(ProductList, '/products')
api.add_resource(UserRegister, '/register')
if __name__ == '__main__':
db.init_app(app)
app.run(port=5000, debug=False)
DockerFile, как показано ниже:
FROM python:3
ADD app/ /app
WORKDIR /app
RUN apt-get update
RUN pip install -r requirements.txt
CMD python app.py
docker-compose.yml, как показано ниже:
version: "2"
services:
app:
container_name: test-146957-app
build:
context: ../
dockerfile: deployments/app/Dockerfile
ports:
- "5000:5000"
Теперь, когда я выполняю команду docker-compose up
, она показывает, что контейнер работает, но я нажимаю на любые конечные точки от почтальона, он не возвращает никакого ответа.
@DavidYue Да. ports: - "5000:5000"
Пожалуйста, смотрите код docker-compose выше.
Вы должны добавить host=0.0.0.0 в качестве параметра запуска Flask. Подробности смотрите в документации: https://flask.palletsprojects.com/en/1.1.x/api/#flask.Flask.run
Вы открыли порт в docker compose?