Dockerfile:無縫MySQL 設定和資料匯入
在Dockerfile 建置期間設定MySQL 並匯入資料可能會令人畏懼,但它並不必須是。讓我們解決使用提供的 Dockerfile 程式碼片段的開發人員面臨的常見錯誤:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
解決此問題的關鍵在於了解官方 MySQL Docker 映像的運作方式。在最新的迭代中,該映像引入了一項允許在啟動期間導入資料的功能。要利用此功能,您可以如下修改Dockerfile:
# Mount the data volume for persistent MySQL data storage VOLUME ["/etc/mysql", "/var/lib/mysql"] # Import database dump during Docker image build ADD dump.sql /tmp/dump.sql RUN mysql -u root -e "CREATE DATABASE mydb" RUN mysql -u root mydb < /tmp/dump.sql # Start MySQL daemon CMD ["mysqld"]
透過在末尾新增CMD ["mysqld"] 行,您的Docker 映像將在建立容器時自動啟動MySQL 守護進程,從而允許用於建置過程中的資料導入。
其他注意事項
如果您希望持久化即使容器停止或刪除,也可以考慮使用類似於以下內容的Dockerfile 建立一個單獨的資料容器:
FROM n3ziniuka5/ubuntu-oracle-jdk:14.04-JDK8 VOLUME /var/lib/mysql CMD ["true"]
此資料容器可確保即使在容器停止或刪除時也能保留您的MySQL 資料。主 MySQL 容器未運作。
總之,透過利用官方 MySQL Docker 映像的資料匯入功能並使用單獨的資料容器進行持久化,您可以在 Dockerfile 中無縫設定 MySQL 並匯入資料建置。
以上是如何在 Dockerfile 建置中無縫設定 MySQL 並匯入資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!