"sh: 1: ./binary: Permission denied" 在弹性容器服务上
"sh: 1: ./binary: Permission denied" on Elastic Container Service
完全想不通。我的 Dockerfile 在本地和 EC2 Linux 服务器上运行良好,但在使用 Fargate 的 ECS 上,它在尝试 运行 我的二进制文件时总是会出现标题中显示的错误。
Docker 文件:
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不知何故自己做了一个目录,绝对不是我的Dockerfile。用 CMD ["/bin/bash", "-c", "chmod +x /usr/app/binary/binary && /usr/app/binary/binary"]
替换我的 ENTRYPOINT
解决了这个问题(/usr/app
是工作目录。)
完全想不通。我的 Dockerfile 在本地和 EC2 Linux 服务器上运行良好,但在使用 Fargate 的 ECS 上,它在尝试 运行 我的二进制文件时总是会出现标题中显示的错误。
Docker 文件:
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不知何故自己做了一个目录,绝对不是我的Dockerfile。用 CMD ["/bin/bash", "-c", "chmod +x /usr/app/binary/binary && /usr/app/binary/binary"]
替换我的 ENTRYPOINT
解决了这个问题(/usr/app
是工作目录。)