mirror of
https://github.com/hanzoai/base.git
synced 2026-10-21 03:41:50 +00:00
Docker / test (push) Waiting to run
Docker / docker (push) Blocked by required conditions
36 lines
1.3 KiB
Docker
36 lines
1.3 KiB
Docker
# syntax=docker/dockerfile:1
|
|
FROM node:20-alpine AS ui-builder
|
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
WORKDIR /ui
|
|
COPY ui/package.json ui/pnpm-lock.yaml ./
|
|
RUN pnpm install --frozen-lockfile
|
|
COPY ui/ .
|
|
RUN pnpm build
|
|
|
|
FROM golang:1.26-alpine AS builder
|
|
RUN apk add --no-cache git ca-certificates tzdata
|
|
WORKDIR /build
|
|
COPY go.mod go.sum ./
|
|
RUN --mount=type=cache,target=/go/pkg/mod go mod download
|
|
COPY . .
|
|
COPY --from=ui-builder /ui/dist ./ui/dist
|
|
RUN --mount=type=cache,target=/go/pkg/mod \
|
|
--mount=type=cache,target=/root/.cache/go-build \
|
|
CGO_ENABLED=0 go build \
|
|
-ldflags="-s -w -X github.com/hanzoai/base.Version=$(git describe --tags --always 2>/dev/null || echo 'dev')" \
|
|
-o /build/base \
|
|
./examples/base/main.go
|
|
|
|
FROM alpine:3.21
|
|
RUN apk add --no-cache ca-certificates tzdata curl \
|
|
&& addgroup -S hanzo && adduser -S hanzo -G hanzo
|
|
WORKDIR /app
|
|
COPY --from=builder /build/base /app/base
|
|
RUN mkdir -p /data /migrations /hooks /app/public && chown -R hanzo:hanzo /app /data /migrations /hooks
|
|
USER hanzo
|
|
EXPOSE 8090
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
|
CMD curl -f http://localhost:8090/healthz || exit 1
|
|
ENTRYPOINT ["/app/base"]
|
|
CMD ["serve", "--http=0.0.0.0:8090", "--dir=/data", "--migrationsDir=/migrations", "--hooksDir=/hooks"]
|