2025-02-23 18:50:12 +00:00
|
|
|
# Web client
|
|
|
|
FROM node:20-alpine AS node_build
|
|
|
|
WORKDIR /src
|
|
|
|
COPY . .
|
|
|
|
WORKDIR /src/pkg/web
|
|
|
|
RUN npm ci && npm run build
|
2021-05-09 22:07:23 +07:00
|
|
|
|
2025-02-23 18:50:12 +00:00
|
|
|
# Go application
|
|
|
|
FROM golang:1.23-alpine AS build
|
2021-05-09 22:07:23 +07:00
|
|
|
WORKDIR /go/src/shioriko
|
|
|
|
COPY . .
|
2025-02-23 18:50:12 +00:00
|
|
|
COPY --from=node_build /src/pkg/web/build/ /go/src/shioriko/pkg/web/build/
|
2021-05-09 22:07:23 +07:00
|
|
|
RUN go get -d -v ./...
|
2025-02-05 18:26:47 +00:00
|
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /shioriko -ldflags '-extldflags "-static"' -tags timetzdata
|
2021-05-10 22:47:35 +07:00
|
|
|
|
2025-02-05 18:26:47 +00:00
|
|
|
FROM scratch AS runtime
|
2021-05-10 22:47:35 +07:00
|
|
|
WORKDIR /app
|
2021-05-11 17:33:22 +07:00
|
|
|
COPY --from=build /shioriko /app/
|
2025-02-05 18:26:47 +00:00
|
|
|
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
2021-05-10 22:47:35 +07:00
|
|
|
ENTRYPOINT ["/app/shioriko"]
|