From 8b17b6ae4f6a0cfebb7ea12fb5aca9db3c422533 Mon Sep 17 00:00:00 2001 From: Leonardo Tumadjian Date: Fri, 30 Jan 2026 01:55:05 -0300 Subject: [PATCH 1/3] Update Dockerfiles to PHP8.4 and add dev.Dockerfile to handle rootless local files --- .devcontainer/Dockerfile | 2 +- .github/workflows/Dockerfile | 2 +- Dockerfile | 2 +- dev.Dockerfile | 65 ++++++++++++++++++++++++++++++++++++ 4 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 dev.Dockerfile diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 252252d7..91273bda 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -5,7 +5,7 @@ # @contact group@hyperf.io # @license https://github.com/hyperf/hyperf/blob/master/LICENSE -FROM hyperf/hyperf:8.3-alpine-v3.19-swoole +FROM hyperf/hyperf:8.4-alpine-v3.21-swoole LABEL maintainer="Hyperf Developers " version="1.0" license="MIT" app.name="Hyperf" ## diff --git a/.github/workflows/Dockerfile b/.github/workflows/Dockerfile index 24859589..fd39aeba 100644 --- a/.github/workflows/Dockerfile +++ b/.github/workflows/Dockerfile @@ -5,7 +5,7 @@ # @contact group@hyperf.io # @license https://github.com/hyperf/hyperf/blob/master/LICENSE -FROM hyperf/hyperf:8.3-alpine-v3.19-swoole +FROM hyperf/hyperf:8.4-alpine-v3.21-swoole LABEL maintainer="Hyperf Developers " version="1.0" license="MIT" app.name="Hyperf" ## diff --git a/Dockerfile b/Dockerfile index 49056149..359bacc2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ # @contact group@hyperf.io # @license https://github.com/hyperf/hyperf/blob/master/LICENSE -FROM hyperf/hyperf:8.3-alpine-v3.19-swoole +FROM hyperf/hyperf:8.4-alpine-v3.21-swoole LABEL maintainer="Hyperf Developers " version="1.0" license="MIT" app.name="Hyperf" ## diff --git a/dev.Dockerfile b/dev.Dockerfile new file mode 100644 index 00000000..4a12a140 --- /dev/null +++ b/dev.Dockerfile @@ -0,0 +1,65 @@ +# Local Dev Dockerfile +# +# @link https://www.hyperf.io +# @document https://hyperf.wiki +# @contact group@hyperf.io +# @license https://github.com/hyperf/hyperf/blob/master/LICENSE + +FROM hyperf/hyperf:8.4-alpine-v3.21-swoole +LABEL maintainer="Hyperf Developers " version="1.0" license="MIT" app.name="Hyperf" + +## +# ---------- env settings ---------- +## +# --build-arg timezone=Asia/Shanghai +ARG timezone +ARG UID=1000 +ARG GID=1000 + +ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \ + APP_ENV=dev \ + SCAN_CACHEABLE=(false) + +# Make local user to avoid file permissions on runtime +RUN addgroup -g ${GID} application && \ + adduser -S -D -H -u ${UID} -G application -s /bin/ash application + + +# update +RUN set -ex \ + # show php version and extensions + && php -v \ + && php -m \ + && php --ri swoole \ + # ---------- some config ---------- + && cd /etc/php* \ + # - config PHP + && { \ + echo "upload_max_filesize=128M"; \ + echo "post_max_size=128M"; \ + echo "memory_limit=1G"; \ + echo "date.timezone=${TIMEZONE}"; \ + } | tee conf.d/99_overrides.ini \ + # - config timezone + && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \ + && echo "${TIMEZONE}" > /etc/timezone \ + # ---------- clear works ---------- + && rm -rf /var/cache/apk/* /tmp/* /usr/share/man \ + && echo -e "\033[42;37m Build Completed :).\033[0m\n" + +RUN chmod +x /usr/local/bin/composer + +USER application + +WORKDIR /opt/www + +# Composer Cache +# COPY ./composer.* /opt/www/ +# RUN composer install --no-dev --no-scripts + +COPY . /opt/www +RUN composer install --no-scripts + +EXPOSE 9501 + +ENTRYPOINT ["php", "/opt/www/bin/hyperf.php", "start"] From 3837248cc8ea12ac5915138694454142f961fb60 Mon Sep 17 00:00:00 2001 From: Leonardo Tumadjian Date: Fri, 30 Jan 2026 01:59:18 -0300 Subject: [PATCH 2/3] Update docker-composer file to local container --- docker-compose.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 1828ecec..f7fbd4fe 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,12 @@ -version: '3' services: hyperf-skeleton: container_name: hyperf-skeleton image: hyperf-skeleton build: - context: . + dockerfile: dev.Dockerfile + args: + UID: 1000 + GID: 1000 volumes: - ./:/opt/www ports: From 286d70c9b6bc942d2e15e492262155992af23706 Mon Sep 17 00:00:00 2001 From: Leonardo Tumadjian Date: Fri, 30 Jan 2026 02:39:18 -0300 Subject: [PATCH 3/3] fix dev.Dockerfile to create home dir for composer --- dev.Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dev.Dockerfile b/dev.Dockerfile index 4a12a140..470bd7d8 100644 --- a/dev.Dockerfile +++ b/dev.Dockerfile @@ -22,8 +22,7 @@ ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \ # Make local user to avoid file permissions on runtime RUN addgroup -g ${GID} application && \ - adduser -S -D -H -u ${UID} -G application -s /bin/ash application - + adduser -S -D -u ${UID} -G application -s /bin/ash -h /home/application application # update RUN set -ex \