(READ ONLY) Margin is an open annotation layer for the internet. Powered by the AT Protocol.
Something went wrong. Try again.
margin Dockerfile
679 B · 34 lines
Dockerfile
at ui-refactor
1234567891011121314151617181920212223242526272829303132333435FROM node:20-alpine AS frontend-builder
WORKDIR /app/webCOPY web/package*.json ./RUN npm ciCOPY web/ ./RUN npm run build
FROM golang:1.24-alpine AS backend-builder
RUN apk add --no-cache gcc musl-dev
WORKDIR /appCOPY backend/go.mod backend/go.sum ./RUN go mod download
COPY backend/ ./RUN CGO_ENABLED=1 GOOS=linux go build -a -ldflags '-linkmode external -extldflags "-static"' -o margin-server ./cmd/server
FROM alpine:3.19
RUN apk add --no-cache ca-certificates tzdata
WORKDIR /app
COPY --from=backend-builder /app/margin-server .COPY --from=frontend-builder /app/web/dist ./dist
ENV PORT=8080ENV DATABASE_URL=margin.db
EXPOSE 8080
CMD ["./margin-server"]