From eef9081aafc702d615e0efd2105540242776dbc9 Mon Sep 17 00:00:00 2001 From: Philipinho <16838612+Philipinho@users.noreply.github.com> Date: Fri, 7 Jun 2024 17:21:19 +0100 Subject: [PATCH] dockerfile and docker-compose file --- Dockerfile | 40 ++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..3ff3c4c0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,40 @@ +FROM node:21-alpine AS base + +FROM base as builder + +WORKDIR /app + +COPY . . + +RUN npm install -g pnpm +RUN pnpm install --frozen-lockfile +RUN pnpm build + +FROM base as installer + +RUN apk add --no-cache curl bash + +WORKDIR /app + +COPY --from=builder /app/apps/server/dist /app/apps/server/dist +COPY --from=builder /app/apps/client/dist /app/apps/client/dist +COPY --from=builder /app/apps/server/package.json /app/apps/server/package.json +COPY --from=builder /app/package.json /app/package.json +COPY --from=builder /app/packages/ /app/packages/ +COPY --from=builder /app/pnpm*.yaml /app/ + +RUN npm install -g pnpm + +RUN chown -R node:node /app + +USER node + +RUN pnpm install --frozen-lockfile --prod + +RUN mkdir -p /app/apps/server/data/storage + +VOLUME ["/app/apps/server/data/storage"] + +EXPOSE 3000 + +CMD ["pnpm", "start"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..0a1c0fb0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,36 @@ +version: '3' + +services: + docmost: + image: docker.io/library/docmost:latest + depends_on: + - db + - redis + environment: + APP_URL: 'http://localhost:3000' + APP_SECRET: 'REPLACE_WITH_LONG_SECRET' + DATABASE_URL: 'postgresql://postgres:password@db:5432/docmost?schema=public' + REDIS_URL: 'redis://redis:6379' + ports: + - "3000:3000" + restart: unless-stopped + + db: + image: postgres:16-alpine + environment: + POSTGRES_DB: docmost + POSTGRES_USER: postgres + POSTGRES_PASSWORD: password + restart: unless-stopped + volumes: + - db_data:/var/lib/postgresql/data + + redis: + image: redis:7.2-alpine + restart: unless-stopped + volumes: + - redis_data:/data + +volumes: + db_data: + redis_data: