У меня есть приложение python (flask -admin) в docker контейнере. и работает нормально. но в какой-то момент у меня возникла проблема, и я попытался отладить ее с помощью отладчика кода, и приложение даже не запустило
Это исключение от отладчика кода
Exception has occurred: SystemExit
1
File "/opt/forwardbot/admin_panel/main.py", line 5, in <module>
app.run(host='0.0.0.0',debug=True)
, и это в docker консоль
/usr/local/bin/python: No module named main
- вот мой запуск. json для присоединения к docker
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name" : "Python Attach Docker",
"type" : "python",
"request": "attach",
"pathMappings": [
{
// "localRoot": "${workspaceFolder}/forwardbot/admin_panel",
"localRoot": "/opt/forwardbot/admin_panel/",
"remoteRoot": "/app/"
}
],
"port": 5678,
"host": "127.0.0.1",
"justMyCode": true
}
]
}
docker -композитному файлу
version: "3.4"
services:
db:
image: postgres
ports:
- 5432:5432
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=pswd
- POSTGRES_DB=db
volumes:
- /data:/var/lib/postgresql/data
networks:
- backend
admin_panel:
image: admin_panel
build:
context: .
dockerfile: Admin.Dockerfile
target: debug
# target: production
ports:
- 5000:5000
- 5678:5678
depends_on:
- db
volumes:
- ./admin_panel:/app
networks:
- backend
restart: always
networks:
backend:
driver: "bridge"
Admin.Dockerfile
FROM python:alpine3.7 as base
ADD ./admin_panel /app
RUN apk update && apk add postgresql-dev gcc python3-dev musl-dev && pip install -r /app/requirements.txt
##################### DEBUGGING #####################
FROM base as debug
RUN pip install ptvsd
CMD python -m ptvsd --host 0.0.0.0 --port 5678 --wait /app/main.py
##################### PRODUCTION #####################
FROM base as production
CMD python -u /app/main.py
здесь - connections.py
from flask import Flask
from flask_admin import Admin
from flask_sqlalchemy import SQLAlchemy
from admin_index_view import MyViewIndex
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql+psycopg2://123:123@123:123/123"
app.config['SECRET_KEY'] = 'SOMEhash'
db = SQLAlchemy(app)
admin = Admin(
app,
template_mode='bootstrap3',
index_view=MyViewIndex(
name="Главная страница",
url="/",
static_folder = 'static',
endpoint='admin'
),
name="Админ панель"
)
admin_views.py
from connections import db,admin
from my_database_schema import *
from flask_admin.contrib.sqla import ModelView
from flask_admin import BaseView, expose
from wtforms.fields import StringField
from jinja2 import Markup
from flask_admin.form import rules
class UserView(ModelView):
can_delete = False # temprorary decision
can_create = False
can_view_details = True
column_filters = ('forward_name','forwaded_messages','balance')
column_labels = dict(
forward_name = "Имя пользователя",
balance = "Баланс",
forwaded_messages = "Переслано сообщений",
key_words = "Ключевые слова",
anti_key_words = "Запретные слова",
chat_request = "чат-запросы"
)
inline_models = (key_words,anti_key_words,chat_request,)
def on_model_change(self, *args, **kwargs):
args[0].data['key_words'].append(some_value)
return super(UserView,self).on_model_change(*my_args,**kwargs)
class future_features(BaseView):
@expose('/')
def index_2(self):
return self.render('add_chats.html')
admin.add_view(UserView(forward_users,db.session,name="Пользователи"))
admin.add_view(future_features(name="Добавить чаты"))
Что может вызвать вышеуказанную проблему? (В отладчик снимков экрана показывает путь сервера к файлу ошибок, но он выполняется в контейнере. Может ли это вызвать проблему?)