laravel-base/Dockerfile
Jaysen Nuttall 12b7aa8f2e Update depencies
- Update PHP to 8
- Update composer to 2.0
- Update Node (debian) to 14
2021-01-12 19:33:12 -07:00

75 lines
2.1 KiB
Docker

ARG PHP_VERSION
ARG PHP_INTERFACE
ARG ARCHITECTURE_VERSION
FROM composer:2.0 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_14.x | bash - \
&& apt update \
&& apt install --no-install-recommends -y \
libicu-dev \
nodejs \
&& ln -s $(which nodejs) /usr/local/bin/node \
&& npm -g install yarn \
&& 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