创建一个 mysql docker 容器设置环境变量
Creating a mysql docker container setting env variables
我正在使用 spotify-docker-客户端创建并启动一个 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 容器文档,设置这些环境变量是这样做的方法:
https://hub.docker.com/_/mysql
但是,我仍然无法连接到容器,我连接到 bash 并且我看到那些环境变量没有设置。
有人知道怎么做吗?
我可以创建一个 docker 文件并创建我自己的图像,但我不想那样做,我想用 spotify 客户端来做。
此客户端使用 docker API,因此如果客户端缺少文档,您可以随时查看原始 API。
检查 Docker Engine API 中的 CREATE A CONTAINER
部分。
可以看到有一个JSON请求示例,其中env
字段:
"Env": [
"FOO=bar",
"BAZ=quux"
],
所以我猜你可以在 Java 代码中做到这一点:
final ContainerConfig containerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image(image)
.env("MYSQL_ROOT_PASSWORD=testrootpwd", "MYSQL_DATABASE=test", ...)
.build();
P.S。另请注意文档中关于此参数的内容:
A list of environment variables to set inside the container in the
form ["VAR=value", ...]. A variable without = is removed from the
environment, rather than to have an empty value.
以后可能会帮助您避免错误。
我正在使用 spotify-docker-客户端创建并启动一个 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 容器文档,设置这些环境变量是这样做的方法:
https://hub.docker.com/_/mysql
但是,我仍然无法连接到容器,我连接到 bash 并且我看到那些环境变量没有设置。
有人知道怎么做吗?
我可以创建一个 docker 文件并创建我自己的图像,但我不想那样做,我想用 spotify 客户端来做。
此客户端使用 docker API,因此如果客户端缺少文档,您可以随时查看原始 API。
检查 Docker Engine API 中的 CREATE A CONTAINER
部分。
可以看到有一个JSON请求示例,其中env
字段:
"Env": [
"FOO=bar",
"BAZ=quux"
],
所以我猜你可以在 Java 代码中做到这一点:
final ContainerConfig containerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image(image)
.env("MYSQL_ROOT_PASSWORD=testrootpwd", "MYSQL_DATABASE=test", ...)
.build();
P.S。另请注意文档中关于此参数的内容:
A list of environment variables to set inside the container in the form ["VAR=value", ...]. A variable without = is removed from the environment, rather than to have an empty value.
以后可能会帮助您避免错误。