初学者ですが、Dockerとデータベースの操作について疑問がわきました。
既に本番環境へデプロイ済みのデータベースに対して、コンテナで立ち上げた開発中のWebアプリからCRUD操作を行ってみたいと考えましたが、そのようなことは可能でしょうか?
とりあえず試しに、以下PHPファイルを用意してみました。
php
1$dsn = 'mysql:host=ホスト名;port=ポート番号;dbname=データベース名'; 2$user = 'ユーザー名'; 3$password = 'パスワード'; 4 5try { 6 $pdo = new PDO($dsn, $user, $password); 7 // 何らかの処理 8} catch (PDOException $e) { 9 echo 'Connection failed: ' . $e->getMessage(); 10}
上記コードは、契約しているウェブサーバーにアップロードすると正常に機能し、ターゲットとなるデータベースから値を取得することに成功しましたが、私がDockerで起動したApache環境では、**「Connection failed: SQLSTATE[HY000] [2002] No such file or directory」**とのエラーが発生しPDO接続に失敗してしまいます。
Dockerfileとdocker-compose.ymlファイルの中身は以下なのですが、コンテナから外部データベースに接続する場合に特別な処理が必要でしたら、やり方をご教示いただけると嬉しいです。初学者のため、根本的な理解が誤っているかもしれませんが、よろしくお願いいたします・・・!
Dockerfile
1 FROM php:7.4-apache 2 3# Install PDO MySQL extension 4RUN docker-php-ext-install pdo_mysql
docker
1services: 2 my-apache-php-app: 3 build: . 4 ports: 5 - "80:80" 6 volumes: 7 - .:/var/www/html

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/06/27 01:13
2024/06/27 01:40