1- ARG IMAGE_NAME=ghcr.io/dtyq/php-dockerfile:8.4-alpine-3.22-swow-1.6.1-jsonpath-parle-xlswriter
21
3- FROM --platform=$BUILDPLATFORM ${IMAGE_NAME}
2+ ARG BASE_IMAGE=ghcr.io/dtyq/php-dockerfile:8.4-alpine-3.22-swow-1.6.1-jsonpath-parle-xlswriter
3+ FROM ${BASE_IMAGE}
44
5- ARG timezone
6- ARG TARGETPLATFORM
5+ ARG TARGETARCH
76
8- ENV TIMEZONE=${timezone:-"Asia/Shanghai" } \
7+ ARG TZ=Asia/Shanghai
8+
9+ ENV TZ=${TZ} \
910 SCAN_CACHEABLE=(true) \
1011 USE_ZEND_ALLOC=0 \
1112 COMPOSER_FUND=0 \
@@ -17,22 +18,26 @@ ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \
1718RUN mkdir -p /etc/php/conf.d && \
1819 echo "memory_limit = -1" > /etc/php/conf.d/memory-limit.ini && \
1920 echo "max_execution_time = 0" > /etc/php/conf.d/max-execution-time.ini
20-
2121
2222COPY . /opt/www
2323
2424WORKDIR /opt/www
2525
26-
27- # composer 改成阿里云镜像
28- # RUN composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
29-
30-
31- # 关闭swow扩展 再安装, 因为安装swow扩展后 再执行composer update 时,curl会陷入循环
32- RUN php -d swow.enable=0 $(which composer) update
26+ ARG COMPOSER_MIRROR=https://mirrors.aliyun.com/composer/
27+ RUN --mount=type=cache,id=composer-cache-v1-${TARGETARCH},target=/root/.composer/cache \
28+ --mount=type=cache,id=composer-cache-v2-${TARGETARCH},target=/root/.cache/composer \
29+ # setup composer mirror
30+ { \
31+ [ -n "${COMPOSER_MIRROR}" ] && \
32+ composer config -g repo.packagist composer "${COMPOSER_MIRROR}" || \
33+ composer config -g --unset repos.packagist ; \
34+ } && \
35+ composer update && \
36+ # restore composer mirror
37+ rm /root/.config/composer/config.json
3338
3439# 可选的:标记expose端口
3540EXPOSE 9501
3641EXPOSE 9502
3742
38- ENTRYPOINT ["sh" , "/opt/www/start.sh" ]
43+ ENTRYPOINT ["sh" , "/opt/www/start.sh" ]
0 commit comments