mirror of
https://github.com/makeplane/plane
synced 2025-08-07 19:59:33 +00:00
* [WEB-1116] feat: pages realtime sync (#5057) * init: live server for editor realtime sync * chore: authentication added * chore: updated logic to convert html to binary for old pages * chore: added description json on page update * chore: made all functions generic * chore: save description in json and html formats * refactor: document editor components * chore: uncomment ui package components * fix: without props extensions refactor * fix: merge conflicts resolved from preview * chore: init docker compose * chore: pages custom error codes * chore: add health check endpoint to the live server * chore: update without props extensions type * chore: better error handling * chore: update react-hook-form versions --------- Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com> * fix: docker related fixes * fix: module type fixes * fix: nginx update * fix: adding live server workflow * fix: workflow fixes * fix: docker compose fixes * fix: workflow fixes * fix: path config * fix: docker compose warnings * fix: nginx port forwarding * fix: update docker compose with new env * fix: env var fixes * fix: error handling * fix: docker compose env var * fix: compose fixes * chore: update server start message * chore: handle errors * fix: build errors * chore: update port * chore: update server port * chore: show error on authentication fail * chore: show error on authentication fail * feat: add redis extension * chore: updated restore version logic --------- Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com> Co-authored-by: Palanikannan M <akashmalinimurugu@gmail.com>
105 lines
3.3 KiB
Docker
105 lines
3.3 KiB
Docker
# *****************************************************************************
|
|
# STAGE 1: Build the project
|
|
# *****************************************************************************
|
|
FROM node:18-alpine AS builder
|
|
RUN apk add --no-cache libc6-compat
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
RUN yarn global add turbo
|
|
COPY . .
|
|
|
|
RUN turbo prune --scope=web --docker
|
|
|
|
# *****************************************************************************
|
|
# STAGE 2: Install dependencies & build the project
|
|
# *****************************************************************************
|
|
# Add lockfile and package.json's of isolated subworkspace
|
|
FROM node:18-alpine AS installer
|
|
|
|
RUN apk add --no-cache libc6-compat
|
|
WORKDIR /app
|
|
|
|
# First install the dependencies (as they change less often)
|
|
COPY .gitignore .gitignore
|
|
COPY --from=builder /app/out/json/ .
|
|
COPY --from=builder /app/out/yarn.lock ./yarn.lock
|
|
RUN yarn install --network-timeout 500000
|
|
|
|
# Build the project
|
|
COPY --from=builder /app/out/full/ .
|
|
COPY turbo.json turbo.json
|
|
|
|
ARG NEXT_PUBLIC_API_BASE_URL=""
|
|
ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL
|
|
|
|
ARG NEXT_PUBLIC_ADMIN_BASE_URL=""
|
|
ENV NEXT_PUBLIC_ADMIN_BASE_URL=$NEXT_PUBLIC_ADMIN_BASE_URL
|
|
|
|
ARG NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode"
|
|
ENV NEXT_PUBLIC_ADMIN_BASE_PATH=$NEXT_PUBLIC_ADMIN_BASE_PATH
|
|
|
|
ARG NEXT_PUBLIC_LIVE_BASE_URL=""
|
|
ENV NEXT_PUBLIC_LIVE_BASE_URL=$NEXT_PUBLIC_LIVE_BASE_URL
|
|
|
|
ARG NEXT_PUBLIC_LIVE_BASE_PATH="/live"
|
|
ENV NEXT_PUBLIC_LIVE_BASE_PATH=$NEXT_PUBLIC_LIVE_BASE_PATH
|
|
|
|
ARG NEXT_PUBLIC_SPACE_BASE_URL=""
|
|
ENV NEXT_PUBLIC_SPACE_BASE_URL=$NEXT_PUBLIC_SPACE_BASE_URL
|
|
|
|
ARG NEXT_PUBLIC_SPACE_BASE_PATH="/spaces"
|
|
ENV NEXT_PUBLIC_SPACE_BASE_PATH=$NEXT_PUBLIC_SPACE_BASE_PATH
|
|
|
|
ARG NEXT_PUBLIC_WEB_BASE_URL=""
|
|
ENV NEXT_PUBLIC_WEB_BASE_URL=$NEXT_PUBLIC_WEB_BASE_URL
|
|
|
|
ENV NEXT_TELEMETRY_DISABLED 1
|
|
ENV TURBO_TELEMETRY_DISABLED 1
|
|
|
|
RUN yarn turbo run build --filter=web
|
|
|
|
# *****************************************************************************
|
|
# STAGE 3: Copy the project and start it
|
|
# *****************************************************************************
|
|
FROM node:18-alpine AS runner
|
|
WORKDIR /app
|
|
|
|
COPY --from=installer /app/web/next.config.js .
|
|
COPY --from=installer /app/web/package.json .
|
|
|
|
# Automatically leverage output traces to reduce image size
|
|
# https://nextjs.org/docs/advanced-features/output-file-tracing
|
|
COPY --from=installer /app/web/.next/standalone ./
|
|
COPY --from=installer /app/web/.next ./web/.next
|
|
COPY --from=installer /app/web/public ./web/public
|
|
|
|
ARG NEXT_PUBLIC_API_BASE_URL=""
|
|
ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL
|
|
|
|
ARG NEXT_PUBLIC_ADMIN_BASE_URL=""
|
|
ENV NEXT_PUBLIC_ADMIN_BASE_URL=$NEXT_PUBLIC_ADMIN_BASE_URL
|
|
|
|
ARG NEXT_PUBLIC_ADMIN_BASE_PATH="/god-mode"
|
|
ENV NEXT_PUBLIC_ADMIN_BASE_PATH=$NEXT_PUBLIC_ADMIN_BASE_PATH
|
|
|
|
ARG NEXT_PUBLIC_LIVE_BASE_URL=""
|
|
ENV NEXT_PUBLIC_LIVE_BASE_URL=$NEXT_PUBLIC_LIVE_BASE_URL
|
|
|
|
ARG NEXT_PUBLIC_LIVE_BASE_PATH="/live"
|
|
ENV NEXT_PUBLIC_LIVE_BASE_PATH=$NEXT_PUBLIC_LIVE_BASE_PATH
|
|
|
|
ARG NEXT_PUBLIC_SPACE_BASE_URL=""
|
|
ENV NEXT_PUBLIC_SPACE_BASE_URL=$NEXT_PUBLIC_SPACE_BASE_URL
|
|
|
|
ARG NEXT_PUBLIC_SPACE_BASE_PATH="/spaces"
|
|
ENV NEXT_PUBLIC_SPACE_BASE_PATH=$NEXT_PUBLIC_SPACE_BASE_PATH
|
|
|
|
ARG NEXT_PUBLIC_WEB_BASE_URL=""
|
|
ENV NEXT_PUBLIC_WEB_BASE_URL=$NEXT_PUBLIC_WEB_BASE_URL
|
|
|
|
ENV NEXT_TELEMETRY_DISABLED 1
|
|
ENV TURBO_TELEMETRY_DISABLED 1
|
|
|
|
EXPOSE 3000
|