diff --git a/.docker/.data/.gitignore b/.docker/.data/.gitignore old mode 100644 new mode 100755 index c96a04f..0377233 --- a/.docker/.data/.gitignore +++ b/.docker/.data/.gitignore @@ -1,2 +1,3 @@ * -!.gitignore \ No newline at end of file +!.gitignore +!redis \ No newline at end of file diff --git a/.docker/.data/redis/.gitignore b/.docker/.data/redis/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/.docker/.data/redis/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/.docker/etc/crontabs/root b/.docker/etc/crontabs/root new file mode 100755 index 0000000..36cba15 --- /dev/null +++ b/.docker/etc/crontabs/root @@ -0,0 +1 @@ +* * * * * php /www/artisan schedule:run >> /dev/null 2>&1 \ No newline at end of file diff --git a/.docker/etc/nginx/http.d/default.conf b/.docker/etc/nginx/http.d/default.conf new file mode 100755 index 0000000..80cea3a --- /dev/null +++ b/.docker/etc/nginx/http.d/default.conf @@ -0,0 +1,40 @@ +server { + listen 7001 default_server; + + root /www/public/; + index index.html index.htm; + + server_name _; + + # 开启 brotli 压缩 + brotli on; + brotli_static on; + brotli_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript; + + # 开启 gzip 压缩 + gzip on; + gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; + + location ~* \.(jpg|jpeg|png|gif|js|css|svg|woff2|woff|ttf|eot|wasm|json|ico)$ { + # 这里将.jpg、.jpeg、.png、.gif、.js和.css文件直接返回给客户端 + } + + location ~ .* { + proxy_pass http://127.0.0.1:7010; + proxy_http_version 1.1; + proxy_set_header Connection ""; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Real-PORT $remote_port; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header Scheme $scheme; + proxy_set_header Server-Protocol $server_protocol; + proxy_set_header Server-Name $server_name; + proxy_set_header Server-Addr $server_addr; + proxy_set_header Server-Port $server_port; + } + + location ~ /\.ht { + deny all; + } +} \ No newline at end of file diff --git a/.docker/etc/supervisor/supervisord.conf b/.docker/etc/supervisor/supervisord.conf new file mode 100755 index 0000000..382327d --- /dev/null +++ b/.docker/etc/supervisor/supervisord.conf @@ -0,0 +1,65 @@ +[supervisord] +nodaemon=true +logfile=/dev/null +logfile_maxbytes=0 +pidfile=/tmp/supervisord.pid + +[program:nginx] +command=nginx -g 'daemon off;' +user=root +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 +autostart=true +autorestart=true +startretries=10 + +[program:cron] +command=crond -f -l 8 +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 +autostart=true +autorestart=true +startretries=10 + +; [program:laravels] +; command=php bin/laravels start +; directory=/www +; user=www-data +; numprocs=1 +; stdout_logfile=/dev/stdout +; stdout_logfile_maxbytes=0 +; stderr_logfile=/dev/stderr +; stderr_logfile_maxbytes=0 +; autostart=true +; autorestart=true +; startretries=3 + +[program:adapterman] +command=php -c php.ini webman.php start +directory=/www +user=root +numprocs=1 +stdout_logfile=/dev/stdout +stdout_logfile_maxbytes=0 +stderr_logfile=/dev/stderr +stderr_logfile_maxbytes=0 +autostart=true +autorestart=true +startretries=3 + +[program:xboard-queue] +command=php artisan horizon +directory=/www +user=root +stdout_logfile=/www/storage/logs/queue.log +stdout_logfile_maxbytes=0 +stderr_logfile=/www/storage/logs/queue_error.log +stderr_logfile_maxbytes=0 +autostart=true +autorestart=true +startretries=10 +numprocs=1 diff --git a/.docker/services/redis/Dockerfile b/.docker/services/redis/Dockerfile new file mode 100644 index 0000000..8220abe --- /dev/null +++ b/.docker/services/redis/Dockerfile @@ -0,0 +1,5 @@ +FROM redis:7-alpine + +RUN mkdir -p /run/redis-socket && chmod 777 /run/redis-socket +COPY ./redis.conf /etc/redis.conf +CMD ["redis-server", "/etc/redis.conf"] diff --git a/.docker/services/redis/redis.conf b/.docker/services/redis/redis.conf new file mode 100644 index 0000000..c7115b6 --- /dev/null +++ b/.docker/services/redis/redis.conf @@ -0,0 +1,3 @@ +unixsocket /run/redis-socket/redis.sock +unixsocketperm 777 +port 0 \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index e5a3fde..bdd4d7e 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,4 +6,18 @@ services: - ./.env:/www/.env - ./.docker/.data/:/www/.docker/.data/ # - ./config/v2board.php:/www/config/v2board.php - network_mode: host + - redis-socket:/run/redis-socket # 挂载socket + environment: + - docker=true #用于给安装脚本判断是否为docker环境 + depends_on: + - redis + ports: + - 7001:7001 + redis: + build: + context: .docker/services/redis + volumes: + - ./.docker/.data/redis:/data/ # 挂载redis持久化数据 + - redis-socket:/run/redis-socket # 挂载socket +volumes: + redis-socket: \ No newline at end of file