LaravelPublisher v.0.0.2 補上清紀錄 20250610

This commit is contained in:
allen.yan 2025-06-10 14:10:50 +08:00
parent 795cc86bae
commit 2a950fcdec
6 changed files with 41 additions and 8 deletions

View File

@ -1,19 +1,19 @@
FROM php:8.3-fpm FROM php:8.3-fpm
# ---- system & PHP extensions ------------------------------------------------- # ---- system & PHP extensions -------------------------------------------------
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y --no-install-recommends \
nginx \ nginx \
gettext \ gettext \
logrotate \
git unzip zip curl ca-certificates supervisor cron nano \ git unzip zip curl ca-certificates supervisor cron nano \
libpng-dev libjpeg62-turbo-dev libfreetype6-dev \ libpng-dev libjpeg62-turbo-dev libfreetype6-dev \
libonig-dev libxml2-dev libzip-dev libpq-dev libicu-dev libxslt-dev \ libonig-dev libxml2-dev libzip-dev libpq-dev libicu-dev libxslt-dev \
libsqlite3-dev sqlite3 default-mysql-client \ libsqlite3-dev sqlite3 default-mysql-client \
&& curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ && 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 \ && npm install -g npm \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \ && 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 -j$(nproc) gd pdo_mysql zip bcmath intl xsl pcntl sockets opcache\
&& docker-php-ext-install opcache \
&& pecl install redis && docker-php-ext-enable redis \ && pecl install redis && docker-php-ext-enable redis \
&& apt-get clean && rm -rf /var/lib/apt/lists/* && 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.sh /entrypoint.sh
COPY docker/entrypoint.git.sh /entrypoint.git.sh COPY docker/entrypoint.git.sh /entrypoint.git.sh
COPY docker/nginx/default.conf.template /etc/nginx/templates/default.conf.template 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 WORKDIR /var/www

View File

@ -4,7 +4,7 @@ services:
container_name: ${APP_NAME}_db container_name: ${APP_NAME}_db
restart: always restart: always
environment: environment:
MYSQL_ROOT_PASSWORD: root MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: ${DB_DATABASE} MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_USER: ${DB_USERNAME} MYSQL_USER: ${DB_USERNAME}
MYSQL_PASSWORD: ${DB_PASSWORD} MYSQL_PASSWORD: ${DB_PASSWORD}
@ -26,9 +26,7 @@ services:
volumes: volumes:
- ./data/html:/var/www/html - ./data/html:/var/www/html
- ./data/logs/php:/var/www/logs - ./data/logs/php:/var/www/logs
- ./data/nginx/conf.d/:/etc/nginx/conf.d/
- ./data/logs/nginx/:/var/log/nginx - ./data/logs/nginx/:/var/log/nginx
- ./docker/nginx/default.conf.template:/etc/nginx/templates/default.conf.template
ports: ports:
- "${APP_PORT:-80}:${APP_PORT:-80}" - "${APP_PORT:-80}:${APP_PORT:-80}"
depends_on: depends_on:

View File

@ -42,3 +42,9 @@ supervisord -c /etc/supervisor/conf.d/supervisord.conf &
php-fpm -D php-fpm -D
envsubst '${NGINX_HOST} ${NGINX_PORT}' < /etc/nginx/templates/default.conf.template > /etc/nginx/conf.d/default.conf envsubst '${NGINX_HOST} ${NGINX_PORT}' < /etc/nginx/templates/default.conf.template > /etc/nginx/conf.d/default.conf
exec nginx -g "daemon off;" 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

23
docker/logrotate/laravel Normal file
View File

@ -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
}

View File

@ -28,3 +28,8 @@ autorestart=true
stdout_logfile=/var/www/logs/git-worker.log stdout_logfile=/var/www/logs/git-worker.log
stderr_logfile=/var/www/logs/git-worker_error.log stderr_logfile=/var/www/logs/git-worker_error.log
startsecs=0 startsecs=0
[program:cron]
command=/usr/sbin/cron -f
autostart=true
autorestart=true

View File

@ -11,7 +11,7 @@ docker ps
docker logs ktvcentral_app 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 docker exec -it ktvcentral_app php artisan migrate