summaryrefslogtreecommitdiffci
path: root/Dockerfile
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile32
1 files changed, 32 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..d0b6621
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,32 @@
+FROM golang:1.26.4-alpine3.24 AS build-stage
+
+ARG TARGETOS=linux
+ARG TARGETARCH=amd64
+ENV GOOS=${TARGETOS}
+ENV GOARCH=${TARGETARCH}
+
+RUN apk add --no-cache sqlite-dev musl-dev gcc
+
+WORKDIR /builddir
+COPY . .
+RUN go mod download
+RUN CGO_ENABLED=1 go build -o sayana-web .
+
+FROM alpine:3.24 AS runtime-stage
+
+ENV ENVIRONMENT=""
+ENV AUTH_SALT=""
+ENV B2_KEY_ID=""
+ENV B2_APPLICATION_KEY=""
+
+WORKDIR /app
+COPY --from=build-stage /builddir/sayana-web /app/sayana-web
+COPY --from=build-stage /builddir/migrations /app/migrations
+COPY --from=build-stage /builddir/static /app/static
+COPY --from=build-stage /builddir/views /app/views
+COPY --from=build-stage /builddir/l10n/*.yaml /app/l10n/
+COPY --from=build-stage /builddir/config/config.*.yaml /app/config/
+
+RUN apk add --no-cache tzdata sqlite
+
+ENTRYPOINT /app/sayana-web -c /app/config/config.${ENVIRONMENT}.yaml