laravel-base/Dockerfile

55 lines
2.1 KiB
Docker

FROM composer:1.8 as composer
FROM php:7.3-fpm-alpine3.9 as alpine
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
RUN apk add --no-cache --virtual .node-build-deps \
g++ \
make \
python \
&& 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/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"
FROM php:7.3-fpm-stretch as stretch
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 \
zlib1g-dev \
&& echo 'deb https://deb.nodesource.com/node_10.x stretch main' > /etc/apt/sources.list.d/nodesource.list \
&& echo 'deb-src https://deb.nodesource.com/node_10.x stretch main' >> /etc/apt/sources.list.d/nodesource.list \
&& echo 'deb https://dl.yarnpkg.com/debian/ stable main' > /etc/apt/sources.list.d/yarn.list \
&& curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \
&& curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& apt update \
&& apt install --no-install-recommends -y \
libicu-dev \
nodejs \
npm \
yarn \
&& ln -s $(which nodejs) /usr/local/bin/node \
&& 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"