Dockerfile 1.2 KB

123456789101112131415161718192021222324252627282930
  1. ARG PHP_VERSION
  2. FROM php:${PHP_VERSION}-cli-alpine3.16
  3. ARG DOCKER_USER_ID
  4. ARG DOCKER_GROUP_ID
  5. ARG PHP_XDEBUG_VERSION
  6. # https://blog.codito.dev/2022/11/composer-binary-only-docker-images/
  7. # https://github.com/composer/docker/pull/250
  8. COPY --from=composer/composer:2-bin /composer /usr/local/bin/composer
  9. RUN if ! getent group "${DOCKER_GROUP_ID}" > /dev/null; \
  10. then addgroup -S -g "${DOCKER_GROUP_ID}" devs; \
  11. fi \
  12. && if ! getent passwd "${DOCKER_USER_ID}" > /dev/null; \
  13. then adduser -S -u "${DOCKER_USER_ID}" -G "$(getent group "${DOCKER_GROUP_ID}" | awk -F: '{printf $1}')" dev; \
  14. fi \
  15. # php extensions
  16. && curl --location --output /usr/local/bin/install-php-extensions https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions \
  17. && chmod +x /usr/local/bin/install-php-extensions \
  18. && sync \
  19. && install-php-extensions \
  20. pcntl \
  21. xdebug-${PHP_XDEBUG_VERSION} \
  22. # xdebug command
  23. && curl --location --output /usr/local/bin/xdebug https://github.com/julienfalque/xdebug/releases/download/v2.0.0/xdebug \
  24. && chmod +x /usr/local/bin/xdebug
  25. COPY docker/xdebug.ini /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini