2017-01-10 83 views
6

現在、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シェルを使うことさえできません。

私は完全に失われています。私の質問に答える

答えて

1

、これは愚かなものだった...

私manage.pyはbase.py設定ファイルを選択し、アカウントにstaging.py設定ファイルを取っていませんでした。だからCLIで壊れていて、アプリ内で壊れていない。

関連する問題