這個是Dockerfile的內容
FROM mysql
ENV MYSQL_DATABASE some_service_schema
COPY *.sql /docker-entrypoint-initdb.d/
第二行是給定預設schema
第三行的sql script就會在預設的schema上執行
值得注意的是script執行的順序是照檔名排列順序的。
本來寫了兩個script檔案,叫 "Table.sql" 和 "InitialData.sql",結果這樣就先執行了InitialData,但Table還沒建出來,就失敗了,然後失敗了也沒什麼提示(docker logs忘記看不看得到了),但失敗只是InitialData失敗,Table那個還是有成功,連線進去看DB內容就會看到有Table存在,裡面卻沒有資料,最後將這兩個檔案改成 "1.Table.sql" 和 "2.InitialData.sql" 就沒問題了。
還有,mysql image latest版本的連線有個什麼SSL的問題,在ConnectionString中加上allowPublicKeyRetrieval=true才可以連線,只加SslMode=none是無法連線的。
沒有留言:
張貼留言