【发布时间】:2021-04-16 20:14:17
【问题描述】:
$ terraform version
Terraform v0.14.4
我正在使用 Terraform 创建一个 AWS 自动缩放组,它通过一个启动模板成功启动了一个 EC2,该模板也是由同一个 Terraform 计划创建的。我在启动模板中添加了以下user_data 定义。我使用的 AMI 已经配置了 Docker,并且有我需要的 Docker 镜像。
user_data = filebase64("${path.module/docker_run.sh}")
docker_run.sh 文件包含简单
docker run -p 80:3000 -d 1234567890.dkr.ecr.us-east-1.amazonaws.com/node-app:latest
但是,当我 ssh 到 EC2 实例时,容器没有运行。我错过了什么?
更新:
根据 Marcin 的评论,我在 in /var/log/cloud-init-output.log
Jan 11 22:11:45 cloud-init[3871]: __init__.py[WARNING]: Unhandled non-multipart (text/x-not-multipart) userdata: 'docker run -p 80:3000 -d...'
【问题讨论】:
-
你能澄清一下是什么实例吗?你在上面安装和配置过docker吗?
-
@Marcin,“什么实例”是什么意思?它是一个 EC2 实例 t2.micro,由自动扩展组创建。是的,我可以 ssh 到实例并执行
docker ...命令,当然包括我的docker run...命令。 -
标准 Amazon Linux 2 实例未预装 docker。因此不清楚您使用的是哪个具有 docker 内置的实例?另外,您是否检查了
/var/log/cloud-init-output.log的 UserData 错误? -
@Marcin,我已经在我使用的 AMI 中配置了 Docker。就像我说的,我可以简单地通过 ssh 进入 EC2 实例并执行
docker...命令。 -
我在
/var/log/cloud-init-output.log中看到了Jan 11 22:11:45 cloud-init[3871]: __init__.py[WARNING]: Unhandled non-multipart (text/x-not-multipart) userdata: 'docker run -p 80:3000 -d...'
标签: amazon-web-services docker amazon-ec2 terraform terraform-provider-aws