Signed-off-by: OpenClaw Bot <ai-agent@topdoglabs.com>
This commit is contained in:
parent
aed00c7825
commit
b6499fd9b4
26
Dockerfile
Normal file
26
Dockerfile
Normal file
@ -0,0 +1,26 @@
|
||||
FROM node:22-bookworm-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
ENV NEXT_TELEMETRY_DISABLED=1
|
||||
|
||||
# Build-time NEXT_PUBLIC vars so client bundles can be configured during image build.
|
||||
ARG NEXT_PUBLIC_SUPABASE_URL
|
||||
ARG NEXT_PUBLIC_SUPABASE_ANON_KEY
|
||||
ARG NEXT_PUBLIC_APP_URL
|
||||
|
||||
ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL \
|
||||
NEXT_PUBLIC_SUPABASE_ANON_KEY=$NEXT_PUBLIC_SUPABASE_ANON_KEY \
|
||||
NEXT_PUBLIC_APP_URL=$NEXT_PUBLIC_APP_URL
|
||||
|
||||
COPY package*.json ./
|
||||
RUN npm ci
|
||||
|
||||
COPY . .
|
||||
RUN npm run build && npm prune --omit=dev
|
||||
|
||||
RUN mkdir -p /app/data
|
||||
|
||||
EXPOSE 8300
|
||||
|
||||
CMD ["npm", "run", "start", "--", "-H", "0.0.0.0", "-p", "8300"]
|
||||
43
docker-compose.yml
Normal file
43
docker-compose.yml
Normal file
@ -0,0 +1,43 @@
|
||||
services:
|
||||
gantt-board:
|
||||
image: gantt-board:latest
|
||||
pull_policy: build
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL:-}
|
||||
NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY:-}
|
||||
NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL:-}
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "${APP_PORT:-8300}:8300"
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
NEXT_TELEMETRY_DISABLED: "1"
|
||||
NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL:-}
|
||||
NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY:-}
|
||||
SUPABASE_SERVICE_ROLE_KEY: ${SUPABASE_SERVICE_ROLE_KEY:-}
|
||||
SUPABASE_URL: ${SUPABASE_URL:-}
|
||||
SUPABASE_ANON_KEY: ${SUPABASE_ANON_KEY:-}
|
||||
SUPABASE_SECRET_KEY: ${SUPABASE_SECRET_KEY:-}
|
||||
NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL:-}
|
||||
GANTT_MACHINE_TOKEN: ${GANTT_MACHINE_TOKEN:-}
|
||||
GANTT_MACHINE_USER_ID: ${GANTT_MACHINE_USER_ID:-}
|
||||
GANTT_MACHINE_USER_NAME: ${GANTT_MACHINE_USER_NAME:-}
|
||||
GANTT_MACHINE_USER_EMAIL: ${GANTT_MACHINE_USER_EMAIL:-}
|
||||
RESEND_API_KEY: ${RESEND_API_KEY:-}
|
||||
RESEND_FROM_EMAIL: ${RESEND_FROM_EMAIL:-}
|
||||
EMAIL_FROM: ${EMAIL_FROM:-}
|
||||
VERCEL_URL: ${VERCEL_URL:-}
|
||||
volumes:
|
||||
- gantt_board_data:/app/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "node -e \"fetch('http://127.0.0.1:8300/login').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))\""]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 45s
|
||||
|
||||
volumes:
|
||||
gantt_board_data:
|
||||
Loading…
Reference in New Issue
Block a user