Как я могу решить django.db.utils.OperationalError, когда я пытаюсь перенести данные, когда я запускаю команду создания докера?

В настоящее время я работаю над проектом по развертыванию приложения django с использованием docker compose, но я продолжаю получать django.db.utils.OperationalError, когда пытаюсь перенести данные при запуске команды docker compose up.

Это полная ошибка, которую я получаю;

 => ERROR [6/7] RUN python3 manage.py makemigrate --settings=core.settings.production                             4.5s
------
 > [6/7] RUN python3 manage.py makemigrate --settings=core.settings.production:
#0 3.964 /usr/local/lib/python3.10/site-packages/django/core/management/commands/makemigrations.py:158: RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default': could not translate host name "postgres" to address: Name or service not known
#0 3.964 
#0 3.964   warnings.warn(
#0 3.985 No changes detected in app 'tags'
#0 4.016 No changes detected in app 'users'
#0 4.050 No changes detected in app 'content'
#0 4.081 No changes detected in app 'actions'
#0 4.102 Traceback (most recent call last):
#0 4.102   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 289, in ensure_connection
#0 4.104     self.connect()
#0 4.104   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
#0 4.105     return func(*args, **kwargs)
#0 4.105   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 270, in connect
#0 4.106     self.connection = self.get_new_connection(conn_params)
#0 4.106   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
#0 4.107     return func(*args, **kwargs)
#0 4.107   File "/usr/local/lib/python3.10/site-packages/django/db/backends/postgresql/base.py", line 269, in get_new_connection
#0 4.108     connection = self.Database.connect(**conn_params)
#0 4.108   File "/usr/local/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
#0 4.109     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
#0 4.109 psycopg2.OperationalError: could not translate host name "postgres" to address: Name or service not known
#0 4.109 
#0 4.109 
#0 4.109 The above exception was the direct cause of the following exception:
#0 4.109 
#0 4.109 Traceback (most recent call last):
#0 4.109   File "/noted/noted/manage.py", line 22, in <module>
#0 4.110     main()
#0 4.110   File "/noted/noted/manage.py", line 18, in main
#0 4.111     execute_from_command_line(sys.argv)
#0 4.111   File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
#0 4.112     utility.execute()
#0 4.112   File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 436, in execute
#0 4.113     self.fetch_command(subcommand).run_from_argv(self.argv)
#0 4.113   File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 412, in run_from_argv
#0 4.115     self.execute(*args, **cmd_options)
#0 4.115   File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 458, in execute
#0 4.115     output = self.handle(*args, **options)
#0 4.117   File "/noted/noted/common/management/commands/makemigrate.py", line 19, in handle
#0 4.118     call_command("migrate")
#0 4.120   File "/usr/local/lib/python3.10/site-packages/django/core/management/__init__.py", line 194, in call_command
#0 4.120     return command.execute(*args, **defaults)
#0 4.120   File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 458, in execute
#0 4.121     output = self.handle(*args, **options)
#0 4.121   File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 106, in wrapper
#0 4.121     res = handle_func(*args, **kwargs)
#0 4.121   File "/usr/local/lib/python3.10/site-packages/django/core/management/commands/migrate.py", line 117, in handle
#0 4.124     executor = MigrationExecutor(connection, self.migration_progress_callback)
#0 4.125   File "/usr/local/lib/python3.10/site-packages/django/db/migrations/executor.py", line 18, in __init__
#0 4.128     self.loader = MigrationLoader(self.connection)
#0 4.128   File "/usr/local/lib/python3.10/site-packages/django/db/migrations/loader.py", line 58, in __init__
#0 4.129     self.build_graph()
#0 4.130   File "/usr/local/lib/python3.10/site-packages/django/db/migrations/loader.py", line 235, in build_graph
#0 4.131     self.applied_migrations = recorder.applied_migrations()
#0 4.132   File "/usr/local/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 81, in applied_migrations
#0 4.132     if self.has_table():
#0 4.134   File "/usr/local/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 57, in has_table
#0 4.134     with self.connection.cursor() as cursor:
#0 4.134   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
#0 4.135     return func(*args, **kwargs)
#0 4.135   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 330, in cursor
#0 4.135     return self._cursor()
#0 4.135   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 306, in _cursor
#0 4.136     self.ensure_connection()
#0 4.136   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
#0 4.136     return func(*args, **kwargs)
#0 4.137   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 288, in ensure_connection
#0 4.138     with self.wrap_database_errors:
#0 4.138   File "/usr/local/lib/python3.10/site-packages/django/db/utils.py", line 91, in __exit__
#0 4.141     raise dj_exc_value.with_traceback(traceback) from exc_value
#0 4.142   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 289, in ensure_connection
#0 4.144     self.connect()
#0 4.144   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
#0 4.144     return func(*args, **kwargs)
#0 4.144   File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 270, in connect
#0 4.145     self.connection = self.get_new_connection(conn_params)
#0 4.145   File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
#0 4.145     return func(*args, **kwargs)
#0 4.145   File "/usr/local/lib/python3.10/site-packages/django/db/backends/postgresql/base.py", line 269, in get_new_connection
#0 4.146     connection = self.Database.connect(**conn_params)
#0 4.146   File "/usr/local/lib/python3.10/site-packages/psycopg2/__init__.py", line 122, in connect
#0 4.146     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
#0 4.146 django.db.utils.OperationalError: could not translate host name "postgres" to address: Name or service not known
#0 4.146 
------
failed to solve: process "/bin/sh -c python3 manage.py makemigrate --settings=core.settings.production" did not complete successfully: exit code: 1

