LaravelPublisher v.0.0.3 20250620
移除 自動 git pull 移除 mariadb 加入 redis
This commit is contained in:
parent
8c3d72aee6
commit
6f661b50f1
@ -22,13 +22,11 @@ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
||||
COPY docker/php/php.ini /usr/local/etc/php/conf.d/custom-php.ini
|
||||
COPY docker/php/opcache.ini /usr/local/etc/php/conf.d/opcache.ini
|
||||
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
|
||||
COPY docker/entrypoint.sh /entrypoint.sh
|
||||
RUN chmod 644 /etc/logrotate.d/app/laravel.conf
|
||||
|
||||
WORKDIR /var/www
|
||||
|
||||
RUN chmod +x /entrypoint.sh /entrypoint.git.sh
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
@ -1,33 +0,0 @@
|
||||
services:
|
||||
nginx-proxy:
|
||||
image: jwilder/nginx-proxy
|
||||
container_name: ${PROJECT_NAME}_nginx_proxy
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||
- ./certs:/etc/nginx/certs
|
||||
- ./vhost.d:/etc/nginx/vhost.d
|
||||
- ./html:/usr/share/nginx/html
|
||||
networks:
|
||||
- nginx_proxy
|
||||
letsencrypt:
|
||||
image: jrcs/letsencrypt-nginx-proxy-companion
|
||||
container_name: ${PROJECT_NAME}_letsencrypt
|
||||
environment:
|
||||
NGINX_PROXY_CONTAINER: ${PROJECT_NAME}_nginx_proxy
|
||||
DEFAULT_EMAIL: ${LETSENCRYPT_EMAIL}
|
||||
volumes_from:
|
||||
- nginx-proxy
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- ./certs:/etc/nginx/certs:rw
|
||||
- ./vhost.d:/etc/nginx/vhost.d
|
||||
- ./html:/usr/share/nginx/html
|
||||
networks:
|
||||
- nginx_proxy
|
||||
|
||||
networks:
|
||||
nginx_proxy:
|
||||
external: true
|
@ -1,23 +1,4 @@
|
||||
services:
|
||||
mariadb:
|
||||
image: mariadb:10.6
|
||||
container_name: ${APP_NAME}_db
|
||||
restart: always
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
|
||||
MYSQL_DATABASE: ${DB_DATABASE}
|
||||
MYSQL_USER: ${DB_USERNAME}
|
||||
MYSQL_PASSWORD: ${DB_PASSWORD}
|
||||
volumes:
|
||||
- ./data/mariadb/lib:/var/lib/mysql
|
||||
- ./data/mariadb/conf.d:/etc/mysql/conf.d
|
||||
- ./data/logs/mariadb:/var/log/mysql
|
||||
- ./docker/mariadb/my.cnf:/etc/mysql/conf.d/custom.cnf
|
||||
ports:
|
||||
- "3306:3306"
|
||||
networks:
|
||||
- app_network
|
||||
|
||||
app:
|
||||
build:
|
||||
context: .
|
||||
@ -29,23 +10,29 @@ services:
|
||||
- ./data/logs/nginx/:/var/log/nginx
|
||||
ports:
|
||||
- "${APP_PORT:-80}:${APP_PORT:-80}"
|
||||
depends_on:
|
||||
- mariadb
|
||||
environment:
|
||||
REPO_URL: ${REPO_URL}
|
||||
BRANCH: ${REPO_BRANCH:-main}
|
||||
APP_NAME: ${APP_NAME}
|
||||
APP_URL: ${APP_URL}
|
||||
DB_HOST: mariadb
|
||||
DB_PORT: 3306
|
||||
DB_DATABASE: ${DB_DATABASE}
|
||||
DB_USERNAME: ${DB_USERNAME}
|
||||
DB_PASSWORD: ${DB_PASSWORD}
|
||||
REDIS_HOST: redis
|
||||
REDIS_PORT: 6379
|
||||
SESSION_DRIVER: redis
|
||||
QUEUE_CONNECTION: redis
|
||||
CACHE_STORE: redis
|
||||
APP_NAME: ${APP_NAME}
|
||||
APP_URL: ${APP_URL}
|
||||
NGINX_HOST: ${APP_DOMAIN}
|
||||
NGINX_PORT: ${APP_PORT:-80}
|
||||
networks:
|
||||
- mariadb_internal
|
||||
- app_network
|
||||
|
||||
networks:
|
||||
mariadb_internal:
|
||||
external: true
|
||||
app_network:
|
||||
driver: bridge
|
@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
BRANCH=${BRANCH:-main}
|
||||
TARGET_DIR=/var/www/html
|
||||
|
||||
echo "[git-worker] Loop started for branch $BRANCH"
|
||||
while true; do
|
||||
cd "$TARGET_DIR"
|
||||
git remote update
|
||||
LOCAL=$(git rev-parse @)
|
||||
REMOTE=$(git rev-parse "origin/$BRANCH")
|
||||
|
||||
if [ "$LOCAL" != "$REMOTE" ]; then
|
||||
echo "[git-worker] Detected new commits, pulling..."
|
||||
git pull origin "$BRANCH"
|
||||
|
||||
echo "[git-worker] Restarting queue-worker..."
|
||||
supervisorctl restart queue-worker
|
||||
else
|
||||
echo "[git-worker] No changes."
|
||||
fi
|
||||
sleep 300
|
||||
done
|
@ -9,14 +9,16 @@ TARGET_DIR=/var/www/html
|
||||
if [ -z "$(ls -A "$TARGET_DIR")" ]; then
|
||||
echo "[entrypoint] Cloning $BRANCH from $REPO_URL ..."
|
||||
git clone --branch "$BRANCH" "$REPO_URL" "$TARGET_DIR"
|
||||
cd "$TARGET_DIR"
|
||||
else
|
||||
echo "[entrypoint] Repository already present, skipping clone."
|
||||
cd "$TARGET_DIR"
|
||||
git pull origin "$BRANCH"
|
||||
fi
|
||||
|
||||
cd "$TARGET_DIR"
|
||||
|
||||
# 2) Laravel 基礎安裝
|
||||
composer install --no-interaction --prefer-dist
|
||||
[ -d vendor ] || composer install --no-interaction --prefer-dist
|
||||
[ -f .env ] || cp .env.example .env
|
||||
|
||||
update_env() { local k=$1 v=$2; grep -q "^$k=" .env && sed -i "s|^$k=.*|$k=$v|" .env || echo "$k=$v" >> .env; }
|
||||
@ -27,6 +29,11 @@ update_env DB_PORT "$DB_PORT"
|
||||
update_env DB_DATABASE "$DB_DATABASE"
|
||||
update_env DB_USERNAME "$DB_USERNAME"
|
||||
update_env DB_PASSWORD "$DB_PASSWORD"
|
||||
update_env REDIS_HOST "$REDIS_HOST"
|
||||
update_env REDIS_PORT "$REDIS_PORT"
|
||||
update_env SESSION_DRIVER "$SESSION_DRIVER"
|
||||
update_env QUEUE_CONNECTION "$QUEUE_CONNECTION"
|
||||
update_env CACHE_STORE "$CACHE_STORE"
|
||||
|
||||
php artisan key:generate --force
|
||||
php artisan migrate --force
|
||||
|
@ -1,23 +0,0 @@
|
||||
[mysqld]
|
||||
log_error = /var/log/mysql/error.log
|
||||
slow_query_log = 1
|
||||
slow_query_log_file = /var/log/mysql/slow.log
|
||||
long_query_time = 2
|
||||
|
||||
# 使用 UTF-8 編碼
|
||||
character-set-server=utf8mb4
|
||||
collation-server=utf8mb4_unicode_ci
|
||||
|
||||
# 提升最大連線數
|
||||
max_connections=200
|
||||
|
||||
# InnoDB 設定
|
||||
default-storage-engine=InnoDB
|
||||
innodb_file_per_table=1
|
||||
innodb_buffer_pool_size=256M
|
||||
|
||||
# 安全 SQL 模式
|
||||
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
|
||||
|
||||
# 時區
|
||||
default_time_zone='+08:00'
|
@ -21,14 +21,6 @@ autorestart=true
|
||||
stdout_logfile=/var/www/logs/schedule.log
|
||||
stderr_logfile=/var/www/logs/schedule_error.log
|
||||
|
||||
[program:git-worker]
|
||||
command=/bin/sh /entrypoint.git.sh
|
||||
autostart=true
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user