我正在尝试创建一个新的 Droplet,然后通过 UserData bash 脚本启动 Docker 命令。我在创建 Droplet 时通过 Java API 设置用户数据,并观察我创建的测试文件和日志是否已创建。
newDroplet.setUserData("#!/bin/bash\n" +
"touch /test.txt;"+
"docker login --username=myname--password=mypass > /loginlog;"+
"docker pull mybuild > /pulllog;"+
"docker run --log-opt max-size=1g --net host --name myserver -t -i mybuild > /runlog;");
loginlog 和 pulllog 都显示成功的结果。但是文件运行日志中不存在任何内容。
我可以通过 ssh 进入 Droplet,然后运行完全相同的 docker 命令,它会按预期运行。为什么不能从用户数据脚本运行它?为什么没有生成输出?
最佳答案
问题最终出在 docker run 命令中的 -t 标志。显然这不起作用,因为它不是终端或类似的东西。去掉flag就可以正常运行了。
关于java - digital ocean : How to run Docker command on newly created Droplet via Java API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40924883/