【问题标题】:"sh: 1: ./binary: Permission denied" on Elastic Container Service弹性容器服务上的“sh: 1: ./binary: Permission denied”
【发布时间】:2021-08-24 17:16:21
【问题描述】:

根本想不通。我的 Dockerfile 在本地和 EC2 Linux 服务器上运行良好,但在使用 Fargate 的 ECS 上,尝试运行我的二进制文件时总是会出现标题中显示的错误。

Dockerfile:

FROM ubuntu:latest

WORKDIR /usr/app

# install TLS certificates
RUN apt-get update && apt-get install ca-certificates -y

# copy binary file
COPY ./binary ./binary

# run executable on start
ENTRYPOINT chmod +x ./binary && ./binary

尝试了非常广泛的组合,弄乱了容器定义设置(入口点、命令等),但每次仍然出现相同的错误。想知道是否有人遇到过这种情况以及您是如何解决的,或者是否有人可以提供适用于 ECS 的示例 Dockerfile。

如果重要的话,有问题的二进制文件是为 Linux (amd64) 构建的 Go 二进制文件。

【问题讨论】:

  • 请提供您的ECS任务定义。

标签: docker dockerfile amazon-ecs


【解决方案1】:

原来 ECS 以某种方式自己创建了一个目录,这绝对不是我的 Dockerfile。用CMD ["/bin/bash", "-c", "chmod +x /usr/app/binary/binary && /usr/app/binary/binary"] 替换我的ENTRYPOINT 解决了这个问题(/usr/app 是工作目录。)

【讨论】:

    猜你喜欢
    • 2020-03-04
    • 2015-11-21
    • 2023-02-02
    • 2019-12-14
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多