Docker образ не работает при запуске docker -entrypoint. sh, но только при запуске из Docker Hub? - PullRequest
0 голосов
/ 18 февраля 2020

Итак, вот мой Dockerfile, упрощенный. Исходный файл https://github.com/gremo/docker-folder-mirror/blob/master/Dockerfile:

FROM alpine:latest

COPY ./docker-entrypoint.sh /usr/local/bin/

ENTRYPOINT ["docker-entrypoint.sh"]

Когда я запускаю свое изображение локально (при условии, что тег folder-mirror:latest) все работает нормально :

docker run --rm --env-file ./.env -v "${PWD}/data:/data" -v "${PWD}/logs:/var/log" folder-mirror:latest

Однако, если я попытаюсь запустить каталог образа (из Docker Hub):

docker run --rm --env-file ./.env -v "${PWD}/data:/data" -v "${PWD}/logs:/var/log" gremo1982/folder-mirror

... это выдаст мне следующую ошибку :

C: \ Program Files \ Docker \ Docker \ resources \ bin \ docker .exe: Ошибка ответа от демона: Ошибка создания среды выполнения OCI: container_ linux. go: 346: запуск процесса контейнера вызвал "exe c: \" docker -entrypoint.sh \ ": исполняемый файл не найден в $ PATH": неизвестно.

Это мой первый Docker изображение, так что я почти уверен ... я что-то упустил. Фактически, если я проверяю удаленный образ, я получаю:

/ # ls -la /usr/local/bin/
total 12
drwxr-xr-x    1 root     root          4096 Feb 18  2020 .
drwxr-xr-x    1 root     root          4096 Jan 16 22:52 ..
-rw-r--r--    1 root     root           890 Feb 18  2020 docker-entrypoint.sh

То есть моя точка входа не является исполняемой. Почему? Тогда почему он работает локально?

1 Ответ

1 голос
/ 18 февраля 2020

Почему это работает локально, я не могу ответить на это. Две вещи, которые вы должны попробовать. Один, как предложили другие комментаторы, сделайте chmod для скрипта, чтобы сделать его исполняемым.

Другое изменение, согласно Docker ссылка , команда ENTRYPOINT принимает две формы. Форма exec и форма shell. Вы используете exec. Возможно, что ваши переменные окружения загружаются неправильно.

Попробуйте изменить форму shell.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...