【问题标题】:Docker Compose on Cloud Init AzureCloud Init Azure 上的 Docker Compose
【发布时间】:2021-02-17 23:59:28
【问题描述】:

有一个使用 Centos 7 自定义映像运行的 VM 规模集。在缩放 VM 规模集时需要将以下脚本作为 cloud-init 脚本运行。但是虚拟机缩放了,脚本没有执行。从服务器也无法找到执行历史。这是我使用的命令,

#cloud-config
runcmd:
– cd /srv/compose/composeforsvaret/
– docker-compose stop
- docker-compose up -d
final_message: "Your Docker server is now ready."

【问题讨论】:

  • 你在哪里有这个脚本?它是在管道中,还是在您的 VM 上的 cronjob,或者...?
  • @CasperDijkstra 我将该脚本添加到 Azure 门户上的云初始化脚本框中。操作系统 > 脚本框

标签: azure azure-devops cloud-init


【解决方案1】:

命令未执行,因为语法无法识别。
我在cloud init documentation 中读到了关于runcmd

列表必须是正确的 yaml,所以你必须引用 yaml 会吃的任何字符(':' 可能有问题)

这应该可以解决问题:

runcmd:
– [ cd, /srv/compose/composeforsvaret, / ] // or - [ sh, -c , "cd /srv/compose/composeforsvaret" ]
– [ sh, -c, "docker-compose stop" ]
- [ sh, -c, "docker-compose up -d" ]
final_message: "Your Docker server is now ready."

还请记住,runcmd 仅在首次启动时运行,因此根据您的目的,您应该考虑使用bootcmd

【讨论】:

    猜你喜欢
    • 2019-07-21
    • 2018-08-20
    • 2021-09-14
    • 2023-03-28
    • 2018-10-25
    • 2020-06-03
    • 1970-01-01
    • 2021-08-16
    • 2014-08-16
    相关资源
    最近更新 更多