27 lines
524 B
Docker
27 lines
524 B
Docker
|
|
FROM golang:1.24-alpine
|
||
|
|
|
||
|
|
WORKDIR /app
|
||
|
|
|
||
|
|
# Copy go.mod and go.sum first
|
||
|
|
COPY go/go.mod go/go.sum ./
|
||
|
|
|
||
|
|
# Download dependencies
|
||
|
|
RUN go mod download
|
||
|
|
|
||
|
|
# Install Air for hot reload (pinned to v1.52.3 for Go 1.24 compatibility)
|
||
|
|
RUN go install github.com/air-verse/air@v1.52.3
|
||
|
|
# Install sqlc for SQL code generation
|
||
|
|
RUN go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
|
||
|
|
|
||
|
|
# Copy source code
|
||
|
|
COPY go/ .
|
||
|
|
|
||
|
|
# Generate sqlc code
|
||
|
|
RUN sqlc generate
|
||
|
|
|
||
|
|
# Copy Air config
|
||
|
|
COPY go/.air.toml .air.toml
|
||
|
|
|
||
|
|
EXPOSE 8080
|
||
|
|
|
||
|
|
CMD ["air", "-c", ".air.toml"]
|