Меня попросили внести пару изменений в устаревший проект PHP, который выполняется внутри контейнера докеров. Чтобы внести эти изменения, я пытаюсь запустить локальную рабочую копию приложения и связанный с ним контейнер.
Докер-контейнер работает под управлением Alpine linux. Я пытаюсь перейти на свою страницу индекса, и браузер просто вращается бесконечно, со следующим циклом повторяющегося вывода журнала, пока запрос активен:
php-fpm_1 | [25-апр-2018 17:35:54] ОШИБКА: не удалось ptrace (ATTACH) child 25: операция запрещена (1) php-fpm_1
| [25-апр-2018 17:35:54] ВНИМАНИЕ: [бассейн 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] ОШИБКА: не удалось отследить (ATTACH) дочерний элемент 24: Операция запрещена (1) php-fpm_1 | [25-апр-2018 17:35:55] ВНИМАНИЕ: [пул 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
... и т. Д.
Я нашел другое сообщение об ошибке сервера , в котором рекомендуется вручную запустить audit2allow
- у меня есть утилита никогда не использовался - чтобы исправить подобную проблему. Но в Alpine linux нет этой утилиты, и в моем контейнере нет диспетчера пакетов APK. Прежде чем приступить к серьезной работе по установке этих утилит, я хочу знать:
Подходит ли audit2allow
для этого или есть другое вероятное решение?
=====
Edit: Как прокомментировал Джеральд, инструмент 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; \
Как только я это сделал, проблема исчезла.