質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2396閲覧

エラー(Database is uninitialized and superuser password is not specified)が解決できない。

whoiwhoi

総合スコア48

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/29 01:37

前提・実現したいこと

Quickstart: Compose and Django | Docker Documentation
上記のDockerのドキュメントに沿って、Djangoの起動を試みていますが、Connect the databaseの項のdocker-compose upで、表題のエラーが表示されます。

エラーを解決し、ローカルサーバーを立ち上げて、Djangoのウェルカムページを表示したいです。

試したこと

エラー文にあるPOSTGRES_HOST_AUTH_METHOD=trustdocker-compose.ymlに設定してみましたが、解決にいたりませんでした。

... environment: - - POSTGRES_NAME=postgres - - POSTGRES_USER=postgres - - POSTGRES_PASSWORD=postgres + - POSTGRES_HOST_AUTH_METHOD=trust ...

また、エラー文をググるとPOSTGRES_HOST_AUTH_METHOD=trustを設定することで解決する、という旨のページを複数発見できました。
しかし、前述の通り解決にはいたりませんでした。

いったん最初からやり直してみようと考え、諸々削除するコマンドをググって見つけた、docker system prune -aを実行してから、再度docker-compose upを実行しましたが、同じエラーが表示されました。

発生している問題・エラーメッセージ

[+] Running 2/2 - Container hozon_db_1 Created 0.3s - Container hozon_web_1 Created 0.9s Attaching to db_1, web_1 db_1 | Error: Database is uninitialized and superuser password is not specified. db_1 | You must specify POSTGRES_PASSWORD to a non-empty value for the db_1 | superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". db_1 | db_1 | You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all db_1 | connections without a password. This is *not* recommended. db_1 | db_1 | See PostgreSQL documentation about "trust": db_1 | https://www.postgresql.org/docs/current/auth-trust.html db_1 exited with code 1 web_1 | Watching for file changes with StatReloader ...

該当のソースコード

settings.py

py

1""" 2Django settings for composeexample project. 3 4Generated by 'django-admin startproject' using Django 3.2.10. 5 6For more information on this file, see 7https://docs.djangoproject.com/en/3.2/topics/settings/ 8 9For the full list of settings and their values, see 10https://docs.djangoproject.com/en/3.2/ref/settings/ 11""" 12 13import os 14 15from pathlib import Path 16 17# Build paths inside the project like this: BASE_DIR / 'subdir'. 18BASE_DIR = Path(__file__).resolve().parent.parent 19 20 21# Quick-start development settings - unsuitable for production 22# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/ 23 24# SECURITY WARNING: keep the secret key used in production secret! 25SECRET_KEY = 'django-insecure-79bi8-b&2*h_efj-ggk9^(t4bta5@4653eemg23+p^1ny6+88-' 26 27# SECURITY WARNING: don't run with debug turned on in production! 28DEBUG = True 29 30ALLOWED_HOSTS = [] 31 32 33# Application definition 34 35INSTALLED_APPS = [ 36 'django.contrib.admin', 37 'django.contrib.auth', 38 'django.contrib.contenttypes', 39 'django.contrib.sessions', 40 'django.contrib.messages', 41 'django.contrib.staticfiles', 42] 43 44MIDDLEWARE = [ 45 'django.middleware.security.SecurityMiddleware', 46 'django.contrib.sessions.middleware.SessionMiddleware', 47 'django.middleware.common.CommonMiddleware', 48 'django.middleware.csrf.CsrfViewMiddleware', 49 'django.contrib.auth.middleware.AuthenticationMiddleware', 50 'django.contrib.messages.middleware.MessageMiddleware', 51 'django.middleware.clickjacking.XFrameOptionsMiddleware', 52] 53 54ROOT_URLCONF = 'composeexample.urls' 55 56TEMPLATES = [ 57 { 58 'BACKEND': 'django.template.backends.django.DjangoTemplates', 59 'DIRS': [], 60 'APP_DIRS': True, 61 'OPTIONS': { 62 'context_processors': [ 63 'django.template.context_processors.debug', 64 'django.template.context_processors.request', 65 'django.contrib.auth.context_processors.auth', 66 'django.contrib.messages.context_processors.messages', 67 ], 68 }, 69 }, 70] 71 72WSGI_APPLICATION = 'composeexample.wsgi.application' 73 74# Database 75# https://docs.djangoproject.com/en/3.2/ref/settings/#databases 76 77DATABASES = { 78 'default': { 79 'ENGINE': 'django.db.backends.postgresql', 80 'NAME': os.environ.get('POSTGRES_NAME'), 81 'USER': os.environ.get('POSTGRES_USER'), 82 'PASSWORD': os.environ.get('POSTGRES_PASSWORD'), 83 'HOST': 'db', 84 'PORT': 5432, 85 } 86} 87 88# Password validation 89# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators 90 91AUTH_PASSWORD_VALIDATORS = [ 92 { 93 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 94 }, 95 { 96 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 97 }, 98 { 99 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 100 }, 101 { 102 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 103 }, 104] 105 106 107# Internationalization 108# https://docs.djangoproject.com/en/3.2/topics/i18n/ 109 110LANGUAGE_CODE = 'en-us' 111 112TIME_ZONE = 'UTC' 113 114USE_I18N = True 115 116USE_L10N = True 117 118USE_TZ = True 119 120 121# Static files (CSS, JavaScript, Images) 122# https://docs.djangoproject.com/en/3.2/howto/static-files/ 123 124STATIC_URL = '/static/' 125 126# Default primary key field type 127# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field 128 129DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' 130

