我正在尝试在AWS上设置CoreOS以在启动时运行特定命令以下载我们的DCOS群集的信息tarball并运行其中包含的脚本。这些脚本有助于将实例作为“代理”添加到我们的DC / OS群集中。
但是,我似乎无法运行 docker run 命令。我确实看到userdata正在创建tee的输出文件(保持为空)以及/ opt / dcos_install_tmp /目录(也保持为空)。
此处的docker run命令下载“awscli”容器,从S3获取软件包(使用IAM实例配置文件凭据),然后将其吐出到CoreOS文件系统。
在CoreOS上安装AWS CLI似乎并不简单(没有包管理器,没有python),所以我不得不求助于此。
如果我登录到实例并通过将它们放在脚本中运行相同的命令,我绝对没有问题。
我检查了“journalctl --identifier = coreos-cloudinit”,没有发现任何迹象表明问题。它只是报道:
15:58:34 Parsing user-data as script
/ var / log /中的CoreOS没有“启动”日志文件,与其他AMI不同。
我现在真的被困住了,并希望能朝正确的方向努力。
这是我的userdata(我在实例启动期间将其作为文本发布):
#!/bin/bash
/usr/bin/docker run -it --name cli governmentpaas/awscli aws s3 cp s3://<bucket>/dcos/dcos_preconfig.sh /root && /usr/bin/docker cp cli:/root/dcos_preconfig.sh . && /usr/bin/docker rm cli | tee -a /root/userdatalog.txt
/usr/bin/docker run -it --name cli governmentpaas/awscli aws s3 cp s3://<bucket>/dcos/dcos-install.tar /root && /usr/bin/docker cp cli:/root/dcos-install.tar . && /usr/bin/docker rm cli | tee -a /root/userdatalog.txt
sudo mkdir -p /opt/dcos_install_tmp
sudo tar xf dcos-install.tar -C /opt/dcos_install_tmp | tee -a /root/userdatalog.txt
sudo /bin/bash /opt/dcos_install_tmp/dcos_install.sh slave | tee -a /root/userdatalog.txt
答案 0 :(得分:0)
从docker run命令中删除-t标志。
我遇到了类似的问题:DigitalOcean: How to run Docker command on newly created Droplet via Java API 问题最终成为docker run命令中的-t标志。显然这不起作用,因为它不是终端或类似的东西。删除标志,它运行正常。