Fix Laravel schedule

This commit is contained in:
2022-06-18 10:31:47 +02:00
parent d30e510555
commit 1253111947
5 changed files with 78 additions and 7 deletions

View File

@@ -1,4 +1,4 @@
FROM php:7.4-fpm
FROM php:8.1.0-fpm
ENV WORKDIR=/var/www
ENV STORAGE_DIR=/var/www/storage
# Install system dependencies
@@ -57,19 +57,19 @@ RUN docker-php-ext-install pdo_pgsql
# Get latest Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Copy php.ini file
COPY php/php.ini $PHP_INI_DIR/conf.d/
COPY php.ini $PHP_INI_DIR/conf.d/
# Install Laravel Envoy
RUN composer global require "laravel/envoy=~1.0"
#--------------------Add supervisor file in supervisor directory ------------------------------------
ADD worker/supervisord.conf /etc/supervisor/conf.d/worker.conf
#ADD worker/supervisord.conf /etc/supervisor/conf.d/worker.conf
# Add crontab file in the cron directory
ADD worker/crontab /etc/cron.d/crontab
COPY ./entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/entrypoint.sh
RUN ln -s /usr/local/bin/entrypoint.sh /
# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/crontab
ENTRYPOINT ["entrypoint.sh"]
# Set working directory
WORKDIR $WORKDIR
@@ -77,6 +77,7 @@ WORKDIR $WORKDIR
RUN usermod -u 1000 www-data
RUN groupmod -g 1000 www-data
EXPOSE 9000
# Run Supervisor
CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"]

View File

@@ -34,6 +34,8 @@ services:
volumes:
#Project root
- ./:/var/www/
- ~/.ssh:/root/.ssh # If you use private CVS
networks:
- default #if you're using networks between containers
@@ -51,6 +53,7 @@ php atisan migrate
```
## Example Laravel-php-fpm with nginx:
### file= docker-compose.yml
```yml
version: '3'
services:
@@ -61,6 +64,8 @@ services:
volumes:
#Project root
- ./:/var/www/
- ~/.ssh:/root/.ssh # If you use private CVS
networks:
- default #if you're using networks between containers
#Nginx server
@@ -79,6 +84,7 @@ services:
```
## Simple Nginx config file content
### file= nginx/conf.d/default.conf
```conf

9
build.sh Normal file
View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
if [ $# -eq 0 ]
then
tag='latest'
else
tag=$1
fi
docker build -t jkaninda/laravel-php-fpm:$tag .

49
entrypoint.sh Normal file
View File

@@ -0,0 +1,49 @@
#!/bin/sh
echo ""
echo "***********************************************************"
echo " Starting LARAVEL PHP-FPM Docker Container "
echo "***********************************************************"
set -e
TASK=/etc/supervisor/conf.d/worker.conf
touch $TASK
cat > "$TASK" <<EOF
[supervisord]
nodaemon=true
user=root
[program:php-fpm]
command=/usr/local/sbin/php-fpm
numprocs=1
autostart=true
autorestart=true
stderr_logfile=/var/log/php-fpm_consumer.err.log
stdout_logfile=/var/log/php-fpm_consumer.out.log
user=root
priority=100
[program:Laravel-scheduler]
process_name=%(program_name)s_%(process_num)02d
command=/bin/sh -c "while [ true ]; do (php /var/www/artisan schedule:run --verbose --no-interaction &); sleep 60; done"
autostart=true
autorestart=true
numprocs=1
user=root
stdout_logfile=/var/log/laravel_scheduler.out.log
redirect_stderr=true
[program:Laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
numprocs=2
user=root
redirect_stderr=true
stdout_logfile=/var/log/laravel_worker.log
EOF
supervisord -c /etc/supervisor/supervisord.conf

6
php.ini Normal file
View File

@@ -0,0 +1,6 @@
date.timezone=UTC
display_errors=Off
log_errors=On
upload_max_filesize= 80M
post_max_size= 80M
memory_limit = 256M