Skip to content

Build php docker image #13

Build php docker image

Build php docker image #13

Workflow file for this run

name: 'Build php docker image'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
schedule:
- cron: 0 7 * * THU
push:
branches:
- main
paths:
- php/**
pull_request:
branches:
- main
paths:
- php/**
workflow_dispatch:
inputs: {}
jobs:
build-docker-image:
name: 'Build php-${{ matrix.image.version }} docker image'
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 10
matrix:
image:
- version: 7.2
build-args: |
PHP_VERSION=7.2
UBUNTU_VERSION=18.04
XDEBUG_VERSION=3.1.6
- version: 7.4
build-args: |
PHP_VERSION=7.4
UBUNTU_VERSION=20.04
XDEBUG_VERSION=3.1.6
- version: 8.1
build-args: |
PHP_VERSION=8.1
UBUNTU_VERSION=22.04
XDEBUG_VERSION=3.3.2
- version: 8.2
file: 8.2.Dockerfile
build-args: |
PHP_VERSION=8.2
UBUNTU_VERSION=24.04
XDEBUG_VERSION=3.3.2
- version: 8.3
build-args: |
PHP_VERSION=8.3
UBUNTU_VERSION=24.04
XDEBUG_VERSION=3.3.2
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GHCR
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push (php-fpm)
uses: docker/build-push-action@v6
with:
builder: ${{ steps.buildx.outputs.name }}
context: ./php
target: php-fpm
file: ./php/${{ matrix.image.file || 'Dockerfile' }}
build-args: ${{ matrix.image.build-args }}
push: ${{ github.event_name != 'pull_request' }}
tags: ghcr.io/netlogix/docker/php-fpm:${{ matrix.image.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha, scope=${{ github.workflow }}-php
cache-to: type=gha, scope=${{ github.workflow }}-php, mode=max
- name: Build and push (php-cli)
uses: docker/build-push-action@v6
with:
builder: ${{ steps.buildx.outputs.name }}
context: ./php
target: php-cli
file: ./php/${{ matrix.image.file || 'Dockerfile' }}
build-args: ${{ matrix.image.build-args }}
push: ${{ github.event_name != 'pull_request' }}
tags: ghcr.io/netlogix/docker/php-cli:${{ matrix.image.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha, scope=${{ github.workflow }}-php
cache-to: type=gha, scope=${{ github.workflow }}-php, mode=max
- name: Build and push (php-cron)
uses: docker/build-push-action@v6
with:
builder: ${{ steps.buildx.outputs.name }}
context: ./php
target: php-cron
file: ./php/${{ matrix.image.file || 'Dockerfile' }}
build-args: ${{ matrix.image.build-args }}
push: ${{ github.event_name != 'pull_request' }}
tags: ghcr.io/netlogix/docker/php-cron:${{ matrix.image.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha, scope=${{ github.workflow }}-php
cache-to: type=gha, scope=${{ github.workflow }}-php, mode=max
- name: Build and push (php-supervisor)
uses: docker/build-push-action@v6
with:
builder: ${{ steps.buildx.outputs.name }}
context: ./php
target: php-supervisor
file: ./php/${{ matrix.image.file || 'Dockerfile' }}
build-args: ${{ matrix.image.build-args }}
push: ${{ github.event_name != 'pull_request' }}
tags: ghcr.io/netlogix/docker/php-supervisor:${{ matrix.image.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha, scope=${{ github.workflow }}-php
cache-to: type=gha, scope=${{ github.workflow }}-php, mode=max
build-docker-dev-image:
name: 'Build php-${{ matrix.image.version }}-dev docker image'
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 10
matrix:
image:
- version: 7.2
build-args: |
PHP_VERSION=7.2
UBUNTU_VERSION=18.04
XDEBUG_VERSION=3.1.6
- version: 7.4
build-args: |
PHP_VERSION=7.4
UBUNTU_VERSION=20.04
XDEBUG_VERSION=3.1.6
- version: 8.1
build-args: |
PHP_VERSION=8.1
UBUNTU_VERSION=22.04
XDEBUG_VERSION=3.3.2
- version: 8.2
file: 8.2.Dockerfile
build-args: |
PHP_VERSION=8.2
UBUNTU_VERSION=24.04
XDEBUG_VERSION=3.3.2
- version: 8.3
build-args: |
PHP_VERSION=8.3
UBUNTU_VERSION=24.04
XDEBUG_VERSION=3.3.2
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GHCR
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push (php-fpm-dev)
uses: docker/build-push-action@v6
with:
builder: ${{ steps.buildx.outputs.name }}
context: ./php
target: php-fpm-dev
file: ./php/${{ matrix.image.file || 'Dockerfile' }}
build-args: ${{ matrix.image.build-args }}
push: ${{ github.event_name != 'pull_request' }}
tags: ghcr.io/netlogix/docker/php-fpm-dev:${{ matrix.image.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha, scope=${{ github.workflow }}-php
cache-to: type=gha, scope=${{ github.workflow }}-php, mode=max
- name: Build and push (php-cli-dev)
uses: docker/build-push-action@v6
with:
builder: ${{ steps.buildx.outputs.name }}
context: ./php
target: php-cli-dev
file: ./php/${{ matrix.image.file || 'Dockerfile' }}
build-args: ${{ matrix.image.build-args }}
push: ${{ github.event_name != 'pull_request' }}
tags: ghcr.io/netlogix/docker/php-cli-dev:${{ matrix.image.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha, scope=${{ github.workflow }}-php
cache-to: type=gha, scope=${{ github.workflow }}-php, mode=max
- name: Build and push (php-cron-dev)
uses: docker/build-push-action@v6
with:
builder: ${{ steps.buildx.outputs.name }}
context: ./php
target: php-cron-dev
file: ./php/${{ matrix.image.file || 'Dockerfile' }}
build-args: ${{ matrix.image.build-args }}
push: ${{ github.event_name != 'pull_request' }}
tags: ghcr.io/netlogix/docker/php-cron-dev:${{ matrix.image.version }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha, scope=${{ github.workflow }}-php
cache-to: type=gha, scope=${{ github.workflow }}-php, mode=max