40 - Add base image for faster CI build
All checks were successful
Build and Push Docker Image / build (push) Successful in 5m10s
All checks were successful
Build and Push Docker Image / build (push) Successful in 5m10s
This commit is contained in:
parent
005abb1877
commit
86b1fe7263
3 changed files with 56 additions and 23 deletions
25
Dockerfile
25
Dockerfile
|
|
@ -1,26 +1,5 @@
|
||||||
# Production Dockerfile with FrankenPHP
|
# Production Dockerfile - uses pre-built base image
|
||||||
FROM dunglas/frankenphp:latest-php8.3-alpine
|
FROM forge.lvl0.xyz/lvl0/fedi-feed-router-base:latest
|
||||||
|
|
||||||
# Install system dependencies
|
|
||||||
RUN apk add --no-cache \
|
|
||||||
nodejs \
|
|
||||||
npm \
|
|
||||||
git \
|
|
||||||
mysql-client
|
|
||||||
|
|
||||||
# Install PHP extensions
|
|
||||||
RUN install-php-extensions \
|
|
||||||
pdo_mysql \
|
|
||||||
opcache \
|
|
||||||
zip \
|
|
||||||
gd \
|
|
||||||
intl \
|
|
||||||
bcmath \
|
|
||||||
redis \
|
|
||||||
pcntl
|
|
||||||
|
|
||||||
# Install Composer
|
|
||||||
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
||||||
|
|
||||||
# Set working directory
|
# Set working directory
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
|
||||||
24
docker/build/Dockerfile.base
Normal file
24
docker/build/Dockerfile.base
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# Base image with FrankenPHP, PHP extensions, Node, and Composer
|
||||||
|
FROM dunglas/frankenphp:latest-php8.3-alpine
|
||||||
|
|
||||||
|
# Install system dependencies
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
nodejs \
|
||||||
|
npm \
|
||||||
|
git \
|
||||||
|
mysql-client \
|
||||||
|
curl
|
||||||
|
|
||||||
|
# Install PHP extensions
|
||||||
|
RUN install-php-extensions \
|
||||||
|
pdo_mysql \
|
||||||
|
opcache \
|
||||||
|
zip \
|
||||||
|
gd \
|
||||||
|
intl \
|
||||||
|
bcmath \
|
||||||
|
redis \
|
||||||
|
pcntl
|
||||||
|
|
||||||
|
# Install Composer
|
||||||
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
||||||
30
shell.nix
30
shell.nix
|
|
@ -81,6 +81,35 @@ pkgs.mkShell {
|
||||||
podman-compose -f $COMPOSE_FILE exec app php artisan "$@"
|
podman-compose -f $COMPOSE_FILE exec app php artisan "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ===================
|
||||||
|
# BUILD COMMANDS
|
||||||
|
# ===================
|
||||||
|
base-build() {
|
||||||
|
local image="forge.lvl0.xyz/lvl0/fedi-feed-router-base:latest"
|
||||||
|
|
||||||
|
# Check if logged in, prompt if not
|
||||||
|
if ! podman login --get-login forge.lvl0.xyz &>/dev/null; then
|
||||||
|
echo "Not logged in to forge.lvl0.xyz"
|
||||||
|
podman login forge.lvl0.xyz || return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Building base image: $image"
|
||||||
|
if ! podman build -t "$image" -f docker/build/Dockerfile.base .; then
|
||||||
|
echo "Build failed!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Pushing to registry..."
|
||||||
|
if ! podman push "$image"; then
|
||||||
|
echo "Push failed!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Done! Base image pushed: $image"
|
||||||
|
}
|
||||||
|
|
||||||
# ===================
|
# ===================
|
||||||
# WELCOME MESSAGE
|
# WELCOME MESSAGE
|
||||||
# ===================
|
# ===================
|
||||||
|
|
@ -99,6 +128,7 @@ pkgs.mkShell {
|
||||||
echo " dev-logs-db Tail database logs"
|
echo " dev-logs-db Tail database logs"
|
||||||
echo " dev-shell Shell into app container"
|
echo " dev-shell Shell into app container"
|
||||||
echo " dev-artisan <cmd> Run artisan command"
|
echo " dev-artisan <cmd> Run artisan command"
|
||||||
|
echo " base-build Build and push base image"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Services:"
|
echo "Services:"
|
||||||
echo " app Laravel + Vite http://localhost:8000"
|
echo " app Laravel + Vite http://localhost:8000"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue