perf(api): 优化节点统计查询与 Docker 构建缓存
节点流量累计统计改为统一从 v2_stat_server 聚合, 避免节点当前累计字段重置后出现月统计大于累计的错误。 Docker 构建改为先复制 composer 清单并缓存依赖安装, 同时移除 composer.lock 的忽略规则以提升缓存命中率。
This commit is contained in:
+24
-10
@@ -1,33 +1,47 @@
|
||||
# syntax=docker/dockerfile:1.7
|
||||
|
||||
FROM phpswoole/swoole:php8.2-alpine
|
||||
|
||||
COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/
|
||||
|
||||
# Install PHP extensions one by one with lower optimization level for ARM64 compatibility
|
||||
RUN CFLAGS="-O0" install-php-extensions pcntl && \
|
||||
RUN --mount=type=cache,target=/var/cache/apk,sharing=locked \
|
||||
CFLAGS="-O0" install-php-extensions pcntl && \
|
||||
CFLAGS="-O0 -g0" install-php-extensions bcmath && \
|
||||
install-php-extensions zip && \
|
||||
install-php-extensions redis && \
|
||||
apk --no-cache add shadow sqlite mysql-client mysql-dev mariadb-connector-c git patch supervisor redis caddy && \
|
||||
apk add --update-cache --no-progress shadow sqlite mysql-client mysql-dev mariadb-connector-c git patch supervisor redis caddy && \
|
||||
addgroup -S -g 1000 www && adduser -S -G www -u 1000 www && \
|
||||
(getent group redis || addgroup -S redis) && \
|
||||
(getent passwd redis || adduser -S -G redis -H -h /data redis)
|
||||
(getent passwd redis || adduser -S -G redis -H -h /data redis) && \
|
||||
mkdir -p /data && \
|
||||
chown redis:redis /data
|
||||
|
||||
WORKDIR /www
|
||||
|
||||
COPY .docker /
|
||||
ENV COMPOSER_ALLOW_SUPERUSER=1
|
||||
|
||||
COPY composer.json composer.lock ./
|
||||
|
||||
RUN --mount=type=cache,target=/tmp/composer-cache,sharing=locked \
|
||||
COMPOSER_CACHE_DIR=/tmp/composer-cache composer install \
|
||||
--no-dev \
|
||||
--prefer-dist \
|
||||
--no-interaction \
|
||||
--no-progress \
|
||||
--no-security-blocking \
|
||||
--no-scripts \
|
||||
--no-autoloader
|
||||
|
||||
COPY . /www
|
||||
|
||||
COPY .docker /
|
||||
COPY .docker/supervisor/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
COPY .docker/caddy/Caddyfile /etc/caddy/Caddyfile
|
||||
COPY .docker/php/zz-xboard.ini /usr/local/etc/php/conf.d/zz-xboard.ini
|
||||
|
||||
RUN composer install --no-cache --no-dev --no-security-blocking \
|
||||
&& php artisan storage:link \
|
||||
&& chown -R www:www /www \
|
||||
&& chmod -R 775 /www \
|
||||
&& mkdir -p /data \
|
||||
&& chown redis:redis /data
|
||||
RUN composer dump-autoload --no-dev --optimize --no-interaction \
|
||||
&& php artisan storage:link
|
||||
|
||||
ENV ENABLE_WEB=true \
|
||||
ENABLE_HORIZON=true \
|
||||
|
||||
Reference in New Issue
Block a user