Выполнение команд после запуска основного процесса (php-fpm) в Docker - PullRequest
0 голосов
/ 24 сентября 2019

Я использую Docker Swarm для своего приложения laravel.
У меня есть служба под названием app, расширяющая официальное изображение php , которая содержит исходный код моего основного приложения плюс php-fpm и может быть масштабирована.при необходимости.

Я хочу запускать набор команд оболочки каждый раз, когда создается контейнер, и некоторые команды (например, pre-complice opcache в память) ДОЛЖНЫ выполняться после запуска процесса php-fpm.

на самом деле мне удалось сделать что-то, что работает, но мне кажется наивным, и PID php-fpm не 1

Я использую этот код в точке входа в контейнеры:

#!/bin/bash
set -m
exec php-fpm &
#
#commands goes here
php artisan config:cache
php artisan route:cache
php artisan view:cache 
#compile opcache
SCRIPT_NAME=/opcache-api/compile \
REQUEST_URI=/opcache-api/compile \
SCRIPT_FILENAME=/var/www/html/public/index.php \
REQUEST_METHOD=GET \
REMOTE_ADDR=127.0.0.1 \
QUERY_STRING=force=true \
cgi-fcgi -bind -connect 127.0.0.1:9000
#here i bring the process to foreground
fg 1

так есть ли лучший способ добиться этого?и сделать процесс PID 1, чтобы докер мог правильно отправлять ему сигналы?

...