前提・実現したいこと
Dockerでアプリケーションとデータベースを別のコンテナで作成し、アプリコンテナからデータベースコンテナにアクセスしたいです。
アプリケーションはDjango、データベースはMariaDBを使用しています。
発生している問題・エラーメッセージ
各コンテナはエラーなく稼働していますが、アプリコンテナからデータベースを確認できません。
該当のソースコード
【ディレクトリ構成】
test
├── django
│ ├── Dockerfile
│ ├── docker-compose.yml
│ └── mysite
│ └── (Djangoプロジェクトの構成ファイルやnginx・uwsgiのコンフィグファイル)
└── mariadb
. ├── docker-compose.yml
. └── initdb.d
. └── init.sql(表示するデータベースの内容)
【ファイル内容】
[test/django/Dockerfile] FROM centos:8 RUN dnf update -y RUN dnf install python3 python3-devel mariadb mariadb-server mariadb-devel nginx -y RUN dnf -y groupinstall base "Development tools" RUN pip3 install django uwsgi mysqlclient RUN cd /etc/nginx/ ; sed -i -e '37i include /home/mysite/*.conf;' nginx.conf ADD ./mysite/uwsgi.service /etc/systemd/system/ RUN systemctl enable mariadb nginx uwsgi
[test/django/docker-compose.yml] version: '3' services: app: build: . ports: - 8000:80 volumes: - /home/usr/test/django/mysite:/home/mysite tty: true stdin_open: true privileged: true command: /sbin/init networks: - django_mariadb_network networks: django_mariadb_network: external: true
[test/mariadb/docker-compose.yml] version: '3' services: mariadb: image: mariadb:latest container_name: mariadb environment: MYSQL_USER: root MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: django ports: - 3307:3307 volumes: - ./initdb.d:/docker-entrypoint-initdb.d networks: - django_mariadb_network networks: django_mariadb_network: external: true
試したこと
terminal
1$ cd /test/mariadb 2$ docker-compose up -d --build 3$ cd /test/django 4$ docker-compose up -d --build 5$ docker exec -it [djangoコンテナのID] /bin/bash 6 # mysql -u root 7 > show databases; 8 →init.sqlの内容が表示されない(データベースと接続できていない)
mariadbコンテナに入り、mysqlにrootログインする際は上記のパスワードが求められ、またinit.sqlの内容も表示されます。
不足情報等ありましたらご指摘いただければ幸いです。
補足情報(FW/ツールのバージョンなど)
Docker version 19.03.12
docker-compose version 1.25.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。