为了账号安全,请及时绑定邮箱和手机立即绑定

创建一个 mysql docker 容器设置环境变量

创建一个 mysql docker 容器设置环境变量

富国沪深 2022-12-21 16:40:34
我正在使用 spotify-docker-client 创建并启动一个 mysql 容器进行测试。它工作完美,但我很难找到如何设置某些值以连接到数据库,如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);我假设.env调用是设置环境变量。根据 mysql 容器文档,设置这些 env 变量是这样做的方法:https://hub.docker.com/_/mysql但是,我仍然无法连接到容器,我连接到 bash,但我看到那些环境变量没有设置。有谁知道该怎么做?我可以创建一个 dockerfile 并创建我自己的图像,但我不想那样做,我想用 spotify 客户端来做。
查看完整描述

1 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超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 另请注意文档中关于此参数的内容:


以 ["VAR=value", ...] 形式在容器内设置的环境变量列表。没有 = 的变量将从环境中删除,而不是具有空值。


以后可能会帮助您避免错误。


查看完整回答
反对 回复 2022-12-21
  • 1 回答
  • 0 关注
  • 408 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号