如何解决在 ECS 中运行容器时出现 exec 格式错误?

如何解决在 ECS 中运行容器时出现 exec 格式错误?

之前的问题与https://stackoverflow.com/questions/77266768/yarn-command-not-found-after-successful-docker-build。它已修复,但我的问题与使用 shell 有关/bin/sh

以下是我想做的事情:使用yarn并在镜像上安装它amazonlinux:2。这是我的 Dockerfile:

FROM amazonlinux:2

RUN yum update -y && \
    yum install -y tar curl gzip zip unzip aws-cli

RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | sh && \
    . ~/.nvm/nvm.sh && \
    nvm install 14 && \
    nvm alias default 14 && \
    nvm use default && \
    npm install -g yarn

USER root

COPY .bashrc /root/.bashrc

COPY entrypoint.sh /root/entrypoint.sh

RUN chmod +x /root/entrypoint.sh

ENTRYPOINT [ "/root/entrypoint.sh" ]

这是我的.bashrc文件

#!/bin/sh
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

这是我的entrypoint.sh

#!/bin/sh
. /root/.bashrc
exec "$@"

我所得到的是,在尝试从 ECS 运行容器时, exec /root/entrypoint.sh: exec format error并且Essential container in task exited

如何解决exec格式错误?

相关内容