При использовании ENTRYPOINT файл не найден - PullRequest
1 голос
/ 03 апреля 2019

Я пытаюсь использовать ENTRYPOINT, и всякий раз, когда я делаю это, я получаю ошибку как no such file or directory

Dockerfile:

FROM ubuntu:18.04

COPY . /home

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

RUN ln -s /usr/local/bin/docker-entrypoint.sh

WORKDIR /home
RUN chmod 777 /usr/local/bin/docker-entrypoint.sh

ENTRYPOINT ["docker-entrypoint.sh"]

CMD ["/bin/bash"]

Я попытался дать ему разрешение, попытался запустить его с абсолютным путем, также попытался этот , попробовал его с #!/bin/bash & #!/bin/sh и, в конце концов, я все еще получаю ошибку "файл не найден".

Я не уверен, в чем проблема.

1 Ответ

0 голосов
/ 03 апреля 2019

Вопрос, который вы задали: Я точно не помню, почему, но файл не найден, потому что вы называете его docker-entrypoint.sh, а не ./docker-entrypoint.sh.

Вопрос, который вы скоро зададите: Это не совсем решит вашу проблему. Вы добавили права на выполнение к копии docker-entrypoint.sh в /usr/local/bin, но в /home есть еще одна копия файла, которая будет найдена первой и не имеет привилегий на выполнение. Вы получите ошибку прав доступа при попытке использовать его. Простой обходной путь (в зависимости от того, что вы хотите сделать) состоит из модифицированной точки входа:

ENTRYPOINT ["/bin/bash", "docker-entrypoint.sh"]

Дополнительные сведения, если вы будете часто использовать Docker: Возможность ввести контейнер или изображение, чтобы проверить его содержимое, неоценима. Для образов на основе Ubuntu запишите где-нибудь следующую строку (замените bash на sh для практически любой другой ОС Linux):

docker run -it --rm --entrypoint=bash my_image_name

Это откроет оболочку в этом образе и позволит вам поиграть в той же среде, в которой работает Dockerfile, и отладить все, что вызывает у вас проблемы.

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