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..470bd7d8 --- /dev/null +++ b/dev.Dockerfile @@ -0,0 +1,64 @@ +# 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 -u ${UID} -G application -s /bin/ash -h /home/application 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"] 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: