У меня есть php-контейнер, в котором размещается веб-приложение Symfony. Мне нужно использовать фоновые скрипты и запускать их из crontab. И, кажется, работает, пока я использую пользователя root. Однако когда я переключаю пользователя на «www-данные» - он перестает работать.
Моя идея состояла в том, чтобы запустить php-fpm как пользовательские www-данные, а также войти в «www-data» при входе в контейнер. Но crontab можно определить для пользователя root, поскольку он позволяет добавлять команды к имени пользователя.
мой файл точки входа содержит:
#!/bin/bash
npm install
cron &
php-fpm
и мой файл докера выглядит так:
WORKDIR /app
ADD ./entrypoint.sh /entrypoint.sh
RUN chmod 777 /entrypoint.sh
ADD ./crontab.txt /etc/cron.d/hello-cron
RUN chmod 0666 /etc/cron.d/hello-cron
RUN crontab /etc/cron.d/hello-cron
RUN touch /var/log/cron.log
RUN usermod -s /bin/bash www-data
USER www-data
ENTRYPOINT /entrypoint.sh
Выше работает, если я пропущу строку
USER www-data
Но я бы хотел сначала запустить cron (для пользователя root), а затем переключить пользователя контейнера по умолчанию на www-data ... поэтому я попробовал также:
ENTRYPOINT /entrypoint.sh
USER www-data
Но это не так хорошо работает.
Любая помощь будет оценена :)