【问题标题】:CoreOS AWS userdata "docker run" on startup won't runCoreOS AWS 用户数据“docker run”在启动时不会运行
【发布时间】:2017-03-02 18:24:52
【问题描述】:

我正在尝试在 AWS 上设置 CoreOS,以便在启动时运行特定命令,以下载我们的 DCOS 集群的信息压缩包并运行其中包含的脚本。这些脚本有助于将实例作为“代理”添加到我们的 DC/OS 集群。

但是,我似乎无法让 docker run 命令运行。我确实看到用户数据正在创建 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

与其他 AMI 不同,在 /var/log/ 中没有 CoreOS 的“启动”日志文件。

我现在真的被困住了,希望能在正确的方向上得到一些推动。

这是我的用户数据(我在实例启动期间以文本形式发布):

#!/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

【问题讨论】:

  • 你有没有想过这个问题?我在 Digital Ocean 上遇到了类似的问题。即使我的脚本的其余部分执行,我的 docker run 似乎也没有执行。 stackoverflow.com/questions/40924883/…
  • 我放弃了,搬到了 CentOS。本来希望 CoreOS 为我们工作。

标签: amazon-web-services coreos user-data


【解决方案1】:

从 docker run 命令中移除 -t 标志。

我也有类似的问题:DigitalOcean: How to run Docker command on newly created Droplet via Java API 问题最终成为 docker run 命令中的 -t 标志。显然这不起作用,因为它不是终端或类似的东西。去掉flag就可以正常运行了。

【讨论】:

    猜你喜欢
    • 2019-07-03
    • 1970-01-01
    • 2021-05-30
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 2016-05-09
    相关资源
    最近更新 更多