docker含むエンジニア初心者です。
今現在、オリジナルプログラムを制作しています。そこで、どうしてもphpmyadminからnodeコンテナ内にあるmysqlのdbにアクセスがしたいです。ただ、2週間以上できず、どなたかご教授いただけないでしょうか。
前提・実現したいこと
dockerを使用して、phpmyadminコンテナとnodeコンテナを立ち上げました。そして、dockerfileのCMDを使用して、nodeコンテナにmysqlがインストールされるようにしました。mysqlがインストールされていることは確認済みで、空のテーブルを作成しています。(start.upとstartdata.sqlのスクリプトファイルを使って。)
phpmyadminでnodeコンテナ内にあるmysqlにアクセスしたいです。
発生している問題・エラーメッセージ
該当のソースコード
- docker-compose.yml
version: "3.7" services: app: privileged: true networks: - node-network build: ./docker/ container_name: node_miwa tty: true stdin_open: true volumes: - ./:/app - ./docker/startdata.sql:/docker-entrypoint-initdb.d/startdata.sql - ./docker/my.cnf:/etc/my.cnf environment: DEBIAN_FRONTEND: noninteractive MYSQL_USER: root MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: test_db TZ: "Asia/Tokyo" ports: - "3306:3306" phpmyadmin: networks: - node-network links: - app depends_on: - app image: phpmyadmin/phpmyadmin container_name: phpmyadmin_miwa restart: always ports: - "8080:80" volumes: - ./:/app - ./docker/startdata.sql:/docker-entrypoint-initdb.d/startdata.sql - ./docker/my.cnf:/etc/my.cnf environment: PMA_ARBITARY: 1 PMA_HOSTS: app MYSQL_ROOT_USER: root MYSQL_ROOT_PASSWORD: password networks: node-network: driver: bridge
- Dockerfile
# ベースイメージを指定 FROM node:14.0.0 ENV NODE_ENV=development # ディレクトリを移動する WORKDIR /app # ポート3000番を開放する EXPOSE 3000 # nodeコンテナ立ち上げ時に、mysqlをインストールする為のコマンド COPY startup.sh /startup.sh RUN chmod 744 /startup.sh CMD ["/startup.sh"]
- startup.sh
#!/usr/bin/env sh apt-get apt update apt install -y mysql-server apt install -y iptables-persistent apt-get update apt-get install -y vim apt-get install -y iputils-ping net-tools service mysql start chmod 600 /etc/my.cnf mysql -u root < /docker-entrypoint-initdb.d/startdata.sql tail -f /dev/null
- startdata.sql
CREATE DATABASE test_db; create table test_db.test_table(id int not null primary key, user text not null, favarite_food text, morning_time date, animation text); show columns from test_db.test_table;
試したこと
ネットの情報などを見て、できそうなことは全てやったつもりです。
例えば、docker-compose.ymlでenvironmentのPMA_HOSTをappにするなどです。
しかし、どの記事を見ても、nodeコンテナ内にmysqlをインストールして、アクセスを試みている人はいなく、phpmyadminとmysqlの2つのコンテナがある環境で、アクセスを試みています。ですので、私がやりたいのと少し異なります。
補足情報
どなたかご教授いただけますと、本当に幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/28 15:50
2021/11/28 16:24