Назад | Перейти на главную страницу

Набор ошибок при запуске контейнера докеров

Меня попросили внести пару изменений в устаревший проект PHP, работающий внутри контейнера докеров. Чтобы внести эти изменения, я пытаюсь запустить локальную рабочую копию приложения и связанный с ним контейнер.

Контейнер докеров работает под управлением Alpine linux. Я пытаюсь перейти на свою страницу индекса, и браузер просто вращается бесконечно, со следующим повторяющимся циклом вывода журнала, пока запрос активен:

php-fpm_1 | [25-апр-2018 17:35:54] ОШИБКА: не удалось выполнить ptrace (ATTACH) потомка 25: операция запрещена (1) php-fpm_1
| [25-апр-2018 17:35:54] ПРЕДУПРЕЖДЕНИЕ: [pool www] дочерний элемент 25, сценарий '/usr/src/app/web/app_dev.php' (запрос: «GET /app_dev.php») выполняется слишком медленно (2.455295 сек), логирование php-fpm_1 | 172.23.0.3 - 25 / апр / 2018: 17: 35: 50 +0200 "GET /app_dev.php" 404 php-fpm_1 | [25-апр-2018 17:35:55] ОШИБКА: не удалось выполнить ptrace (ATTACH) дочернего элемента 24: операция не разрешена (1) php-fpm_1 | [25-апр-2018 17:35:55] ПРЕДУПРЕЖДЕНИЕ: [pool www] дочерний элемент 24, сценарий '/usr/src/app/web/app_dev.php' (запрос: «GET /app_dev.php») выполняется слишком медленно (2.423747 сек), логирование php-fpm_1 | 172.23.0.3 - 25 / апр / 2018: 17: 35: 49 +0200 "GET /app_dev.php" 404

... и т.д ...

Я нашел другой пост serverfault который рекомендовал запускать вручную audit2allow - утилита, которой я никогда не пользовался - чтобы исправить подобную проблему. Но в Alpine linux нет этой утилиты, и в моем контейнере нет диспетчера пакетов APK. Прежде чем приступить к серьезной работе по установке этих утилит, я хочу знать:

Является audit2allow даже способ пойти с этим, или есть другое вероятное решение?

=====

Редактировать: Как прокомментировал Джеральд, инструмент audit2allow является частью selinux, которого нет в этой копии Alpine. Так что должен быть другой способ обойти эту ошибку.

Оказалось, что это проблема приложения, а не окружающей среды. Мне нужно было создать символическую ссылку на папку, полную статических ресурсов.

make assets-update

... который, в свою очередь, обертывает:

app/console bazinga:js-translation:dump
app/console assets:install
app/console assetic:dump
@if [ ! -h web/storage ]; then \
    ln --symbolic ../data/storage web/storage; \

Как только я это сделал, проблема исчезла.