From 2a950fcdec3226bbb81c16737cd812ddc4c34960 Mon Sep 17 00:00:00 2001 From: "allen.yan" Date: Tue, 10 Jun 2025 14:10:50 +0800 Subject: [PATCH] =?UTF-8?q?LaravelPublisher=20v.0.0.2=20=E8=A3=9C=E4=B8=8A?= =?UTF-8?q?=E6=B8=85=E7=B4=80=E9=8C=84=2020250610?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 9 +++++---- docker-compose.yml | 4 +--- docker/entrypoint.sh | 6 ++++++ docker/logrotate/laravel | 23 +++++++++++++++++++++++ docker/supervisord.conf | 5 +++++ 開發紀錄.txt | 2 +- 6 files changed, 41 insertions(+), 8 deletions(-) create mode 100644 docker/logrotate/laravel diff --git a/Dockerfile b/Dockerfile index 1c69626..28695f0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,19 @@ FROM php:8.3-fpm # ---- system & PHP extensions ------------------------------------------------- -RUN apt-get update && apt-get install -y \ +RUN apt-get update && apt-get install -y --no-install-recommends \ nginx \ gettext \ + logrotate \ git unzip zip curl ca-certificates supervisor cron nano \ libpng-dev libjpeg62-turbo-dev libfreetype6-dev \ libonig-dev libxml2-dev libzip-dev libpq-dev libicu-dev libxslt-dev \ libsqlite3-dev sqlite3 default-mysql-client \ && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ - && apt-get install -y nodejs \ + && apt-get install -y --no-install-recommends nodejs \ && npm install -g npm \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ - && docker-php-ext-install -j$(nproc) gd pdo_mysql zip bcmath intl xsl pcntl sockets \ - && docker-php-ext-install opcache \ + && docker-php-ext-install -j$(nproc) gd pdo_mysql zip bcmath intl xsl pcntl sockets opcache\ && pecl install redis && docker-php-ext-enable redis \ && apt-get clean && rm -rf /var/lib/apt/lists/* @@ -27,6 +27,7 @@ COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY docker/entrypoint.sh /entrypoint.sh COPY docker/entrypoint.git.sh /entrypoint.git.sh COPY docker/nginx/default.conf.template /etc/nginx/templates/default.conf.template +COPY docker/logrotate/laravel /etc/logrotate.d/app/laravel.conf WORKDIR /var/www diff --git a/docker-compose.yml b/docker-compose.yml index 62b8caf..4873cba 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,7 +4,7 @@ services: container_name: ${APP_NAME}_db restart: always environment: - MYSQL_ROOT_PASSWORD: root + MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} MYSQL_DATABASE: ${DB_DATABASE} MYSQL_USER: ${DB_USERNAME} MYSQL_PASSWORD: ${DB_PASSWORD} @@ -26,9 +26,7 @@ services: volumes: - ./data/html:/var/www/html - ./data/logs/php:/var/www/logs - - ./data/nginx/conf.d/:/etc/nginx/conf.d/ - ./data/logs/nginx/:/var/log/nginx - - ./docker/nginx/default.conf.template:/etc/nginx/templates/default.conf.template ports: - "${APP_PORT:-80}:${APP_PORT:-80}" depends_on: diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index e91f1f6..2b3bb19 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -42,3 +42,9 @@ supervisord -c /etc/supervisor/conf.d/supervisord.conf & php-fpm -D envsubst '${NGINX_HOST} ${NGINX_PORT}' < /etc/nginx/templates/default.conf.template > /etc/nginx/conf.d/default.conf exec nginx -g "daemon off;" + +echo "0 0 * * * root /usr/sbin/logrotate /etc/logrotate.d/app" > /etc/cron.d/logrotate-Laravel +chmod 0644 /etc/cron.d/logrotate-Laravel +crontab /etc/cron.d/logrotate-Laravel +echo "[entrypoint] Testing logrotate config..." +logrotate --debug /etc/logrotate.d/app/laravel.conf \ No newline at end of file diff --git a/docker/logrotate/laravel b/docker/logrotate/laravel new file mode 100644 index 0000000..206264a --- /dev/null +++ b/docker/logrotate/laravel @@ -0,0 +1,23 @@ +/var/log/nginx/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 0640 www-data www-data + sharedscripts + postrotate + pkill -HUP nginx + endscript +} + +/var/www/logs/*.log { + daily + missingok + rotate 7 + compress + delaycompress + notifempty + create 0640 www-data www-data +} \ No newline at end of file diff --git a/docker/supervisord.conf b/docker/supervisord.conf index d98cda5..445da03 100644 --- a/docker/supervisord.conf +++ b/docker/supervisord.conf @@ -28,3 +28,8 @@ autorestart=true stdout_logfile=/var/www/logs/git-worker.log stderr_logfile=/var/www/logs/git-worker_error.log startsecs=0 + +[program:cron] +command=/usr/sbin/cron -f +autostart=true +autorestart=true \ No newline at end of file diff --git a/開發紀錄.txt b/開發紀錄.txt index d905fd5..9b81857 100644 --- a/開發紀錄.txt +++ b/開發紀錄.txt @@ -11,7 +11,7 @@ docker ps docker logs ktvcentral_app -docker exec -it ktvcentral_nginx sh +docker exec -it ktvcentral_app bash -c "cd /var/www/html && php artisan migrate:fresh --seed" docker exec -it ktvcentral_app php artisan migrate