Невозможно подключиться к базе данных PostgreSQL из исполнителя Docker (gitlab ci/cd) ⇐ Python
-
Гость
Невозможно подключиться к базе данных PostgreSQL из исполнителя Docker (gitlab ci/cd)
Я попробовал способ, описанный в официальной документации gitlab, настроил базу данных на хосте и попытался подключиться с помощью DB_HOST=postgres. Но psycopg выдает ошибку: (psycopg.OperationalError) соединение плохое: имя или служба неизвестны. Мой .gitlab-ci.yml:
изображение: Python:3.11 по умолчанию: услуги: - постгрес: 15.1 до_скрипта: - python3.11 --версия - pip3.11 --версия - эхо "привет, мир" сборка-питон: этап: сборка сценарий: - эхо "это тестовое задание" - серверная часть компакт-диска - pip3.11 установить virtualenv - виртуальный венв - источник venv/bin/activate - pip3.11 install -r требования.txt - echo "завершено создание тестового задания Python" - перегонная редакция --autogenerate -m "миграция" - головка обновления перегонного куба Файл Alembic.ini, откуда я пытаюсь получить доступ к базе данных:
# Общая конфигурация одной базы данных. [перегонный куб] # путь к сценариям миграции script_location = миграции prepend_sys_path = . version_path_separator = os # Используйте os.pathsep. Конфигурация по умолчанию используется для новых проектов. sqlalchemy.url = драйвер://пользователь:pass@localhost/имя базы данных [post_write_hooks] [логгеры] ключи = корень,sqlalchemy,перегонный куб [обработчики] ключи = консоль [форматеры] ключи = общий [logger_root] уровень = ПРЕДУПРЕЖДЕНИЕ обработчики = консоль качественное имя = [logger_sqlalchemy] уровень = ПРЕДУПРЕЖДЕНИЕ обработчики = qualname = sqlalchemy.engine [logger_alembic] уровень = ИНФОРМАЦИЯ обработчики = qualname = перегонный куб [handler_console] класс = StreamHandler args = (sys.stderr,) уровень = НЕУСТАНОВЛЕНО форматтер = универсальный [formatter_generic] формат = %(имя уровня)-5.5s [%(имя)s] %(сообщение)s datefmt = %H:%M:%S sqlalchemy.url определен в env.py
config.set_main_option('sqlalchemy.url', DATABASE_URL) DATABASE_URL:
DATABASE_URL = f'postgresql+psycopg://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}' Что я пропустил? Спасибо за любую помощь.
Я попробовал способ, описанный в официальной документации gitlab, настроил базу данных на хосте и попытался подключиться с помощью DB_HOST=postgres. Но psycopg выдает ошибку: (psycopg.OperationalError) соединение плохое: имя или служба неизвестны. Мой .gitlab-ci.yml:
изображение: Python:3.11 по умолчанию: услуги: - постгрес: 15.1 до_скрипта: - python3.11 --версия - pip3.11 --версия - эхо "привет, мир" сборка-питон: этап: сборка сценарий: - эхо "это тестовое задание" - серверная часть компакт-диска - pip3.11 установить virtualenv - виртуальный венв - источник venv/bin/activate - pip3.11 install -r требования.txt - echo "завершено создание тестового задания Python" - перегонная редакция --autogenerate -m "миграция" - головка обновления перегонного куба Файл Alembic.ini, откуда я пытаюсь получить доступ к базе данных:
# Общая конфигурация одной базы данных. [перегонный куб] # путь к сценариям миграции script_location = миграции prepend_sys_path = . version_path_separator = os # Используйте os.pathsep. Конфигурация по умолчанию используется для новых проектов. sqlalchemy.url = драйвер://пользователь:pass@localhost/имя базы данных [post_write_hooks] [логгеры] ключи = корень,sqlalchemy,перегонный куб [обработчики] ключи = консоль [форматеры] ключи = общий [logger_root] уровень = ПРЕДУПРЕЖДЕНИЕ обработчики = консоль качественное имя = [logger_sqlalchemy] уровень = ПРЕДУПРЕЖДЕНИЕ обработчики = qualname = sqlalchemy.engine [logger_alembic] уровень = ИНФОРМАЦИЯ обработчики = qualname = перегонный куб [handler_console] класс = StreamHandler args = (sys.stderr,) уровень = НЕУСТАНОВЛЕНО форматтер = универсальный [formatter_generic] формат = %(имя уровня)-5.5s [%(имя)s] %(сообщение)s datefmt = %H:%M:%S sqlalchemy.url определен в env.py
config.set_main_option('sqlalchemy.url', DATABASE_URL) DATABASE_URL:
DATABASE_URL = f'postgresql+psycopg://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}' Что я пропустил? Спасибо за любую помощь.
Мобильная версия