我想創建帶有MySQL數據庫和轉儲加載集成測試的容器。每個測試應連接到一個新的容器,數據庫處於相同的狀態。它應該能夠讀取和寫入,但是當測試結束並且容器被銷燬時,所有更改都應該丟失。我正在使用官方碼頭回購的「mysql」圖片。如何使用填充數據庫爲自動化測試製作docker映像?
1)image's docs建議利用「入口點」腳本來導入您在特定文件夾上提供的任何.sql文件。據我所知,這將每次創建一個新的容器時再次導入轉儲,所以不是一個好的選擇。那是對的嗎?
2)SO answer建議使用RUN語句擴展該映像以啓動mysql服務並導入所有轉儲。這似乎是要走的路,但我不斷收到
mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
其次
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
當我運行構建,即使我可以連接到MySQL上的容器罰款原始圖像。我試着sleep 5
等待mysqld服務啓動,並用'localhost'或docker-machine ip添加-h。
我該如何解決「2)」?或者,有沒有更好的方法?