mirror of
https://github.com/jkaninda/laravel-php-fpm.git
synced 2025-12-06 17:09:39 +01:00
Compare commits
3 Commits
619f66f44e
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| 65b6dd8d73 | |||
| 48abada5d7 | |||
| 86b7f969d3 |
1
.github/FUNDING.yml
vendored
Normal file
1
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ko_fi: jkaninda
|
||||||
6
.github/workflows/tests.yml
vendored
6
.github/workflows/tests.yml
vendored
@@ -6,6 +6,12 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
- name: Build Docker Image
|
||||||
|
run: |
|
||||||
|
docker buildx build -f src/docker/Dockerfile --build-arg phpVersion=8.4 -t ${{ vars.BUILDKIT_IMAGE }}:latest --load .
|
||||||
|
- name: Verify Docker images
|
||||||
|
run: |
|
||||||
|
docker images
|
||||||
- name: Create Laravel project
|
- name: Create Laravel project
|
||||||
run: |
|
run: |
|
||||||
composer create-project laravel/laravel laravel
|
composer create-project laravel/laravel laravel
|
||||||
|
|||||||
@@ -1,63 +1,79 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Logging functions
|
||||||
|
log() {
|
||||||
|
local level=$1
|
||||||
|
shift
|
||||||
|
{ set +x; } 2> /dev/null
|
||||||
|
echo "[$level] $@"
|
||||||
|
}
|
||||||
|
|
||||||
|
info() {
|
||||||
|
log "INFO" "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
warning() {
|
||||||
|
log "WARNING" "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
fatal() {
|
||||||
|
log "ERROR" "$@" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Banner
|
||||||
echo ""
|
echo ""
|
||||||
echo "***********************************************************"
|
echo "***********************************************************"
|
||||||
echo " Starting LARAVEL PHP-FPM Container "
|
echo " Starting LARAVEL PHP-FPM Container "
|
||||||
echo "***********************************************************"
|
echo "***********************************************************"
|
||||||
|
|
||||||
set -e
|
# Check if the artisan file exists
|
||||||
info() {
|
ARTISAN_PATH="/var/www/html/artisan"
|
||||||
{ set +x; } 2> /dev/null
|
if [[ -f "$ARTISAN_PATH" ]]; then
|
||||||
echo '[INFO] ' "$@"
|
info "Artisan file found, creating Laravel supervisor config..."
|
||||||
}
|
|
||||||
warning() {
|
|
||||||
{ set +x; } 2> /dev/null
|
|
||||||
echo '[WARNING] ' "$@"
|
|
||||||
}
|
|
||||||
fatal() {
|
|
||||||
{ set +x; } 2> /dev/null
|
|
||||||
echo '[ERROR] ' "$@" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
## Check if the artisan file exists
|
|
||||||
if [ -f /var/www/html/artisan ]; then
|
|
||||||
info "Artisan file found, creating laravel supervisor config..."
|
|
||||||
##Create Laravel Scheduler process
|
|
||||||
TASK=/etc/supervisor/conf.d/laravel-worker.conf
|
|
||||||
touch $TASK
|
|
||||||
cat > "$TASK" <<EOF
|
|
||||||
[program:Laravel-scheduler]
|
|
||||||
process_name=%(program_name)s_%(process_num)02d
|
|
||||||
command=/bin/sh -c "while [ true ]; do (php /var/www/html/artisan schedule:run --verbose --no-interaction &); sleep 60; done"
|
|
||||||
autostart=true
|
|
||||||
autorestart=true
|
|
||||||
numprocs=1
|
|
||||||
user=$USER_NAME
|
|
||||||
stdout_logfile=/var/log/laravel_scheduler.out.log
|
|
||||||
redirect_stderr=true
|
|
||||||
|
|
||||||
[program:Laravel-worker]
|
# Create Laravel Supervisor config
|
||||||
process_name=%(program_name)s_%(process_num)02d
|
SUPERVISOR_TASK="/etc/supervisor/conf.d/laravel-worker.conf"
|
||||||
command=php /var/www/html/artisan queue:work --sleep=3 --tries=3
|
cat > "$SUPERVISOR_TASK" <<EOF
|
||||||
autostart=true
|
[program:Laravel-scheduler]
|
||||||
autorestart=true
|
process_name=%(program_name)s_%(process_num)02d
|
||||||
numprocs=$LARAVEL_PROCS_NUMBER
|
command=/bin/sh -c "while true; do php $ARTISAN_PATH schedule:run --verbose --no-interaction & sleep 60; done"
|
||||||
user=$USER_NAME
|
autostart=true
|
||||||
redirect_stderr=true
|
autorestart=true
|
||||||
stdout_logfile=/var/log/laravel_worker.log
|
numprocs=1
|
||||||
|
user=$USER_NAME
|
||||||
|
stdout_logfile=/var/log/laravel_scheduler.out.log
|
||||||
|
redirect_stderr=true
|
||||||
|
|
||||||
|
[program:Laravel-worker]
|
||||||
|
process_name=%(program_name)s_%(process_num)02d
|
||||||
|
command=php $ARTISAN_PATH queue:work --sleep=3 --tries=3
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
numprocs=$LARAVEL_PROCS_NUMBER
|
||||||
|
user=$USER_NAME
|
||||||
|
redirect_stderr=true
|
||||||
|
stdout_logfile=/var/log/laravel_worker.log
|
||||||
EOF
|
EOF
|
||||||
info "Laravel supervisor config created"
|
|
||||||
|
info "Laravel supervisor config created at $SUPERVISOR_TASK"
|
||||||
else
|
else
|
||||||
info "artisan file not found"
|
info "Artisan file not found at $ARTISAN_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## Check if php.ini file exists
|
# Check if custom php.ini file exists
|
||||||
if [ -f /var/www/html/conf/php/php.ini ]; then
|
PHP_INI_SOURCE="/var/www/html/conf/php/php.ini"
|
||||||
cp /var/www/html/conf/php/php.ini $PHP_INI_DIR/conf.d/
|
PHP_INI_TARGET="$PHP_INI_DIR/conf.d/php.ini"
|
||||||
info "Custom php.ini file found and copied in $PHP_INI_DIR/conf.d/"
|
|
||||||
|
if [[ -f "$PHP_INI_SOURCE" ]]; then
|
||||||
|
cp "$PHP_INI_SOURCE" "$PHP_INI_TARGET"
|
||||||
|
info "Custom php.ini file found and copied to $PHP_INI_TARGET"
|
||||||
else
|
else
|
||||||
info "Custom php.ini file not found"
|
info "Custom php.ini file not found at $PHP_INI_SOURCE"
|
||||||
info "If you want to add a custom php.ini file, you add it in /var/www/html/conf/php/php.ini"
|
info "To use a custom php.ini file, place it at $PHP_INI_SOURCE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Start Supervisor
|
||||||
supervisord -c /etc/supervisor/supervisord.conf
|
supervisord -c /etc/supervisor/supervisord.conf
|
||||||
@@ -12,7 +12,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- 3306:3306
|
- 3306:3306
|
||||||
php-fpm:
|
php-fpm:
|
||||||
image: jkaninda/laravel-php-fpm
|
image: jkaninda/laravel-php-fpm:latest
|
||||||
container_name: php-fpm
|
container_name: php-fpm
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
#user: www-data #Use www-data user production usage
|
#user: www-data #Use www-data user production usage
|
||||||
|
|||||||
Reference in New Issue
Block a user