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

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

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

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

Docker

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

Q&A

解決済

1回答

439閲覧

docker-composeを使ったDjango  http://127.0.0.1:8000/ が表示されない

aiai8976

総合スコア112

Django

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

Docker

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

0グッド

1クリップ

投稿2019/04/19 07:24

編集2019/04/19 13:46

前提・実現したいこと

https://www.djangobrothers.com/tutorials/blog_app/first_app/ を見ながらdjangoの勉強をしているものです。
docker-composeを使ってその中で立てたwebコンテナ内でdjangoを使っています。
先ほどのページの最後のURL時にサイトが表示してくれません。
docker上の問題なのか手順の間違いなのかよくわかりません。
回答お願いします。

###ツリー

todo ➤ tree git:master* . ├── Dockerfile ├── composeexample │   ├── __init__.py │   ├── __init__.pyc │   ├── __pycache__ │   │   ├── __init__.cpython-37.pyc │   │   ├── settings.cpython-37.pyc │   │   ├── urls.cpython-37.pyc │   │   └── wsgi.cpython-37.pyc │   ├── settings.py │   ├── settings.pyc │   ├── urls.py │   ├── urls.pyc │   └── wsgi.py ├── docker-compose.yml ├── journals │   ├── __init__.py │   ├── __pycache__ │   │   ├── __init__.cpython-37.pyc │   │   ├── admin.cpython-37.pyc │   │   ├── models.cpython-37.pyc │   │   ├── urls.cpython-37.pyc │   │   └── views.cpython-37.pyc │   ├── admin.py │   ├── apps.py │   ├── migrations │   │   ├── __init__.py │   │   └── __pycache__ │   │   └── __init__.cpython-37.pyc │   ├── models.py │   ├── templates │   │   └── journals │   │   └── index.html │   ├── tests.py │   ├── urls.py │   └── views.py ├── manage.py ├── requirements.txt └── todo-github 9 directories, 30 files

###エラーコード

ModuleNotFoundError: No module named 'journals.urls'

該当のソースコード

journals/urls.py

journals/urls.py

1from django.urls import path 2from . import views 3 4app_name = 'journals' 5urlpatterns = [ 6 path('', views.index, name='index'), 7] 8

journals/views.py

journals/views.py

1from django.shortcuts import render 2 3 4def index(request): 5 return render(request, 'journals/index.html') 6

composeexample/urls.py

composeexample/urls.py

1from django.contrib import admin 2from django.urls import path, include 3 4urlpatterns = [ 5 path('admin/', admin.site.urls), 6 path('', include('journals.urls')), 7] 8

journals/templates/journals/index.html

journals/templates/journals/index.html

1<h1>ブログサイト</h1> 2<p>ここはトップページです!</p> 3

dockercompose.yml

dockercompose.yml

1version: '3' 2 3services: 4 db: 5 image: postgres 6 web: 7 build: . 8 command: python manage.py runserver 0.0.0.0:8000 9 volumes: 10 - .:/code 11 ports: 12 - "8000:8000" 13 depends_on: 14 - db 15

Dockerfile

FROM python:3 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code COPY requirements.txt /code/ RUN pip3 install -r requirements.txt COPY . /code/

補足情報(FW/ツールのバージョンなど)

python: 3.7.2
Django: 2.2

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

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

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

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

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

zembutsu

2019/04/19 07:38

Docker Composeであれば、お使いになられた `docker-compose.yml` も追記いただけるとアドバイスできると思います(一般的に、コンテナのポートを公開(expose)する設定がないか適切ではない場合が考えられます)。
aiai8976

2019/04/19 07:44

載せましたので確認お願いします。
iwamot

2019/04/19 10:05

`docker-compose up` はしていますか? しているなら、何らかのエラーログが出ていませんか?
aiai8976

2019/04/19 12:07

エラー書いていました! もともとblogsだったので今回はjournalsに変えただけなのですが、、 載せましたので確認お願いします。
guest

回答1

0

ベストアンサー

path('', include('journals.urls')), のところでエラーになっているということですよね。settings.py の INSTALLED_APPS に journals は追加されていますか?

そんなふうに、これまで進めてきた部分をひとつひとつ見直してみるとよいと思います。

投稿2019/04/19 12:26

iwamot

総合スコア1154

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

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

aiai8976

2019/04/19 12:42

追加してました! 見直してみましたがこれといったものはありませんでした。
iwamot

2019/04/19 12:53

うーん、合ってそうですけどね。あとは、ディレクトリ名やファイル名にタイプミスがないかとか、編集後のファイルがDockerコンテナにちゃんと反映されているか(マウントされているはずなので大丈夫だとは思いますが)とか、そのあたりが気になります。
aiai8976

2019/04/19 13:12

ディレクトリ名、ファイル名も大丈夫です。 編集後のファイルがDockerコンテナにちゃんと反映されているかというのはどこを見ればいいですか?
iwamot

2019/04/19 13:22

`docker-compose exec web bash` でコンテナに入れると思います。その後、`ls` とか `cat` とかでファイルの状態を確認するイメージです。 そういえば、docker-compose.yml に `working_dir` が指定されていないですね。Dockerfile に WORKDIR は書かれていますか?
aiai8976

2019/04/19 13:27

なるほど。 ソース載せました。 一応やっているかと思います。
iwamot

2019/04/19 13:35

ますます問題なさそうですね。何度も申し訳ないのですが、ホスト上あるいはコンテナ上で `tree` コマンドが実行可能でしたら、作業ディレクトリでの `tree` の結果が知りたいです。
aiai8976

2019/04/19 13:46

こちらこそお時間とっていただきありがとうございます。 実行結果載せましたので確認お願いします。
iwamot

2019/04/19 14:12

ファイル構成も問題なさそうですし、原因が分からないですね。ディレクトリの中身をまるっとGitHubに上げていただくのは難しいでしょうか。難しいようなら無理はなさらないでください。まだ序盤だと思いますので、Djangoプロジェクトを作るところからまた始めてもよいかもしれません。
iwamot

2019/04/19 15:37

下記の手順でアクセスできました。確認手順の問題じゃないかと思います。 $ git clone https://github.com/Ryo-ta8976/todo-github.git $ cd todo-github $ sudo docker-compose up # DB起動が間に合わずNG $ sudo docker-compose up $ curl http://localhost:8000/ <h1>ブログサイト</h1> <p>ここはトップページです!</p>
iwamot

2019/04/19 15:39

あ、もちろんIPアドレス指定でも同じ結果です。 $ curl http://127.0.0.1:8000/ <h1>ブログサイト</h1> <p>ここはトップページです!</p>
aiai8976

2019/04/19 22:45

docker-compose down した後にdocker-compose upすればいけました! ありがとうございます! このエラーの時はdocker-compose upではなく、docker-compose --buildとしていましたがこれは関係ないんでしょうか。
iwamot

2019/04/20 01:45

よかったです。`docker-compose up --build` だとしたら、やはりその前に `docker-compose down` しないとダメだと思います。`docker-compose build` だとしたら、イメージがビルドされるだけなので、既存のコンテナには影響しません。
aiai8976

2019/04/20 08:13

なるほど。 ご丁寧にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問