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

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

新規登録して質問してみよう
ただいま回答率
85.47%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Docker

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

Q&A

解決済

1回答

1710閲覧

CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.

tomi2904

総合スコア22

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Django

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Docker

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

0グッド

0クリップ

投稿2022/08/29 23:54

docker-composeでDjango+MySQLの環境を作りたい

docker-composeでDjango+MySQLの環境を作るため以下のDockerfileとdocker-composeを作成しました。
その後docker-compose upを行うとdb側は立ち上がるのですがweb側はCommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False. とエラーが出てうまく立ち上がりません。

Djangoのsettings.pyでALLOWED_HOSTS = ['*']としてもうまくいきませんでした。どうすればよろしいでしょうか。

Dockerfile

Dockerfile

1FROM python:3.9 2ENV PYTHONUNBUFFERED 1 3RUN mkdir /code 4WORKDIR /code 5ADD requirements.txt /code/ 6RUN pip install --upgrade pip 7RUN pip install -r requirements.txt 8ADD . /code/
docker-compose.yml

yaml

1version: '3' 2 3services: 4 db: 5 image: mysql 6 env_file: 7 - ./.vscode/.env 8 9 web: 10 build: . 11 command: python3 manage.py runserver 0.0.0.0:8000 12 volumes: 13 - .:/code 14 ports: 15 - "8000:8000" 16 depends_on: 17 - db
出力結果
db_1 | 2022-08-29 13:08:28+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started. db_1 | 2022-08-29 13:08:29+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' db_1 | 2022-08-29 13:08:29+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started. db_1 | '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock' db_1 | 2022-08-29T13:08:29.805758Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. db_1 | 2022-08-29T13:08:29.807234Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.30) starting as process 1 db_1 | 2022-08-29T13:08:29.815036Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. db_1 | 2022-08-29T13:08:30.333148Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. db_1 | 2022-08-29T13:08:30.467808Z 0 [System] [MY-010229] [Server] Starting XA crash recovery... db_1 | 2022-08-29T13:08:30.526247Z 0 [System] [MY-010232] [Server] XA crash recovery finished. db_1 | 2022-08-29T13:08:30.573352Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. db_1 | 2022-08-29T13:08:30.573407Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. db_1 | 2022-08-29T13:08:30.575009Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. db_1 | 2022-08-29T13:08:30.596703Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.30' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. db_1 | 2022-08-29T13:08:30.597104Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock db_1 | 2022-08-29 13:17:16+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started. db_1 | 2022-08-29 13:17:16+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' db_1 | 2022-08-29 13:17:17+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.30-1.el8 started. db_1 | '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock' db_1 | 2022-08-29T13:17:17.551676Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. db_1 | 2022-08-29T13:17:17.553050Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.30) starting as process 1 db_1 | 2022-08-29T13:17:17.565245Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. db_1 | 2022-08-29T13:17:18.020379Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. db_1 | 2022-08-29T13:17:18.148925Z 0 [System] [MY-010229] [Server] Starting XA crash recovery... db_1 | 2022-08-29T13:17:18.157516Z 0 [System] [MY-010232] [Server] XA crash recovery finished. db_1 | 2022-08-29T13:17:18.207169Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. db_1 | 2022-08-29T13:17:18.207223Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. db_1 | 2022-08-29T13:17:18.209375Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. db_1 | 2022-08-29T13:17:18.230643Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.30' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. db_1 | 2022-08-29T13:17:18.230649Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock web_1 | CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False. associating_game_web_1 exited with code 1

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

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

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

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

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

tomi2904

2022/08/30 05:39

`python3 manage.py runserver 0.0.0.0:8000` のコマンドで`CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.`となってしまっているようです。
rykss

2022/09/04 08:44

setting.pyのコードを載せてもらえると回答できる方がいらっしゃるかもしれません よかったら載せてくださいね 完全に予想なのですがALLOWED_HOSTSの位置が悪いかもしれません。(空リストで再定義されているなど…)
tomi2904

2022/09/04 12:19

解答ありがとうございます。原因はweb側に.envのパスを記述していないがために、名前を変えてしまったsettings.pyが読み込めずエラーになるというものでした。お手数おかけしました。
guest

回答1

0

自己解決

web側のコンテナにもenv_fileのパスを記述する必要があった

原因はwebの方にenv_fileのパスを記述していなかったためでした。デフォルトだとsettings.pyが読み込まれるため特に意識する必要はないのですが、私はsettings.pyの名前を別の名前に変更しており、その変更を.envで処理するようにしていたところ、web側で.envの環境変数を読み込めずsettings.pyも読めずエラーになるという具合でした。

解答していただいた方ありがとうございました。

yaml

1version: '3' 2 3services: 4 db: 5 image: mysql 6 env_file: ./.vscode/.env 7 8 web: 9 env_file: ./.vscode/.env # この1行を追加したら動きました 10 build: . 11 command: python manage.py runserver 0.0.0.0:8000 12 volumes: 13 - .:/code 14 ports: 15 - "8000:8000" 16 depends_on: 17 - db

投稿2022/09/04 12:17

tomi2904

総合スコア22

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問