前提・実現したいこと
完全初心者で初めての質問になります。
dockerでのlaravel環境構築をしたいのですが、MySQLで詰まっています。
発生している問題・エラーメッセージ
docker-composeで設定した各ファイルを読み込み、コンテナは作成できたのですが
その中に作成しているmysql_test1 mysql:8.0.23がrunになったりrestartingになったりしています。
docker desktopでrestartingの状態で起動ボタンを押すと以下のエラーメッセージがでます。
Error invoking remote method 'docker-start-container': Error: (HTTP code 304) container already started -
mysql_test1 mysql:8.0.23のログを確認してみると、停止するタイミングで
mysql_test1 exited with code 1
と表示されています。
ディレクトリ構成は以下の通りです。
docker ├ docker-compose.yml ├ htdocs └ php ├ Dockerfile └ php.ini
Dockerfile
FROM php:8.0.3-apache COPY php.ini /usr/local/etc/php/
docker-compose.yml
version: "3" services: php: container_name: php_test1 build: context: ./php ports: - 8081:80 volumes: - ./htdocs:/var/www/html restart: always db: container_name: mysql_test1 image: mysql:8.0.23 volumes: - ./mysqlvol:/var/lib/mysql restart: always environment: MYSQL_DATABASE: test_db MYSQL_ROOT_PASSWORD: take098393 command: --character-set-server=utf8mb4 --collection-server=utf8mb4_unicode_ci ports: - 3306:3306
index.php
<?php $dsn = 'mysql:dbname=test_db;host=mysql_test1;port=3306;'; $user = 'root'; $password = 'password'; try { $db = new PDO($dsn, $user, $password); echo '接続成功'; } catch(PDOException $e) { echo '接続失敗' . $e->getmessage(); }
localhostに接続すると
接続失敗could not find driver
と表示されます。
試したこと
エラーメッセージで検索したり、コンテナ削除、作成をしてみたり、もう一度1から設定し直したりしたのですが解決しません…
ファイルの記述もインデント、誤字・脱字等は何度も見直しているので間違いはないと思います…
どなたかご教示いただけると幸いです。
補足情報(FW/ツールのバージョンなど)
docker 20.10.6
docker compose 1.29.1
PHP php:8.0.3-apache
MySQL MySQL:8.0.23
参考にしているサイト
https://www.webopixel.net/develop/1687.html
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/26 14:45
2021/05/27 14:13
2021/05/27 14:45