Add comprehensive Podman configuration for local development: - docker-compose.yml: Main compose file with all services (PostgreSQL, RabbitMQ, API, Frontend) - docker-compose.dev.yml: Development-specific overrides with hot-reload - Dockerfile.api: Backend API service Dockerfile - Dockerfile.frontend: Frontend Next.js service Dockerfile - Updated Dockerfile: Podman-compatible production build with better layer caching - .env.example: Environment variable template - .dockerignore: Exclude unnecessary files from builds - Makefile: Convenient commands for common Podman operations - scripts/db/: Database initialization scripts directory - Updated README.md: Comprehensive Podman setup and usage documentation Features: - Rootless Podman support with SELinux compatibility - Development mode with volume mounts for hot-reload - Health checks for service dependencies - Proper build stage optimization - All services networked together
36 lines
963 B
Docker
36 lines
963 B
Docker
# Frontend Dockerfile for Podman
|
|
FROM docker.io/library/node:22-slim
|
|
|
|
# Install required dependencies
|
|
RUN apt-get update && \
|
|
apt-get dist-upgrade -y && \
|
|
apt-get install -y ca-certificates build-essential && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Enable corepack and prepare pnpm
|
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Copy package files
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
|
COPY turbo.json ./
|
|
|
|
# Copy app and package directories
|
|
COPY apps/lightsaver_user_client/package.json ./apps/lightsaver_user_client/
|
|
COPY packages ./packages
|
|
|
|
# Install dependencies
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
# Copy app source code
|
|
COPY apps/lightsaver_user_client ./apps/lightsaver_user_client
|
|
|
|
# Expose Next.js port
|
|
EXPOSE 3000
|
|
|
|
# Default command (can be overridden in docker-compose)
|
|
CMD ["pnpm", "--filter", "lightsaver_user_client", "dev", "--", "--turbopack"]
|