【问题标题】:Unable to deploy custom docker image to AWS ECS using Terraform无法使用 Terraform 将自定义 Docker 映像部署到 AWS ECS
【发布时间】:2021-06-16 16:09:40
【问题描述】:

我正在使用 terraform 在 AWS 提供商上构建基础设施。我正在使用 ECR 使用 AWSCLI 推送我的本地 docker 映像。

现在,我有一个应用程序负载均衡器,可以将流量路由到 ECS_service。我希望 ECS 使用 Fargate 管理我的 Docker 容器。但是,通过说“Essential Docker container exited”退出 docker 容器。

这是唯一打印出来的日志。

如果我将 docker 映像更改为 nginx:latest(从 dockerhub 获取)。它有效。

PS:我的 docker 容器是一个简单的节点应用程序,以 node:alpine 作为基础镜像。是不是和这个有关,我错了!

谁能提供一些关于我的方法有什么问题的见解。

我在 AWS 日志中收到以下错误: docker-standard-init-linux-go211-exec-user-process-caused-exec-format-error.

我的 Dockerfile

FROM node:alpine

WORKDIR /app

COPY . .

RUN npm install

# Expose a port.
EXPOSE 8080

# Run the node server.
ENTRYPOINT ["npm", "start"]

他们说,这是启动脚本的问题。我只是在运行这个命令。 npm start 启动服务器。

【问题讨论】:

  • 您可以为此打开日志记录并共享日志信息吗? Amazon ECS troubleshooting 有很好的关于如何调试错误的信息。
  • 我已经用日志编辑了问题。如果您发现有问题,请告诉我。感谢您的回复。
  • 您能否将#!/usr/bin/env node 添加到您的应用中并尝试像docker run -it <image_id> sh 一样在本地运行图像,如果可行的话?可能是某些扩展名不是为linux 编译的,您可能正在尝试在您的应用程序中加载,这就是错误针对exec format 的原因。它适用于 nginx,因为两个图像的 entrypoint 不同。

标签: amazon-web-services docker amazon-ecs aws-fargate


【解决方案1】:

这不是你的方法,你的形象是行不通的。 尝试在本地运行它并查看输出,否则您需要将日志发送到 Cloudwatch 并查看它们的内容

【讨论】:

    猜你喜欢
    • 2020-12-30
    • 2019-09-10
    • 2021-12-11
    • 2018-03-25
    • 2021-05-27
    • 2015-10-07
    • 2017-09-30
    • 2019-01-25
    • 2019-12-16
    相关资源
    最近更新 更多