現在、docker-composeで構築されたシステムを使用しています。djangoでDocker-composeを実行すると、ホスト名 "db"をアドレスに変換できませんでした。名前またはサービスが不明です
これまでは、テストビルドでコンテナ(postgresql)内のデータベースを使用しました。今度は、このコンテナからAWSのRDSインスタンスにデータベースを変更しました。
Pg_dumpを使用して、RDS内のデータベースを再作成してsettings.pyを変更しました。すべて正常に機能していました。 Webapp内のデータベースから問題なくデータにアクセスしました。
マイグレーションを実行するまではすべて問題ありませんでした。
django.db.utils.OperationalError: could not translate host name "db" to address: Name or service not known
マイドッカー-compose.ymlファイルの変更前:変更後の今
version: '2'
services:
db:
image: postgres:9.5
restart: always
environment:
POSTGRES_USER: testing
POSTGRES_PASSWORD: tests
POSTGRES_DB: test
volumes:
- /dbdata:/var/lib/postgresql/data
django:
build: ./django
command: gunicorn contactto.wsgi:application -b 0.0.0.0:8000
restart: always
volumes:
- ./django:/usr/src/app
- ./django/static:/usr/src/app/contactto/static
ports:
- "8000:8000"
depends_on:
- db
:
version: '2'
services:
django:
build: ./django
command: gunicorn contactto.wsgi:application -b 0.0.0.0:8000
restart: always
volumes:
- ./django:/usr/src/app
- ./django/static:/usr/src/app/contactto/static
ports:
- "8000:8000"
そしてデータベースコンテナがなければDjangoのコンテナは、私にこのメッセージを表示しますsettings.pyのデータベース。 前に:
DATABASES = {
'default': {
'ENGINE': 'tenant_schemas.postgresql_backend',
'NAME': 'testing',
'USER': 'test',
'PASSWORD': 'test',
'HOST': 'db',
'PORT': '5432',
}
}
後:
DATABASES = {
'default': {
'ENGINE': 'tenant_schemas.postgresql_backend',
'NAME': 'testing',
'USER': 'test',
'PASSWORD': 'test',
'HOST': 'xxx.rds.amazonaws.com',
'PORT': '5432',
}
}
奇妙なことがあり、私は私のアプリ内でAWSデータベースを使用することができます...私は、ユーザーを作成し、データベース内で物事を行うと、変更が表示されます。 CLIでは、メッセージなしでmanage.pyシェルを使うことさえできません。
私は完全に失われています。私の質問に答える