Это мои настройки базы данных в django

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql_psycopg2",
        "NAME": get_env_variable("DATABASE_NAME"),
        "USER": get_env_variable("DATABASE_USER"),
        "PASSWORD": get_env_variable("DATABASE_PASSWORD"),
        "HOST": get_env_variable("DATABASE_HOST"),
        "PORT": get_env_variable("DATABASE_PORT"),
    }
}

Это содержимое моего файла докеров

FROM python:3.10

WORKDIR /noted

COPY . .

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1 

RUN pip install -r requirements/production.txt \
    && apt-get update \
    && apt-get -y install wkhtmltopdf \
    && apt-get -y autoclean

EXPOSE 8000

WORKDIR /noted/noted

RUN python3 manage.py makemigrate --settings=core.settings.production

RUN manage.py collectstatic --noinput --settings=core.settings.production

# Set the entry point command for gunicorn
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "core.wsgi"]

Это мой контент для создания докеров

version: '3'
services:
    app:
        build:
            context: .
        container_name: noted_app
        env_file: .env
        volumes:
            - ./noted:/noted
        ports:
          - 8000:8000
        networks:
            - noted-network
        depends_on:
            postgres:
                condition: service_healthy

    postgres:
        image: postgres
        restart: always
        container_name: postgres
        volumes:
            - ./postgres_data:/var/lib/postgresql/data/
        ports:
            - 5432:5432
        networks:
            - noted-network
        env_file:
            - .env
        environment:
            - POSTGRES_USER=${DATABASE_USER}
            - POSTGRES_DB=${DATABASE_NAME}
            - POSTGRES_PASSWORD=${DATABASE_PASSWORD}
               
        healthcheck:
            test: ["CMD-SHELL", "sh -c 'pg_isready -U ${DATABASE_USER} -d ${DATABASE_NAME}'"]
            interval: 10s
            timeout: 3s
            retries: 3

networks:
  noted-network:

Это мои переменные базы данных в моем файле .env

DATABASE_NAME=postgres
DATABASE_USER=postgres
DATABASE_PASSWORD=postgres
DATABASE_HOST=postgres
DATABASE_PORT=5432

Мой файл docker-compose.yml и файл .env находятся в одном месте. Пожалуйста, как я могу пройти эту ошибку.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
100
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Почему команда такая?

python3 manage.py makemigrate

Должен быть

python3 manage.py makemigrations
python3 manage.py migrate

Другие вопросы по теме