59 lines
1.2 KiB
Docker
59 lines
1.2 KiB
Docker
FROM composer:2 AS vendor
|
|
|
|
WORKDIR /app
|
|
|
|
COPY composer.json composer.lock ./
|
|
|
|
RUN composer install \
|
|
--no-dev \
|
|
--no-interaction \
|
|
--no-progress \
|
|
--prefer-dist \
|
|
--optimize-autoloader
|
|
|
|
FROM node:22-alpine AS assets
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package.json package-lock.json vite.config.js ./
|
|
COPY resources ./resources
|
|
COPY public ./public
|
|
|
|
RUN npm ci && npm run build
|
|
|
|
FROM php:8.3-cli-bookworm
|
|
|
|
WORKDIR /var/www/html
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
curl \
|
|
default-mysql-client \
|
|
git \
|
|
libicu-dev \
|
|
libzip-dev \
|
|
unzip \
|
|
&& docker-php-ext-install \
|
|
intl \
|
|
pdo_mysql \
|
|
zip \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
|
|
COPY docker/app/php.ini /usr/local/etc/php/conf.d/99-webgis.ini
|
|
COPY docker/app/entrypoint.sh /usr/local/bin/webgis-entrypoint
|
|
|
|
COPY . .
|
|
COPY --from=vendor /app/vendor ./vendor
|
|
COPY --from=assets /app/public/build ./public/build
|
|
|
|
RUN chmod +x /usr/local/bin/webgis-entrypoint
|
|
|
|
EXPOSE 8000
|
|
|
|
ENTRYPOINT ["webgis-entrypoint"]
|
|
CMD ["php", "artisan", "serve", "--host=0.0.0.0", "--port=8000"]
|