Docker пробег не находит ENTRYPOINT - PullRequest
0 голосов
/ 25 марта 2020

У меня есть следующее Dockerfile:

FROM ubuntu:19.10
WORKDIR /gen
COPY script.sh ./

RUN chmod +x script.sh && export PATH="/gen/:$PATH"

ENTRYPOINT [ "script.sh" ]

Он прекрасно работает, но я не могу его выполнить. Решение из post заключается в добавлении полного пути к сценарию (ENTRYPOINT [ "/gen/script.sh" ]), который не работает.

Добавление папки в PATH также не работает. Это почему?

Ошибка: docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"script.sh\": executable file not found in $PATH": unknown.

РЕДАКТИРОВАТЬ: Проблема заключается в том, что я вызываю контейнер с docker run --rm -v some/dir:/gen containerName.

1 Ответ

2 голосов
/ 25 марта 2020

Проблема в том, что вы не изменили переменную PATH. Использование export в операторе RUN не будет постоянным. Вам необходимо установить переменные окружения с помощью ENV.

FROM ubuntu:19.10
WORKDIR /gen
COPY script.sh ./

RUN chmod +x script.sh
ENV PATH="/gen:$PATH"

ENTRYPOINT ["script.sh"]

Если вы запустите образ Docker при монтировании тома в /gen, вы перезапишете каталог /gen, а ваш скрипт не будет быть найденным.

...