mirror of
				https://github.com/usememos/memos.git
				synced 2025-11-04 04:16:06 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			900 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			900 B
		
	
	
	
		
			Docker
		
	
	
	
	
	
# 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/
 | 
						|
COPY entrypoint.sh /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 ["./entrypoint.sh", "./memos"]
 |