Невозможно запустить скрипт при создании контейнера docker - PullRequest
0 голосов
/ 06 февраля 2020

Я использую docker -композицию для создания образа и запуска контейнера. В моем Dockferfile я включил эту строку:

ENTRYPOINT ["entrypoint.sh"]
CMD /bin/bash

Этот сценарий точки входа существует (я пытался попасть в контейнер, и он существует), и рабочий каталог сценария также корректен. Сам скрипт:

#!/bin/bash
set -e
set -u

echo "==> Executing master image entrypoint ..."

echo "-> Setting up ROS"
source "./devel/setup.bash"
#chmod 666 /dev/ttyUSBO
echo "==> Container ready"
exec "$@"

Когда я запускаю:

docker-compose up --build

Я получаю эту ошибку:

ERROR: for 45f1dcaf575e_rosdocker_master_1  Cannot start service master: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"entrypoint.sh\": executable file not found in $PATH": unknown

ERROR: for master  Cannot start service master: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"entrypoint.sh\": executable file not found in $PATH": unknown

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

Убедитесь, что у скрипта есть нужные права доступа, которые вы можете установить, вызвав chmod +x entrypoint.sh, вы можете использовать инструкцию RUN в Dockerfile:

...
RUN chmod +x /entrypoint.sh
...

Также установите полный путь на настройка ENTRYPOINT, например, /entrypoint.sh, если она установлена ​​в root:

ENTRYPOINT ["/entrypoint.sh"]
0 голосов
/ 06 февраля 2020

Если скрипт находится в рабочем каталоге, обратитесь к нему с помощью ./:

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