亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

將指令中的密碼從 .env 傳遞到 docker 內(nèi)的 mysql
P粉521748211
P粉521748211 2024-03-26 09:38:42
0
2
579

我對docker基本上一無所知。關(guān)於 bash 也沒有那麼多。所以:

我正在處理的 Laravel 專案的自述文件中有一個命令,它展示瞭如何透過從位於主機中的文件發(fā)送查詢來填充本機 MySQL docker 映像上的一些資料。

docker exec -i {image} mysql -uroot -p{password} {database} < location/of/file.sql

我想要做的是從 README 中「隱藏」密碼,並使其從 .env 檔案中讀取

所以,我想做這樣的事情:

docker exec --env-file=.env -i {image} mysql -uroot -p$DB_PASSWORD {database} < location/of/file.sql

我已經(jīng)測試過 docker ... printenv 確實顯示了檔案中的變數(shù)。但是回顯其中一個會輸出一個空白行:docker ... echo $DB_PASSWORD 並使用它運行MySQL命令,讓我“訪問被拒絕用戶'root'@'localhost '”

我嘗試「直接」執(zhí)行MySQL指令: docker ... mysql ... < file.sql ,也嘗試「間接」執(zhí)行: docker bash -c "mysql .. ." < file.sql 。

P粉521748211
P粉521748211

全部回覆(2)
P粉403804844

可能有兩種情況。

  1. 檢查 env 檔案中的金鑰名稱和 docker run 指令
  2. 檢查您要對應(yīng)到的 env 檔案的路徑。
P粉464082061

您應(yīng)該防止 shell 擴展局部變數(shù)(透過單引號或轉(zhuǎn)義 $

這應(yīng)該會傳遞到容器 shell 並在那裡展開:

docker exec --env-file=.env -i {image} bash -c 'mysql -uroot -p$DB_PASSWORD {database}' 
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板