12345678910111213141516171819202122232425262728293031323334353637383940 |
- # Build frontend dist.
- FROM node:20-alpine AS frontend
- WORKDIR /frontend-build
- COPY . .
- WORKDIR /frontend-build/web
- RUN corepack enable && pnpm i --frozen-lockfile
- RUN pnpm build
- # Build backend exec file.
- FROM golang:1.23-alpine AS backend
- WORKDIR /backend-build
- COPY . .
- COPY --from=frontend /frontend-build/web/dist /backend-build/server/router/frontend/dist
- RUN CGO_ENABLED=0 go build -o memos ./bin/memos/main.go
- # Make workspace with above generated files.
- FROM alpine:latest AS monolithic
- WORKDIR /usr/local/memos
- RUN apk add --no-cache tzdata
- ENV TZ="UTC"
- COPY --from=backend /backend-build/memos /usr/local/memos/
- EXPOSE 5230
- # Directory to store the data, which can be referenced as the mounting point.
- RUN mkdir -p /var/opt/memos
- VOLUME /var/opt/memos
- ENV MEMOS_MODE="prod"
- ENV MEMOS_PORT="5230"
- ENTRYPOINT ["./memos"]
|