前提・実現したいこと
docker上でエラーなく、DjangoのChannelsを用いたサンプルチャットアプリを動かしたいです。まずは、GithubのReadme.mdに書かれていたように動かしていたのですが、エラーが出てしまい、できるだけ怪しいところを調べて修正してみたりしたのですが、全てダメでした。(知識不足なのでそれほどたくさんのことも試せていませんが...)
発生している問題・エラーメッセージ
django_1 | File "/usr/local/lib/python3.6/socket.py", line 745, in getaddrinfo django_1 | for res in _socket.getaddrinfo(host, port, family, type, proto, flags): django_1 | socket.gaierror: [Errno -2] Name or service not known django_1 | django_1 | During handling of the above exception, another exception occurred: .................... django_1 | pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'mysql' ([Errno -2] Name or service not known)") .................... mysql_1 | 2020-06-04 10:23:22+00:00 [Note] [Entrypoint]: Initializing database files mysql_1 | mysqld: [Warning] World-writable config file '/etc/mysql/my.cnf' is ignored. mysql_1 | 2020-06-04T10:23:22.988744Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). mysql_1 | 2020-06-04T10:23:23.001398Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. mysql_1 | 2020-06-04T10:23:23.001908Z 0 [ERROR] Aborting mysql_1 | channels_demo-master_mysql_1 exited with code 1
該当のソースコード
settingpy
1import pymysql 2pymysql.install_as_MySQLdb() 3 4DATABASES = { 5 'default': { 6 'ENGINE': 'django.db.backends.mysql', 7 'NAME': 'test', 8 'USER': 'test', 9 'PASSWORD': 'test', 10 'HOST': 'mysql', 11 'PORT': 3306, 12 'OPTIONS': {'charset': 'utf8mb4'} 13 } 14}
Dockercomposeyml
1... 2 mysql: 3 image: mysql:5.7 4 ports: 5 - 3306:3306 6 environment: 7 - MYSQL_ROOT_PASSWORD=test # YOUR PASSWORD 8 - MYSQL_ROOT_HOST=% 9 volumes: 10 - ./db/db-datadir:/var/lib/mysql 11 - ./db:/docker-entrypoint-initdb.d 12 - ./db/my.cnf:/etc/mysql/my.cnf 13...
試したこと
こちらの記事➡Django Channels でチャットアプリ作成(Python)
を参考にして、Django Channelsで簡単なチャットアプリのようなものを作ろうとしています。この記事のリンク先にあったgithubのコード(masanori0209/channels_demo)に従って、docker上でプログラムを動かそうとdocker-compose up-dや、docker-compose upなどのコマンドを実行しましたが、エラーが出てしまいます。
対処としては、setting.pyのhostの内容を書き換えたりしましたが、全然解決されませんでした。
私自身mysql等のことはほとんどわからない上に、Dockerも初心者なので、どこか根本的なところでつまずいていると思っているのですが、何かわかる方がいらっしゃれば教えていただきたいです。
補足情報(実行環境)
######Docker-toolbox(win10 home edition)
######requirement.txtの内容↓
channels_redis==2.2.1
asgiref==2.3.0
channels==2.1.2
daphne==2.2.1
Django>=2.1.10,<2.2
PyMySQL==0.9.2
pytz==2018.5
redis==2.10.6
uwsgi==2.0.17.1
mysql-connector-python
mysqlclient
回答1件
あなたの回答
tips
プレビュー