Dockerfile 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. # Default Dockerfile
  2. #
  3. # @link https://www.hyperf.io
  4. # @document https://hyperf.wiki
  5. # @contact group@hyperf.io
  6. # @license https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE
  7. FROM hyperf/hyperf:7.4-alpine-v3.11-cli
  8. LABEL maintainer="Hyperf Developers <group@hyperf.io>" version="1.0" license="MIT" app.name="Hyperf"
  9. ##
  10. # ---------- env settings ----------
  11. ##
  12. # --build-arg timezone=Asia/Shanghai
  13. ARG timezone
  14. ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \
  15. COMPOSER_VERSION=1.10.10 \
  16. APP_ENV=prod \
  17. SCAN_CACHEABLE=(true)
  18. # update
  19. RUN set -ex \
  20. # install composer
  21. && cd /tmp \
  22. && wget https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar \
  23. && chmod u+x composer.phar \
  24. && mv composer.phar /usr/local/bin/composer \
  25. # show php version and extensions
  26. && php -v \
  27. && php -m \
  28. && php --ri swoole \
  29. # ---------- some config ----------
  30. && cd /etc/php7 \
  31. # - config PHP
  32. && { \
  33. echo "upload_max_filesize=128M"; \
  34. echo "post_max_size=128M"; \
  35. echo "memory_limit=1G"; \
  36. echo "date.timezone=${TIMEZONE}"; \
  37. } | tee conf.d/99_overrides.ini \
  38. # - config timezone
  39. && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
  40. && echo "${TIMEZONE}" > /etc/timezone \
  41. # ---------- clear works ----------
  42. && rm -rf /var/cache/apk/* /tmp/* /usr/share/man \
  43. && echo -e "\033[42;37m Build Completed :).\033[0m\n"
  44. WORKDIR /opt/www
  45. # Composer Cache
  46. # COPY ./composer.* /opt/www/
  47. # RUN composer install --no-dev --no-scripts
  48. COPY . /opt/www
  49. RUN composer install --no-dev -o && php bin/hyperf.php
  50. EXPOSE 9501
  51. ENTRYPOINT ["php", "/opt/www/bin/hyperf.php", "start"]