Something went wrong. Try again.
(READ ONLY) Margin is an open annotation layer for the internet. Powered by the AT Protocol.
margin.at
extension web atproto comments
Something went wrong. Try again.
margin Dockerfile
679 B · 34 lines
Dockerfile
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"]