Dockerコンテナで「docker-compose」で構築したDjangoは、通常のコマンドでは反映されません。
コンテナ上のマシンへの設定コマンドを実施する際は、頭に「docker-compose run」を付けて実施します。
「docker-compose」で構築したDjangoで管理ユーザーを作成する方法
docker-composeを利用して作成したDjangoコンテナには、サービス名として「web」という名前を使用しています。
web: restart: always build: . command: bash -c "python manage.py runserver 0.0.0.0:8000 && python manage.py migrate" volumes: - .:/code ports: - 8000:8000 depends_on: - db container_name: django
設計の詳細は以下のページを確認してください。
【docker-compose】Django+PostgreSQL+Nginxを連携した構築手順(CentOS8+VPS環境)
Dockerコンテナのマシンでコマンドを実行する際は「docker-compose run」を実施する
Dockerコンテナ上のマシン、今回はDjango関連のコマンドを実行してもコンテナ上のDjangoには反映されません。
コンテナで動いているDjangoでコマンドを実行するには、コマンドの頭に「docker-compose run」を付けます。
以下では、構築後、データベースとの同期をとるために「mirate」コマンドを打つ例となります。
通常は「python manage.py migrate」とコマンドをたたきますが、コンテナ上のDjangoでは以下のコマンドを実行し、設定を反映します。
$ docker-compose run web python manage.py migrate Starting postgres ... done Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying sessions.0001_initial... OK
Django上で管理ユーザーを作成する際は、事前に「migrate」コマンドを実施し、同期させましょう。
Dockerコンテナの「Django」で管理ユーザー作成
Dockerコンテナ上でDjangoの管理ユーザー作成は以下のコマンドとなります。
$ docker-compose run web python manage.py createsuperuser Starting postgres ... done Username (leave blank to use 'root'): Email address: Password: Password (again): Superuser created successfully. $
上記で管理ユーザー作成が成功すると管理ページへアクセスし、作成したユーザーでアクセスできることを確認します。
http://IPアドレス/admin
Docker上でのDjangoの設定例は以上となります。
Dockerを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す