我尝试创建一个新的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都显示成功的结果。但是文件runlog中没有任何内容。
我可以直接进入Droplet,然后运行完全相同的docker命令,它会按预期运行。为什么不能从userdata脚本运行它?为什么没有产生输出?
答案 0 :(得分:0)
问题最终成为docker run命令中的-t标志。显然这不起作用,因为它不是终端或类似的东西。删除标志,它运行正常。