使用spotify-docker-client创建MySQL容器时环境变量设置失败求助
解决spotify-docker-client设置MySQL容器环境变量无效的问题
你这里的核心问题是调用.env()方法的参数格式错误!spotify-docker-client的ContainerConfig.Builder.env()方法要求每个环境变量都以KEY=VALUE的完整字符串形式传入,而不是把键和值拆成单独的参数。
你之前的写法把键和值作为独立参数传递,客户端无法正确解析成有效的环境变量,这就是为什么容器里看不到这些变量的原因。
修正后的代码
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);
验证方法
容器启动后,你可以进入容器bash执行printenv命令,就能看到这些环境变量已经被正确设置了,MySQL镜像也会根据这些变量自动完成数据库初始化,之后你应该就能正常连接数据库了。
内容的提问来源于stack exchange,提问作者user1990218
相关产品推荐
相关产品推荐

