keylighter/Dockerfile
2024-01-10 22:23:55 +01:00

60 lines
1.7 KiB
Docker

# syntax=docker/dockerfile:1
FROM node:12 as assets
WORKDIR /appsource
# First copy only dependencies related info for better caching
COPY package.json yarn.lock ./
COPY assets/fontawesome/fontawesome-pro-5.15.4-web assets/fontawesome/fontawesome-pro-5.15.4-web
RUN yarn
COPY . .
RUN yarn run build
FROM php:7.4-fpm-alpine
# Timezone
RUN ln -snf /usr/share/zoneinfo/Europe/Warsaw /etc/localtime
RUN echo "date.timezone = Europe/Warsaw" >> /usr/local/etc/php/conf.d/datetime.ini;
COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/
COPY --from=composer:1 /usr/bin/composer /usr/local/bin/
# Box
RUN wget https://github.com/humbug/box/releases/download/3.8.4/box.phar \
&& mv box.phar /usr/local/bin/box \
&& chmod +x /usr/local/bin/box
RUN install-php-extensions sockets redis zip curl;
ARG BUILD_MODE=prod
RUN set -eux; \
if [ "$BUILD_MODE" = "dev" ]; then \
install-php-extensions xdebug; \
{ \
echo "xdebug.discover_client_host=1"; \
echo "xdebug.mode=debug"; \
} > "$PHP_INI_DIR"/conf.d/90-xdebug.ini; \
elif [ "$BUILD_MODE" = "prod" ]; then \
install-php-extensions opcache; \
{ \
echo "opcache.enable_cli=1"; \
echo "opcache.max_accelerated_files=40000"; \
} > "$PHP_INI_DIR"/conf.d/90-opcache.ini; \
fi
WORKDIR /var/www
COPY composer.* ./
RUN composer install --no-dev --no-scripts --no-autoloader --prefer-dist --no-progress --no-interaction && \
composer check-platform-reqs
COPY . .
RUN composer dump-autoload --optimize && \
composer run-script post-install-cmd
COPY --link --from=assets /appsource/public/build ./public/build