docker-compose.yml

yml

1version: "3.9" 2 3services: 4 db: 5 image: postgres 6 volumes: 7 - ./data/db:/var/lib/postgresql/data 8 web: 9 build: . 10 command: python manage.py runserver 0.0.0.0:8000 11 volumes: 12 - .:/code 13 ports: 14 - "8000:8000" 15 environment: 16 - POSTGRES_NAME=postgres 17 - POSTGRES_USER=postgres 18 - POSTGRES_PASSWORD=postgres 19 depends_on: 20 - db

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

postgresのコンテナを立てるときにenvironmentにDB名、ユーザー名、パスワードを設定しないと接続エラーになります(自分も同じところでつまづきました…)
なのでdbコンテナを立てるときにenvironmentに以下の値を設定すると立ち上がるはずです。

yaml

1environment: 2 - POSTGRES_DB=postgres 3 - POSTGRES_USER=postgres 4 - POSTGRES_PASSWORD=postgres

投稿2021/12/29 04:16

Supernove

総合スコア1154

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

whoiwhoi

2021/12/29 08:19 編集

最初はドキュメントの通り、db、user、passwordをそれぞれを書いていたのですが、表題のエラーが出たのでPOSTGRES_HOST_AUTH_METHOD=trustを書いてみた次第です。
Supernove

2021/12/29 08:27 編集

説明不足でしたかね… webコンテナではなくdbコンテナにも同様に設定してもだめでした? db: image: postgres volumes: - ./data/db:/var/lib/postgresql/data environment: - POSTGRES_DB=postgres - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres
whoiwhoi

2021/12/29 09:09

無事ウェルカムページにたどり着けました!!!!!! ありがとうございました。 > postgresのコンテナを立てるときに と書いていただいているので、説明不足ではないです。 失礼いたしました。 コードはドキュメントからコピペしてただけなので、dbにもenv書かねばならぬ、という事実は知りませんでした。 ドキュメントちゃんと読んでみます。 読んでみて見当たらなかったらDockerのGithubのIssueなりなんなりに、見当たらなかったよ!どこに書いてあるんだい!って聞いてみます。
Supernove

2021/12/29 10:38

良かったです! 実は日本語版を読みながらやってたら同じことに躓いたのでPR出したことがありますw https://github.com/zembutsu/docs.docker.jp/pull/301 前は公式ドキュメントの設定にenvironmentがあった気がするんですけどね…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問