75 lines
2.1 KiB
Docker
75 lines
2.1 KiB
Docker
ARG PHP_VERSION
|
|
ARG PHP_INTERFACE
|
|
ARG ARCHITECTURE_VERSION
|
|
|
|
FROM composer:2 as composer
|
|
|
|
FROM php:${PHP_VERSION}-${PHP_INTERFACE}-alpine${ARCHITECTURE_VERSION} as alpine
|
|
ENV COMPOSER_ALLOW_SUPERUSER 1
|
|
COPY --from=composer /usr/bin/composer /usr/bin/composer
|
|
WORKDIR /app
|
|
RUN apk add --no-cache \
|
|
bash \
|
|
icu \
|
|
icu-dev \
|
|
libxml2-dev \
|
|
libzip-dev \
|
|
nodejs-current \
|
|
nodejs-npm \
|
|
unzip
|
|
RUN apk add --no-cache --virtual .node-build-deps \
|
|
g++ \
|
|
make \
|
|
&& docker-php-ext-configure intl \
|
|
&& docker-php-ext-install -j$(nproc) \
|
|
intl \
|
|
opcache \
|
|
pdo_mysql \
|
|
zip \
|
|
&& apk del .node-build-deps
|
|
RUN npm install -g yarn
|
|
ENV PATH="/app:/app/node_modules/.bin:/app/vendor/bin:${PATH}"
|
|
COPY conf.d/opcache.ini /usr/local/etc/php/conf.d/opcache.ini
|
|
# sane defaults for opcache
|
|
ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS="0"
|
|
ENV PHP_OPCACHE_MAX_ACCELERATED_FILES="10000"
|
|
ENV PHP_OPCACHE_MEMORY_CONSUMPTION="192"
|
|
EXPOSE 80
|
|
EXPOSE 8000
|
|
|
|
|
|
FROM php:${PHP_VERSION}-${PHP_INTERFACE}-${ARCHITECTURE_VERSION} as debian
|
|
ENV COMPOSER_ALLOW_SUPERUSER 1
|
|
COPY --from=composer /usr/bin/composer /usr/bin/composer
|
|
WORKDIR /app
|
|
RUN apt update \
|
|
&& apt install --no-install-recommends -y \
|
|
apt-transport-https \
|
|
curl \
|
|
gnupg \
|
|
libzip-dev \
|
|
software-properties-common \
|
|
unzip \
|
|
zlib1g-dev \
|
|
&& curl -sL https://deb.nodesource.com/setup_18.x | bash - \
|
|
&& apt update \
|
|
&& apt install --no-install-recommends -y \
|
|
libicu-dev \
|
|
nodejs \
|
|
&& ln -s $(which nodejs) /usr/local/bin/node \
|
|
&& corepack enable \
|
|
&& docker-php-ext-configure intl \
|
|
&& docker-php-ext-install -j$(nproc) \
|
|
intl \
|
|
opcache \
|
|
pdo_mysql \
|
|
zip \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
ENV PATH="/app:/app/node_modules/.bin:/app/vendor/bin:${PATH}"
|
|
COPY conf.d/opcache.ini /usr/local/etc/php/conf.d/opcache.ini
|
|
# sane defaults for opcache
|
|
ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS="0"
|
|
ENV PHP_OPCACHE_MAX_ACCELERATED_FILES="10000"
|
|
ENV PHP_OPCACHE_MEMORY_CONSUMPTION="192"
|
|
EXPOSE 80
|
|
EXPOSE 8000
|