Ctrl K
ComunidadGuías…

Dockerfile.selfhost

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
FROM --platform=$BUILDPLATFORM node:26.12.1-alpine@sha256:40cd011b55415bc894e45b02fdd5a5dfde056921b7d23a64c74f80497af48797 AS console
WORKDIR /src
COPY web/console/package.json web/console/package-lock.json ./
RUN npm ci --ignore-scripts --allow-git=none
COPY web/console .
RUN npm run build

FROM --platform=$BUILDPLATFORM golang:1.27.3-alpine@sha256:d530cf60723abf1ffae0cd16bb546b379ec0550d2f3815e5b16ed69dbc00fba4 AS build
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY cmd ./cmd
COPY internal ./internal
COPY --from=console /src/dist ./internal/selfhost/console/dist
ARG TARGETOS
ARG TARGETARCH
ARG SESAME_VERSION=0.1.0-dev
ARG SESAME_COMMIT=unknown
ARG SESAME_UPDATE_PUBLIC_KEYS=
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -trimpath -ldflags="-s -w -X usesesame.app/backend/internal/buildinfo.Version=${SESAME_VERSION} -X usesesame.app/backend/internal/buildinfo.Commit=${SESAME_COMMIT} -X usesesame.app/backend/internal/buildinfo.UpdatePublicKeys=${SESAME_UPDATE_PUBLIC_KEYS}" -o /out/sesame-server ./cmd/sesame-server && \
    mkdir -m 0700 /out/data

FROM gcr.io/distroless/static-debian12:nonroot@sha256:afa5c872c891853ca7fcf1f12c3edb23f7eeef36189728842dd51042ff57f7ab
ARG SESAME_VERSION=0.1.0-dev
ARG SESAME_COMMIT=unknown
ARG SESAME_SOURCE_URL=https://github.com/usesesame/sesame-server
LABEL org.opencontainers.image.title="Sesame self-hosted server" \
      org.opencontainers.image.version="${SESAME_VERSION}" \
      org.opencontainers.image.revision="${SESAME_COMMIT}" \
      org.opencontainers.image.source="${SESAME_SOURCE_URL}"
COPY --from=build --chown=65532:65532 /out/data /data
COPY --from=build /out/sesame-server /sesame-server
USER nonroot:nonroot
VOLUME ["/data"]
ENV SESAME_DATA_DIR=/data \
    SESAME_ADDR=0.0.0.0:8787 \
    SESAME_INSTALL_KIND=container
EXPOSE 8787
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 CMD ["/sesame-server", "healthcheck"]
ENTRYPOINT ["/sesame-server"]