diff --git a/.gitea/workflows/php8-alpine.yaml b/.gitea/workflows/php8-alpine.yaml index f153ab5..385daf7 100644 --- a/.gitea/workflows/php8-alpine.yaml +++ b/.gitea/workflows/php8-alpine.yaml @@ -55,144 +55,169 @@ jobs: PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} tags: | quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-builder-${{ matrix.flavors.os }} - # flavors: - # name: Build PHP 8 container images - # runs-on: ubuntu-latest - # needs: - # - builder - # container: - # image: ghcr.io/catthehacker/ubuntu:act-latest - # strategy: - # matrix: - # flavors: - # - os: "alpine" - # os_version: "3.9" - # php_version: "8.2" - # php_ver_short: "8" - # with_server: "false" - # with_database: "false" - # - os: "alpine" - # os_version: "3.12" - # php_version: "8.3" - # php_ver_short: "8" - # with_server: "false" - # with_database: "false" - # - os: "alpine" - # os_version: "3.15" - # php_version: "8.4" - # php_ver_short: "8" - # with_server: "false" - # with_database: "false" - # - os: "alpine" - # os_version: "3.9" - # php_version: "8.2" - # php_ver_short: "8" - # with_server: "apache" - # with_database: "false" - # - os: "alpine" - # os_version: "3.12" - # php_version: "8.3" - # php_ver_short: "8" - # with_server: "apache" - # with_database: "false" - # - os: "alpine" - # os_version: "3.15" - # php_version: "8.4" - # php_ver_short: "8" - # with_server: "apache" - # with_database: "false" + flavors: + name: Build PHP 8 container images + runs-on: ubuntu-latest + needs: + - builder + container: + image: ghcr.io/catthehacker/ubuntu:act-latest + strategy: + matrix: + flavors: + - os: "alpine" + os_version: "3.16" + php_version: "8.0" + php_ver_short: "8" + with_server: "false" + with_database: "false" + - os: "alpine" + os_version: "3.19" + php_version: "8.1" + php_ver_short: "81" + with_server: "false" + with_database: "false" + - os: "alpine" + os_version: "3.21" + php_version: "8.2" + php_ver_short: "82" + with_server: "false" + with_database: "false" + - os: "alpine" + os_version: "3.21" + php_version: "8.3" + php_ver_short: "83" + with_server: "false" + with_database: "false" - # - os: "alpine" - # os_version: "3.9" - # php_version: "8.2" - # php_ver_short: "8" - # with_server: "apache" - # with_database: "mysql" - # - os: "alpine" - # os_version: "3.12" - # php_version: "8.3" - # php_ver_short: "8" - # with_server: "apache" - # with_database: "mysql" - # - os: "alpine" - # os_version: "3.15" - # php_version: "8.4" - # php_ver_short: "8" - # with_server: "apache" - # with_database: "mysql" + - os: "alpine" + os_version: "3.16" + php_version: "8.0" + php_ver_short: "8" + with_server: "apache" + with_database: "false" + - os: "alpine" + os_version: "3.19" + php_version: "8.1" + php_ver_short: "81" + with_server: "apache" + with_database: "false" + - os: "alpine" + os_version: "3.21" + php_version: "8.2" + php_ver_short: "82" + with_server: "apache" + with_database: "false" + - os: "alpine" + os_version: "3.21" + php_version: "8.3" + php_ver_short: "83" + with_server: "apache" + with_database: "false" - # - os: "alpine" - # os_version: "3.9" - # php_version: "8.2" - # php_ver_short: "8" - # with_server: "apache" - # with_database: "postgresql" - # - os: "alpine" - # os_version: "3.12" - # php_version: "8.3" - # php_ver_short: "8" - # with_server: "apache" - # with_database: "postgresql" - # - os: "alpine" - # os_version: "3.15" - # php_version: "8.4" - # php_ver_short: "8" - # with_server: "apache" - # with_database: "postgresql" + - os: "alpine" + os_version: "3.16" + php_version: "8.0" + php_ver_short: "8" + with_server: "apache" + with_database: "mysql" + - os: "alpine" + os_version: "3.19" + php_version: "8.1" + php_ver_short: "81" + with_server: "apache" + with_database: "mysql" + - os: "alpine" + os_version: "3.21" + php_version: "8.2" + php_ver_short: "82" + with_server: "apache" + with_database: "mysql" + - os: "alpine" + os_version: "3.21" + php_version: "8.3" + php_ver_short: "83" + with_server: "apache" + with_database: "mysql" - # steps: - # - name: Check out repository code - # uses: actions/checkout@v4 - # - name: Login to quay.io - # uses: docker/login-action@v3 - # with: - # registry: quay.io - # username: ${{ vars.QUAY_USERNAME }} - # password: ${{ secrets.QUAY_SECRET }} - # # - name: Set up QEMU - # # uses: docker/setup-qemu-action@v3 - # - name: Setup Docker buildx - # uses: docker/setup-buildx-action@v3 - # - if: ${{ matrix.flavors.with_server == 'false' && matrix.flavors.with_database == 'false' }} - # name: Build and push php8 - # uses: docker/build-push-action@v5 - # with: - # push: true - # context: . - # file: 8/Dockerfile.${{ matrix.flavors.os }} - # build-args: | - # OS_VERSION=${{ matrix.flavors.os_version }} - # PHP_VERSION=${{ matrix.flavors.php_version }} - # PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} - # tags: | - # quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-${{ matrix.flavors.os }} - # - if: ${{ matrix.flavors.with_server != 'false' && matrix.flavors.with_database == 'false' }} - # name: Build and push php8 with webserver - # uses: docker/build-push-action@v5 - # with: - # push: true - # context: . - # file: 8/Dockerfile.${{ matrix.flavors.os }}-${{ matrix.flavors.with_server }} - # build-args: | - # OS_VERSION=${{ matrix.flavors.os_version }} - # PHP_VERSION=${{ matrix.flavors.php_version }} - # PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} - # WITH_APACHE=true - # tags: | - # quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-${{ matrix.flavors.with_server }}-${{ matrix.flavors.os }} - # - if: ${{ matrix.flavors.with_server != 'false' && matrix.flavors.with_database != 'false' }} - # name: Build and push php8 with webserver and database connector library - # uses: docker/build-push-action@v5 - # with: - # push: true - # context: . - # file: 8/Dockerfile.${{ matrix.flavors.os }}-${{ matrix.flavors.with_server }} - # build-args: | - # OS_VERSION=${{ matrix.flavors.os_version }} - # PHP_VERSION=${{ matrix.flavors.php_version }} - # PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} - # WITH_APACHE=true - # WITH_DATABASE=${{ matrix.flavors.with_database }} - # tags: | - # quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-${{ matrix.flavors.with_server }}-${{ matrix.flavors.with_database }}-${{ matrix.flavors.os }} \ No newline at end of file + - os: "alpine" + os_version: "3.16" + php_version: "8.0" + php_ver_short: "8" + with_server: "apache" + with_database: "postgresql" + - os: "alpine" + os_version: "3.19" + php_version: "8.1" + php_ver_short: "81" + with_server: "apache" + with_database: "postgresql" + - os: "alpine" + os_version: "3.21" + php_version: "8.2" + php_ver_short: "82" + with_server: "apache" + with_database: "postgresql" + - os: "alpine" + os_version: "3.21" + php_version: "8.3" + php_ver_short: "83" + with_server: "apache" + with_database: "postgresql" + + steps: + - name: Check out repository code + uses: actions/checkout@v4 + - name: Login to quay.io + uses: docker/login-action@v3 + with: + registry: quay.io + username: ${{ vars.QUAY_USERNAME }} + password: ${{ secrets.QUAY_SECRET }} + # - name: Set up QEMU + # uses: docker/setup-qemu-action@v3 + - name: Setup Docker buildx + uses: docker/setup-buildx-action@v3 + - if: ${{ matrix.flavors.with_server == 'false' && matrix.flavors.with_database == 'false' }} + name: Build and push php8 + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: 8/Dockerfile.${{ matrix.flavors.os }} + build-args: | + OS_VERSION=${{ matrix.flavors.os_version }} + PHP_VERSION=${{ matrix.flavors.php_version }} + PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} + tags: | + quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-${{ matrix.flavors.os }} + - if: ${{ matrix.flavors.with_server != 'false' && matrix.flavors.with_database == 'false' }} + name: Build and push php8 with webserver + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: 8/Dockerfile.${{ matrix.flavors.os }}-${{ matrix.flavors.with_server }} + build-args: | + OS_VERSION=${{ matrix.flavors.os_version }} + PHP_VERSION=${{ matrix.flavors.php_version }} + PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} + WITH_APACHE=true + tags: | + quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-${{ matrix.flavors.with_server }}-${{ matrix.flavors.os }} + - if: ${{ matrix.flavors.with_server != 'false' && matrix.flavors.with_database != 'false' }} + name: Build and push php8 with webserver and database connector library + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: 8/Dockerfile.${{ matrix.flavors.os }}-${{ matrix.flavors.with_server }} + build-args: | + OS_VERSION=${{ matrix.flavors.os_version }} + PHP_VERSION=${{ matrix.flavors.php_version }} + PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} + WITH_APACHE=true + WITH_DATABASE=${{ matrix.flavors.with_database }} + tags: | + quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-${{ matrix.flavors.with_server }}-${{ matrix.flavors.with_database }}-${{ matrix.flavors.os }} \ No newline at end of file diff --git a/8/Dockerfile.alpine-apache b/8/Dockerfile.alpine-apache new file mode 100644 index 0000000..d80be17 --- /dev/null +++ b/8/Dockerfile.alpine-apache @@ -0,0 +1,62 @@ +# PHP 8.0 == 3.16 +# PHP 8.1 == 3.19 +# PHP 8.2 == 3.21 +# PHP 8.3 == 3.21 +ARG OS_VERSION=3.21 +ARG PHP_VERSION=8.3 + +FROM quay.io/sindigilive/php:${PHP_VERSION}-builder-alpine AS builder + +USER root + +ARG WITH_APACHE=true +ARG WITH_DATABASE=false + +ENV WITH_APACHE=${WITH_APACHE} +ENV WITH_DATABASE=${WITH_DATABASE} +ENV APP_ROOT=${SERVER_ROOT}/htdocs + +ADD scripts/apache-entrypoint.sh /usr/local/bin/entrypoint +ADD htdocs ${APP_ROOT} + +# Create directory, and install required php app +RUN /bin/sh /tmp/setup.sh; \ + /bin/rm -f /tmp/*.sh; \ + rm -vrf /var/cache/apk/*; \ + chmod +rx /usr/local/bin/entrypoint ; \ + sed -i "s|#version#|${PHP_VERSION}|" /app/htdocs/index.html ; \ + sed -i "s|#os#|alpine|" /app/htdocs/index.html ; \ + mkdir -p ${SERVER_ROOT}/logs ${SERVER_ROOT}/run /run/apache2 ; \ + ln -s /usr/lib/apache2 ${SERVER_ROOT}/modules ; \ + chmod -R 755 ${SERVER_ROOT}/logs ${SERVER_ROOT/run} ; \ + chown -R apache:apache ${SERVER_ROOT}/htdocs ${SERVER_ROOT}/logs ${SERVER_ROOT}/run /run/apache2 ; \ + rm -vrf /var/cache/apk/* + +FROM scratch + +ARG PHP_VERSION=8.3 +ARG PHP_VER_SHORT=83 + +ENV PHP_VERSION=${PHP_VERSION} +ENV PHP_VER_SHORT=${PHP_VER_SHORT} + +LABEL maintainer="Muhamad Aditya Prima " +LABEL name="php" +LABEL version="${PHP_VERSION}" +LABEL distribution-scope="public" + +#labels for container catalog +LABEL summary="PHP ${PHP_VERSION} on alpine based container image" +LABEL description="Provide php on alpine based container base image" +LABEL io.k8s.description="Very small alpine linux container image" +LABEL io.k8s.display-name="PHP ${PHP_VERSION}" + +COPY --from=builder / / + +USER apache + +WORKDIR /app/htdocs + +STOPSIGNAL SIGQUIT + +CMD ["/usr/local/bin/entrypoint"]