Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions .github/workflows/build-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Build docker image
on:
workflow_dispatch:
inputs:
IMAGE_NAME:
type: string
required: true
default: 'php-fpm-7.4-alpine'
permissions:
contents: read
packages: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
- name: Checkout source
uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker images
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: .
file: image/Dockerfile-${{ github.event.inputs.IMAGE_NAME }}
push: true
tags: ghcr.io/${{ github.repository }}:${{ github.event.inputs.IMAGE_NAME }}
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
duild:
cd image && IMAGE_NAME=php-fpm-7.1-alpine ../hooks/build
cd image && IMAGE_NAME=php-fpm-7.4-alpine ../hooks/build

.PHONY: test
test: test-static-analysis test-environment
Expand Down
112 changes: 112 additions & 0 deletions image/Dockerfile-php-fpm-7.4-alpine
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
FROM php:7.4-fpm-alpine as builder

RUN set -ex \

# Update
&& apk add --update \

# Install build dependencies
&& apk add --no-cache --virtual .build-tools \
autoconf \
make \
gcc \
g++ \

# Install dev dependencies
&& apk add --no-cache --virtual .build-deps \
zstd-dev \
zlib-dev \
libevent-dev \
libmemcached-dev \

&& pecl install igbinary \
&& pecl install \
--configureoptions '\
with-libmemcached-dir="/usr" \
with-zlib-dir="/usr" \
with-system-fastlz="no" \
enable-memcached-igbinary="yes" \
enable-memcached-msgpack="no" \
enable-memcached-json="yes" \
enable-memcached-protocol="no" \
enable-memcached-sasl="yes" \
enable-memcached-session="yes"\
'\
memcached \

&& pecl install \
--configureoptions '\
enable-redis-igbinary="yes" \
enable-redis-lzf="yes" \
enable-redis-zstd="yes"\
'\
redis

FROM php:7.4-fpm-alpine

COPY --from=builder /usr/local/lib/php/extensions/no-debug-non-zts-20190902/* /usr/local/lib/php/extensions/no-debug-non-zts-20190902
RUN set -ex \

# Update
&& apk add --update \

# Install dependencies
&& apk add --no-cache --virtual .deps \
zlib \
libzip \
libpng \
libjpeg-turbo \
libwebp \
freetype \
libxslt \
libmemcached \

# Install dev dependencies
&& apk add --no-cache --virtual .build-deps \
zlib-dev \
libzip-dev \
libpng-dev \
libjpeg-turbo-dev \
libwebp-dev \
freetype-dev \
libxslt-dev \

# Configure
&& docker-php-ext-configure gd \
--with-freetype \
--with-jpeg \
--with-webp \

# Build and install
&& docker-php-ext-install -j$(nproc) \
gd \
zip \
xsl \
mysqli \
pdo_mysql \

# Enable pecl-built extensions
&& docker-php-ext-enable \
igbinary \
memcached \
redis \

# Clean
&& rm -rf /tmp/* \
&& apk del --purge .build-deps

CMD ["php-fpm"]

EXPOSE 9000

ARG BUILD_DATE
ARG VCS_REF

LABEL org.label-schema.build-date=$BUILD_DATE \
org.label-schema.vcs-url="https://github.com/Dockerware/docker-umi.cms.git" \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.schema-version="1.0" \
org.label-schema.vendor="DockerWare" \
org.label-schema.name="docker-umi.cms" \
org.label-schema.description="Docker Community Image packaging for UMI.CMS" \
org.label-schema.url="https://github.com/Dockerware/docker-umi.cms"