Не запускаются sh скрипты в Докер контейнере. exec sh: no such file or directory

Рейтинг: 0Ответов: 1Опубликовано: 08.06.2023

имеется докер файл

FROM php:8.2-fpm

....

COPY _docker/app/run.sh /home/run.sh
RUN chmod +x /home/run.sh
ENTRYPOINT ["/home/run.sh"]
WORKDIR /var/www

файл run.sh лежит в каталоге _docker/app/ его код

#!/bin/bash
# Start PHP-FPM
php-fpm -D
cd /var/www
composer install
php artisan config:clear
php artisan migrate
if [ -f "/var/www/vendor/workerman/_var_www_WS.php.pid" ]; then
    rm -f /var/www/vendor/workerman/_var_www_WS.php.pid
fi
php /var/www/WS.php start

если запустить сборку проекта, то данный контейнер упадет с ошибкой exec /home/run.sh: no such file or directory

если закомментировать ENTRYPOINT в докерфайле, то все будет работать, но при попытке запустить этот же скрипт из контейнера будет такая же ошибка. если проверить в контейнере есть ли этот файл, то он есть и открывается. как его запустить? желательно при сборке контейнера.

Ответы

▲ 0

Вопрос решился следующим путем: Отключил ENTRYPOINT в Dockerfile, закомментировал все строки в run.sh, В run.sh добавил строку echo "hello" запустил контейнер, запустил скрипт - все отработало в консоле все вывелось. Затем раскомментировал по 1 строке файл run.sh и пересобирал контейнер. После это расскоментировал ENTRYPOINT, все запустилось. запушил в гит, удалил все контейнеры и имейджи, клонировал проект в другую папку, запустил сборку и все заработало с 1 раза. Что было я так и не понял. Но сборка теперь собирается на других устройствах и разных ОС