Files
tg_tinder_bot/docs/docker_fix.md
2025-09-18 16:47:07 +09:00

3.0 KiB
Raw Blame History

Решение проблемы с Docker-контейнерами

Проблема

При запуске контейнеров через Docker Compose возникает ошибка KeyError: 'ContainerConfig'. Эта ошибка появляется из-за несовместимости между версиями Docker, Docker Compose и структурой docker-compose.yml.

Решение

1. Очистка окружения Docker

На сервере выполните следующие команды, чтобы полностью очистить окружение Docker:

# Остановка и удаление контейнеров
docker-compose down -v

# Принудительное удаление контейнеров по имени
docker rm -f postgres-tinder adminer-tinder telegram-tinder-bot

# Очистка неиспользуемых томов и сетей
docker system prune -f --volumes

# Очистка кеша Docker
docker builder prune -f

2. Исправление проблем с переносами строк

Файлы, созданные в Windows и перенесенные в Linux, могут содержать неправильные символы переноса строки.

# Исправление переносов строк в shell-скриптах
find . -name "*.sh" -type f -exec sh -c 'tr -d "\r" < "$1" > "$1.fixed" && mv "$1.fixed" "$1" && chmod +x "$1"' -- {} \;

3. Обновление docker-compose.yml

Создайте новый docker-compose.yml с исправленной структурой:

# Запустите скрипт для исправления проблем с Docker
./bin/fix_docker.sh

4. Запуск с полностью чистым окружением

После выполнения всех исправлений запустите контейнеры заново:

docker-compose up -d

Альтернативное решение

Если проблема сохраняется, можно попробовать запустить контейнеры по отдельности:

# Сначала запустить базу данных (если она нужна)
docker-compose up -d db

# Дождаться запуска базы данных
sleep 10

# Запустить бота
docker-compose up -d bot

# Запустить adminer
docker-compose up -d adminer

Проверка работы миграций

После запуска контейнеров проверьте, что миграции базы данных применяются правильно:

# Просмотр логов контейнера бота
docker logs telegram-tinder-bot

# Если миграции не применяются, можно запустить их вручную внутри контейнера
docker exec -it telegram-tinder-bot sh -c "DATABASE_URL=postgres://$DB_USERNAME:$DB_PASSWORD@$DB_HOST:$DB_PORT/$DB_NAME npx node-pg-migrate up"