私はDokuerのHerokuプロジェクトにAngular 4フロントエンド、Djangoバックエンド、Postgresqlデータベースを配備しました。この時点で私のファイルは以下のようになります。アプリを開くと、エラーが表示されます。Heroku上でPostgresqlを使用するDjango - ホスト名 "db"をアドレスに変換できませんでした:名前またはサービスが不明です
2017-07-11T19:51:14.485577+00:00 app[web.1]: self.connect()
2017-07-11T19:51:14.485577+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/db/utils.py", line 94, in __exit__
2017-07-11T19:51:14.485578+00:00 app[web.1]: six.reraise(dj_exc_type, dj_exc_value, traceback)
2017-07-11T19:51:14.485578+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/six.py", line 685, in reraise
2017-07-11T19:51:14.485578+00:00 app[web.1]: raise value.with_traceback(tb)
2017-07-11T19:51:14.485579+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
2017-07-11T19:51:14.485579+00:00 app[web.1]: self.connect()
2017-07-11T19:51:14.485579+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/base/base.py", line 189, in connect
2017-07-11T19:51:14.485580+00:00 app[web.1]: self.connection = self.get_new_connection(conn_params)
2017-07-11T19:51:14.485580+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
2017-07-11T19:51:14.485580+00:00 app[web.1]: connection = Database.connect(**conn_params)
2017-07-11T19:51:14.485581+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect
2017-07-11T19:51:14.485581+00:00 app[web.1]: conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
2017-07-11T19:51:14.485582+00:00 app[web.1]: django.db.utils.OperationalError: could not translate host name "db" to address: Name or service not known
ローカルではすべて正常に動作しているようです。私はdocker exec -ti name /bin/bash
を使用し、次にpython {path}\manage.py migrate
を使用してデータベースを追加します。
Herokuでのデータベースの移行に問題がある可能性がありますか?
Procfile:
web: sh -c 'cd PROJECT/backend/project && gunicorn project.wsgi --log-file -'
プロジェクトツリー:
DockerProject
├── Dockerfile
├── Procfile
├── init.sql
├── requirements.txt
├── docker-compose.yml
└── PROJECT
├── frontend
└── all files
└── backend
└── project
├── prices
├── manage.py
└── project
└── all backend files
フロントエンドのDockerfile:
# Create image based on the official Node 6 image from dockerhub
FROM node:6
# Create a directory where our app will be placed
RUN mkdir -p /usr/src/app
# Change directory so that our commands run inside this new directory
WORKDIR /usr/src/app
# Copy dependency definitions
COPY package.json /usr/src/app
# Install dependecies
RUN npm install
# Get all the code needed to run the app
COPY . /usr/src/app
# Expose the port the app runs in
EXPOSE 4200
# Serve the app
CMD ["npm", "start"]
メインディレクトリのDockerfile:
FROM python:3.6.1
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip3 install -r requirements.txt
ADD . /code/
ドッキングウィンドウ-compose.yml:
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_USER: aso
POSTGRES_PASSWORD: somepass
django:
build: .
command: python3 MainDirectory/backend/myProject/manage.py runserver 0.0.0.0:8001
volumes:
- .:/code
ports:
- "8001:8001"
depends_on:
- db
angular:
build: MainDirectory/frontend
ports:
- "4200:4200"
depends_on:
- django
init.sql:
CREATE USER myUser;
CREATE DATABASE myProject;
GRANT ALL PRIVILEGES ON DATABASE myProject TO myUser;
settings.pyのデータベースの値は何ですか? –
@DanielRoseman設定で投稿を更新しました。 – wahtdbogh