對Dockerfile 中的資料庫設定和資料匯入進行故障排除
為LAMP 專案建立Dockerfile 可能具有挑戰性,尤其是在遇到與MySQL 相關的錯誤時設定和資料導入。本文解決了使用 Dockerfile 指令設定 MySQL 和匯入轉儲時遇到的常見問題。
提供的 Dockerfile 包含幾個用於 MySQL 設定和資料載入的基本命令。但是,錯誤訊息表示無法連接到本機MySQL伺服器。為了解決這個問題,我們可以採用下面的解決方案。
使用 Docker 映像進行資料匯入的解決方案
官方 MySQL Docker 映像的最新版本提供了在啟動期間匯入資料的便利解決方案。提供的 docker-compose.yml 配置允許從指定的 SQL 檔案匯入資料:
data: build: docker/data/. mysql: image: mysql ports: - "3307:3306" environment: MYSQL_ROOT_PASSWORD: 1234 volumes: - ./docker/data:/docker-entrypoint-initdb.d volumes_from: - data
在此配置中,data-dump.sql 放置在 docker/data 目錄下。該目錄安裝到 MySQL 容器內的 /docker-entrypoint-initdb.d。
MySQL 映像中的 docker-entrypoint.sh 腳本包含一個區塊,用於解析副檔名為 .sql 的檔案並將其執行為針對 MySQL 資料庫的 SQL 查詢。這樣可以在容器啟動時匯入資料。
確保資料持久化
如果在停止並刪除 MySQL 容器後仍需要資料持久化,建議使用單獨的資料容器。資料容器的 Dockerfile 很簡單:
FROM n3ziniuka5/ubuntu-oracle-jdk:14.04-JDK8 VOLUME /var/lib/mysql CMD ["true"]
透過將資料容器掛載到 MySQL 容器,即使 MySQL 容器停止,資料仍然存在。請注意,資料容器不需要為了持久性而運作。
以上是如何排查 Docker 化 LAMP 專案中的 MySQL 設定和資料匯入錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!