First real commit. Setting up for full CI/CD and testing pipeline
This commit is contained in:
46
Dockerfile
Normal file
46
Dockerfile
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
# Stage 1: Frontend build
|
||||
FROM node:22-bookworm-slim AS frontend-builder
|
||||
|
||||
WORKDIR /frontend
|
||||
|
||||
COPY frontend/package.json ./
|
||||
|
||||
RUN npm install
|
||||
|
||||
COPY frontend/ ./
|
||||
|
||||
RUN npm run build
|
||||
|
||||
|
||||
# Stage 2: Go build and test
|
||||
FROM golang:1.24-bookworm AS go-builder
|
||||
|
||||
ENV CGO_ENABLED=1
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
pkg-config \
|
||||
libgtk-3-dev \
|
||||
libwebkit2gtk-4.1-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
|
||||
COPY . .
|
||||
|
||||
COPY --from=frontend-builder /frontend/dist ./frontend/dist
|
||||
|
||||
RUN go test -v ./...
|
||||
|
||||
RUN go build -o /out/fast_reader .
|
||||
|
||||
|
||||
# Stage 3: Export build artifact
|
||||
FROM scratch AS artifact
|
||||
|
||||
COPY --from=go-builder /out/fast_reader /fast_reader
|
||||
|
||||
Reference in New Issue
Block a user