diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3d3bd56..cc8e04f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -6,7 +6,8 @@ on: - main paths: - Dockerfile - - .docker/ + - .docker/** + - .github/workflows/build.yaml permissions: contents: 'read' @@ -41,7 +42,6 @@ jobs: - name: Process builder shell: bash run: | - echo "build_version=preprod" >> $GITHUB_ENV echo "build_date=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_ENV - name: Set up Depot CLI diff --git a/Dockerfile b/Dockerfile index 472aae7..40c05ba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,11 @@ FROM composer:${COMPOSER_VERSION} as composer FROM php:${PHP_VERSION}-fpm-alpine +ARG PHP_VERSION=8 +ENV PHP_VERSION $PHP_VERSION +ARG COMPOSER_VERSION=2 +ENV COMPOSER_VERSION $COMPOSER_VERSION + ## XDEBUG RUN curl -sSLf \ -o /usr/local/bin/install-php-extensions \ @@ -50,12 +55,25 @@ ARG BUILD_DATE ARG IMAGE_TAG=ghcr.io/devgine/composer-php:latest LABEL maintainer="yosribahri@gmail.com" +LABEL org.opencontainers.image.title="Composer v$COMPOSER_VERSION PHP-fpm $PHP_VERSION docker image" +LABEL org.opencontainers.image.description="This is a docker image based on official alpine image, PHP-fpm \ +$PHP_VERSION and composer v$COMPOSER_VERSION. This image will help you to build and test your PHP projects with \ +different PHP version. It contains a necessary tools you need to analyze and test your PHP project \ +(xdebug, phpunit, phpstan, php-cs-fixer. phpmd and rector)." LABEL org.opencontainers.image.source="https://github.com/devgine/composer-php" -LABEL org.opencontainers.image.description="PHP composer golden image" +LABEL org.opencontainers.image.licenses=MIT +LABEL org.opencontainers.image.created=$BUILD_DATE +LABEL org.opencontainers.image.url="https://github.com/devgine/composer-php" +LABEL org.opencontainers.image.version=$BUILD_VERSION +LABEL org.opencontainers.image.revision=$VCS_REF +LABEL org.opencontainers.image.vendor="devgine" LABEL org.label-schema.schema-version="1.0" LABEL org.label-schema.build-date=$BUILD_DATE LABEL org.label-schema.name="devgine/composer-php" -LABEL org.label-schema.description="PHP composer golden image" +LABEL org.label-schema.description="This is a docker image based on official alpine image, PHP-fpm \ +$PHP_VERSION and composer v$COMPOSER_VERSION. This image will help you to build and test your PHP projects with \ +different PHP version. It contains a necessary tools you need to analyze and test your PHP project \ +(xdebug, phpunit, phpstan, php-cs-fixer. phpmd and rector)." LABEL org.label-schema.url="https://github.com/devgine/composer-php" LABEL org.label-schema.vcs-url="https://github.com/devgine/composer-php" LABEL org.label-schema.vcs-ref=$VCS_REF diff --git a/README.md b/README.md index 3a1e100..c59921b 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ [![Build](https://github.com/devgine/composer-php/actions/workflows/build.yaml/badge.svg?branch=main)](https://github.com/devgine/composer-php/actions/workflows/build.yaml) [![License](https://img.shields.io/github/license/devgine/composer-php)](https://github.com/devgine/composer-php/blob/main/LICENSE) ![GitHub top language](https://img.shields.io/github/languages/top/devgine/composer-php) - +[![Packages retention policy](https://github.com/devgine/composer-php/actions/workflows/packages-retention-policy.yaml/badge.svg?branch=main)](https://github.com/devgine/composer-php/actions/workflows/packages-retention-policy.yaml) ## About -This repository is a docker image based on php-alpine to help you to build and test your PHP projects with different PHP version.
+This repository is a docker image based on official php, composer and alpine docker images to help you to build and test your PHP projects with different PHP version.
This docker image contains a necessary tools you need to analyze and test your PHP project.
List of docker images available by PHP versions: @@ -20,7 +20,7 @@ List of docker images available by PHP versions: | PHP 7.2 | `ghcr.io/devgine/composer-php:v2-php7.2-alpine` | ## Components -All image tags are based on alpine. +All image tags are based on alpine OS.
Below is the list of tools with their preinstalled version according to the version of PHP. | Image tag | PHP | Composer | PHP Unit | XDebug | Rector | PHPStan | PHP CS FIXER | PHP MD | PHP CPD | @@ -42,6 +42,14 @@ docker run -ti -v LOCAL_PROJETC_DIR:/var/www/composer ghcr.io/devgine/composer-p ### Use as base image in Dockerfile ```dockerfile FROM ghcr.io/devgine/composer-php:latest + +# Add your custom instructions here +# example: install bash +RUN apk add --no-cache bash + +# example: expose 8080 port +EXPOSE 8080 +#... ``` ### Use components diff --git a/doc/v2-php7.2-alpine.md b/doc/v2-php7.2-alpine.md index 275604f..1410dda 100644 --- a/doc/v2-php7.2-alpine.md +++ b/doc/v2-php7.2-alpine.md @@ -16,11 +16,11 @@ docker run -ti -v LOCAL_PROJETC_DIR:/var/www/composer ghcr.io/devgine/composer-p ```dockerfile FROM ghcr.io/devgine/composer-php:v2-php7.2-alpine -## SYMFONY CLI INSTALL +# Add your custom instructions here +# example: install symfony cli RUN apk add --no-cache bash git RUN curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.alpine.sh' | bash RUN apk add symfony-cli -## END SYMFONY CLI INSTALL ``` ## Content diff --git a/doc/v2-php7.3-alpine.md b/doc/v2-php7.3-alpine.md index 7723160..b129d87 100644 --- a/doc/v2-php7.3-alpine.md +++ b/doc/v2-php7.3-alpine.md @@ -16,11 +16,11 @@ docker run -ti -v LOCAL_PROJETC_DIR:/var/www/composer ghcr.io/devgine/composer-p ```dockerfile FROM ghcr.io/devgine/composer-php:v2-php7.3-alpine -## SYMFONY CLI INSTALL +# Add your custom instructions here +# example: install symfony cli RUN apk add --no-cache bash git RUN curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.alpine.sh' | bash RUN apk add symfony-cli -## END SYMFONY CLI INSTALL ``` ## Content diff --git a/doc/v2-php7.4-alpine.md b/doc/v2-php7.4-alpine.md index 722abea..637096a 100644 --- a/doc/v2-php7.4-alpine.md +++ b/doc/v2-php7.4-alpine.md @@ -16,11 +16,11 @@ docker run -ti -v LOCAL_PROJETC_DIR:/var/www/composer ghcr.io/devgine/composer-p ```dockerfile FROM ghcr.io/devgine/composer-php:v2-php7.4-alpine -## SYMFONY CLI INSTALL +# Add your custom instructions here +# example: install symfony cli RUN apk add --no-cache bash git RUN curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.alpine.sh' | bash RUN apk add symfony-cli -## END SYMFONY CLI INSTALL ``` ## Content diff --git a/doc/v2-php8.0-alpine.md b/doc/v2-php8.0-alpine.md index 2dc0487..29abe9e 100644 --- a/doc/v2-php8.0-alpine.md +++ b/doc/v2-php8.0-alpine.md @@ -16,11 +16,11 @@ docker run -ti -v LOCAL_PROJETC_DIR:/var/www/composer ghcr.io/devgine/composer-p ```dockerfile FROM ghcr.io/devgine/composer-php:v2-php8.0-alpine -## SYMFONY CLI INSTALL +# Add your custom instructions here +# example: install symfony cli RUN apk add --no-cache bash git RUN curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.alpine.sh' | bash RUN apk add symfony-cli -## END SYMFONY CLI INSTALL ``` ## Content diff --git a/doc/v2-php8.1-alpine.md b/doc/v2-php8.1-alpine.md index e673a75..68e9a24 100644 --- a/doc/v2-php8.1-alpine.md +++ b/doc/v2-php8.1-alpine.md @@ -16,11 +16,11 @@ docker run -ti -v LOCAL_PROJETC_DIR:/var/www/composer ghcr.io/devgine/composer-p ```dockerfile FROM ghcr.io/devgine/composer-php:v2-php8.1-alpine -## SYMFONY CLI INSTALL +# Add your custom instructions here +# example: install symfony cli RUN apk add --no-cache bash git RUN curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.alpine.sh' | bash RUN apk add symfony-cli -## END SYMFONY CLI INSTALL ``` ## Content diff --git a/doc/v2-php8.2-alpine.md b/doc/v2-php8.2-alpine.md index 7b3d94b..e29f359 100644 --- a/doc/v2-php8.2-alpine.md +++ b/doc/v2-php8.2-alpine.md @@ -16,11 +16,11 @@ docker run -ti -v LOCAL_PROJETC_DIR:/var/www/composer ghcr.io/devgine/composer-p ```dockerfile FROM ghcr.io/devgine/composer-php:v2-php8.2-alpine -## SYMFONY CLI INSTALL +# Add your custom instructions here +# example: install symfony cli RUN apk add --no-cache bash git RUN curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.alpine.sh' | bash RUN apk add symfony-cli -## END SYMFONY CLI INSTALL ``` ## Content