国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

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

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

我正在處理的 Laravel 項(xiàng)目的自述文件中有一個(gè)命令,它展示了如何通過從位于主機(jī)中的文件發(fā)送查詢來填充本地 MySQL docker 映像上的一些數(shù)據(jù)。

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)測(cè)試過 docker ... printenv 確實(shí)顯示了文件中的變量。但是回顯其中一個(gè)會(huì)輸出一個(gè)空行: docker ... echo $DB_PASSWORD 并使用它運(yùn)行MySQL命令,讓我“訪問被拒絕用戶'root'@'localhost'”

我嘗試“直接”運(yùn)行MySQL命令: docker ... mysql ... < file.sql ,也嘗試“間接”運(yùn)行: docker bash -c "mysql ..." < file.sql 。

P粉521748211
P粉521748211

全部回復(fù)(2)
P粉403804844

可能有兩種情況。

  1. 檢查 env 文件中的密鑰名稱和 docker run 命令
  2. 檢查您要映射到的 env 文件的路徑。
P粉464082061

您應(yīng)該防止 shell 擴(kuò)展局部變量(通過單引號(hào)或轉(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)站素材
前端模板