chore(docker): dockerize app, add workflow to push image on gitea registry
This commit is contained in:
54
docker/app/Dockerfile
Normal file
54
docker/app/Dockerfile
Normal file
@@ -0,0 +1,54 @@
|
||||
FROM dunglas/frankenphp:php8.4-alpine AS base
|
||||
|
||||
RUN install-php-extensions \
|
||||
intl \
|
||||
opcache \
|
||||
pdo_pgsql \
|
||||
zip
|
||||
|
||||
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
###
|
||||
# Dev stage
|
||||
###
|
||||
FROM base AS dev
|
||||
|
||||
COPY composer.json composer.lock symfony.lock ./
|
||||
RUN composer install --no-scripts --no-autoloader --prefer-dist
|
||||
|
||||
COPY . .
|
||||
RUN composer dump-autoload
|
||||
|
||||
ENV APP_ENV=dev \
|
||||
SERVER_NAME=":80" \
|
||||
POSTGRES_HOST=database \
|
||||
POSTGRES_PORT=5432 \
|
||||
POSTGRES_VERSION=16 \
|
||||
POSTGRES_DB=app \
|
||||
POSTGRES_USER=app \
|
||||
POSTGRES_PASSWORD=pwd
|
||||
|
||||
###
|
||||
# Prod stage
|
||||
###
|
||||
FROM base AS prod
|
||||
|
||||
COPY composer.json composer.lock symfony.lock ./
|
||||
RUN composer install --no-dev --no-scripts --no-autoloader --prefer-dist
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN APP_ENV=prod composer dump-autoload --classmap-authoritative \
|
||||
&& APP_ENV=prod composer run-script post-install-cmd \
|
||||
&& chown -R www-data:www-data var/
|
||||
|
||||
ENV APP_ENV=prod \
|
||||
SERVER_NAME=localhost \
|
||||
POSTGRES_HOST=database \
|
||||
POSTGRES_PORT=5432 \
|
||||
POSTGRES_VERSION=16 \
|
||||
POSTGRES_DB=app \
|
||||
POSTGRES_USER=app \
|
||||
POSTGRES_PASSWORD=pwd
|
||||
8
docker/database/Dockerfile
Normal file
8
docker/database/Dockerfile
Normal file
@@ -0,0 +1,8 @@
|
||||
FROM postgres:16-alpine
|
||||
|
||||
ENV POSTGRES_DB=app \
|
||||
POSTGRES_USER=app \
|
||||
POSTGRES_PASSWORD=pwd
|
||||
|
||||
# Add custom initialization scripts if needed:
|
||||
# COPY initdb/ /docker-entrypoint-initdb.d/
|
||||
Reference in New Issue
Block a user