Есть приложение, написанное на Python (FastApi), которое должно быть упаковано в докер.
Внутри приложения используется alembic для управления миграциями БД и первичного создания таблиц в БД (postgresql).
Суть заказа - помочь с донастройкой докера, поскольку:
Сейчас есть проблема - запущенный образ докера не подключается к БД, которая тоже в докер контейнере (порты проброшены, но вылетает ошибка таймаута соединения). При этом проверка соединения через terminal работает успешно. Переменные окружения тоже подтягиваются.
По срокам - ASAP, до 15:00 понедельника.
Структура исходного проекта:
Project/
├─Dockerfile
├─docker-compose.yml
├─requirements.txt
├─.env.docker
├─app/
│ ├─ main.py
│ ├─ handlers/...
│ ├─ db/...
Уже есть один вариант, который срабатывает, однако там слетают абсолютные пути. В проекте много где встречается что-то вроде from app.db.db import..), и вылетает ошибка:
app_1 | from app.handlers.users import router as users_router
app_1 | ModuleNotFoundError: No module named 'app'
А еще нужно учесть, что базовый образ строго зафиксирован. Изменять образ в директиве FROM нельзя.
Отдельный пункт, который нужно учесть - запуск миграций alembic при старте контейнера для проверки соответствия структуры таблиц. И здесь нюанс - alembic.ini находится в нестандартной директории (обычно - корень проекта, в данном случае - в /app).
Файлы докера который верны по логике указания абсолютных путей и файлы конфига при котором срабатывает подключение к бд - во вложении.
Суть - сделать Dockerfile и docker-config.yml, чтобы были сохранены абсолютные пути, при этом main.py подключался к БД, и перед этим запускалась команда alembic -c app/alembic.ini upgrade head, тоже успешно подключающаяся к бд.
По оплате - предлагайте.
Буду на связи с 10:00. В идеале - к 15:00 понедельника (сегодня) запустить, чтобы заработало.
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |