Как устранить ошибку формата exec при запуске контейнера в ECS?
Ранее вопрос был связан с https://stackoverflow.com/questions/77266768/yarn-command-not-found-after-successful-docker-build. Это было исправлено, но моя проблема связана с использованием оболочки./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?