33 lines
722 B
Plaintext
33 lines
722 B
Plaintext
# backend/Dockerfile.dev
|
|
# Development Dockerfile with hot reload support
|
|
|
|
# Stage 1: Base image with Go tools
|
|
FROM golang:1.21-alpine AS base
|
|
|
|
# Install developement tools
|
|
# - git: Required for go get
|
|
# - gcc, musl-dev: Required for CGO (some packages need C compiler)
|
|
# - air: Hot reload tool for GO
|
|
RUN apk add --no-cache \
|
|
git \
|
|
gcc \
|
|
musl-dev && \
|
|
go install github.com/air-verse/air@latest
|
|
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Stage 2: Development environment
|
|
FROM base as development
|
|
|
|
# Copy dependency files first (for layer caching)
|
|
COPY go.mod go.sum./
|
|
|
|
# Download dependencies
|
|
# This layer is cached unless go.mod or go.sum changes
|
|
RUN go mod download
|
|
|
|
# Copy Air configuration
|
|
|
|
COPY .air.t |