我正在使用 spotify-docker-client 創(chuàng)建并啟動一個 mysql 容器進(jìn)行測試。它工作完美,但我很難找到如何設(shè)置某些值以連接到數(shù)據(jù)庫,如MYSQL_ROOT_PASSWORD、MYSQL_DATABASE、MYSQL_USER和MYSQL_PASSWORD。這是我的代碼:final ContainerConfig containerConfig = ContainerConfig.builder() .hostConfig(hostConfig) .image(image) .env("MYSQL_ROOT_PASSWORD","testrootpwd","MYSQL_DATABASE", "test", "MYSQL_USER", "test", "MYSQL_PASSWORD", "test") .build();LOG.debug("Creating container for image: {}", image);final ContainerCreation creation = this.docker.createContainer(containerConfig);我假設(shè).env調(diào)用是設(shè)置環(huán)境變量。根據(jù) mysql 容器文檔,設(shè)置這些 env 變量是這樣做的方法:https://hub.docker.com/_/mysql但是,我仍然無法連接到容器,我連接到 bash,但我看到那些環(huán)境變量沒有設(shè)置。有誰知道該怎么做?我可以創(chuàng)建一個 dockerfile 并創(chuàng)建我自己的圖像,但我不想那樣做,我想用 spotify 客戶端來做。
1 回答

斯蒂芬大帝
TA貢獻(xiàn)1827條經(jīng)驗 獲得超8個贊
此客戶端使用 docker API,因此如果客戶端缺少文檔,您可以隨時查看原始 API。檢查Docker Engine APICREATE A CONTAINER中的部分。
可以看到有一個帶有env字段的JSON請求示例:
"Env": [
"FOO=bar",
"BAZ=quux"
],
所以我的猜測是您可以在 Java 代碼中做到這一點:
final ContainerConfig containerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image(image)
.env("MYSQL_ROOT_PASSWORD=testrootpwd", "MYSQL_DATABASE=test", ...)
.build();
PS 另請注意文檔中關(guān)于此參數(shù)的內(nèi)容:
以 ["VAR=value", ...] 形式在容器內(nèi)設(shè)置的環(huán)境變量列表。沒有 = 的變量將從環(huán)境中刪除,而不是具有空值。
以后可能會幫助您避免錯誤。
添加回答
舉報
0/150
提交
取消