From 2d7097eb83435f02103f866090482d16be8ad702 Mon Sep 17 00:00:00 2001 From: Henry Date: Wed, 18 Jun 2025 23:11:29 +0100 Subject: [PATCH] chore: cleanup test dockerfile --- apps/web/Dockerfile.new | 84 ----------------------------------- cloud/docker-compose-test.yml | 62 -------------------------- cloud/docker-compose.yml | 1 + 3 files changed, 1 insertion(+), 146 deletions(-) delete mode 100644 apps/web/Dockerfile.new delete mode 100644 cloud/docker-compose-test.yml diff --git a/apps/web/Dockerfile.new b/apps/web/Dockerfile.new deleted file mode 100644 index e6285eff..00000000 --- a/apps/web/Dockerfile.new +++ /dev/null @@ -1,84 +0,0 @@ -ARG NODE_VERSION=20 -ARG APP_DIRNAME=web -ARG PROJECT=@kan/web - -# 1. Alpine image -FROM node:${NODE_VERSION}-alpine AS alpine -RUN apk update -RUN apk add --no-cache libc6-compat python3 make g++ - -# Setup pnpm and turbo on the alpine base -FROM alpine AS base -RUN corepack enable -# Replace with the major version installed in your repository. For example: -# RUN npm install turbo@2.1.3 --global -RUN npm install turbo@2.3.1 --global - -RUN pnpm config set store-dir ~/.pnpm-store - -# 2. Prune projects -FROM base AS pruner -# https://stackoverflow.com/questions/49681984/how-to-get-version-value-of-package-json-inside-of-dockerfile -# RUN export VERSION=$(npm run version) - -ARG PROJECT - -# Set working directory -WORKDIR /app - -# It might be the path to turborepo -COPY . . - -# Generate a partial monorepo with a pruned lockfile for a target workspace. -# Assuming "@acme/nextjs" is the name entered in the project's package.json: { name: "@acme/nextjs" } -RUN turbo prune --scope=${PROJECT} --scope=@kan/db --docker - -# 3. Build the project -FROM base AS builder -ARG PROJECT - -# Environment to skip .env validation on build -ENV CI=true - -WORKDIR /app - -# Copy lockfile and package.json's of isolated subworkspace -COPY --from=pruner /app/out/pnpm-lock.yaml ./pnpm-lock.yaml -COPY --from=pruner /app/out/pnpm-workspace.yaml ./pnpm-workspace.yaml -COPY --from=pruner /app/out/json/ . - -# First install the dependencies (as they change less often) -RUN --mount=type=cache,id=pnpm,target=~/.pnpm-store pnpm install --frozen-lockfile - -# Copy source code of isolated subworkspace -COPY --from=pruner /app/out/full/ . - - -RUN pnpm build --filter=${PROJECT} - -# Copy static files to standalone directory -RUN mkdir -p apps/web/.next/standalone/.next && \ -mv apps/web/public apps/web/.next/standalone/ && \ -mv apps/web/.next/static apps/web/.next/standalone/.next/ - -# 4. Final image - runner stage to run the application -FROM base AS runner -ARG APP_DIRNAME - -# Don't run production as root -RUN addgroup --system --gid 1001 nodejs -RUN adduser --system --uid 1001 nextjs -USER nextjs - -WORKDIR /app - -ENV NODE_ENV=production - -COPY --chown=nextjs:nodejs --from=builder /app/ ./ -WORKDIR /app/apps/${APP_DIRNAME} - -ARG PORT=3000 -ENV PORT=${PORT} -EXPOSE ${PORT} - -CMD ["/bin/sh", "./entrypoint.sh"] \ No newline at end of file diff --git a/cloud/docker-compose-test.yml b/cloud/docker-compose-test.yml deleted file mode 100644 index 4391e87e..00000000 --- a/cloud/docker-compose-test.yml +++ /dev/null @@ -1,62 +0,0 @@ -services: - web: - image: ghcr.io/kanbn/kan:latest - container_name: ${CONTAINER_NAME:-kan-web} - ports: - - "${WEB_PORT:-3000}:3000" - networks: - - dokploy-network - build: - context: .. - dockerfile: apps/web/Dockerfile.new - env_file: - - .env - environment: - - NEXT_PUBLIC_KAN_ENV=${NEXT_PUBLIC_KAN_ENV} - - NEXT_PUBLIC_BASE_URL=${NEXT_PUBLIC_BASE_URL} - - BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET} - - POSTGRES_URL=${POSTGRES_URL} - - NEXT_PUBLIC_USE_STANDALONE_OUTPUT=${NEXT_PUBLIC_USE_STANDALONE_OUTPUT} - - # Stripe - - STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY} - - STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET} - - # SMTP - - SMTP_HOST=${SMTP_HOST} - - SMTP_PORT=${SMTP_PORT} - - SMTP_USER=${SMTP_USER} - - SMTP_PASSWORD=${SMTP_PASSWORD} - - EMAIL_FROM=${EMAIL_FROM} - - # S3 storage - - S3_ACCESS_KEY_ID=${S3_ACCESS_KEY_ID} - - S3_SECRET_ACCESS_KEY=${S3_SECRET_ACCESS_KEY} - - S3_REGION=${S3_REGION} - - S3_ENDPOINT=${S3_ENDPOINT} - - NEXT_PUBLIC_STORAGE_URL=${NEXT_PUBLIC_STORAGE_URL} - - NEXT_PUBLIC_AVATAR_BUCKET_NAME=${NEXT_PUBLIC_AVATAR_BUCKET_NAME} - - NEXT_PUBLIC_STORAGE_DOMAIN=${NEXT_PUBLIC_STORAGE_DOMAIN} - - # Auth config - - NEXT_PUBLIC_ALLOW_CREDENTIALS=${NEXT_PUBLIC_ALLOW_CREDENTIALS} - - NEXT_PUBLIC_DISABLE_SIGN_UP=${NEXT_PUBLIC_DISABLE_SIGN_UP} - - # Integration providers - - TRELLO_APP_API_KEY=${TRELLO_APP_API_KEY} - - TRELLO_APP_SECRET=${TRELLO_APP_SECRET} - - # OAuth providers (optional) - - BETTER_AUTH_TRUSTED_ORIGINS=${BETTER_AUTH_TRUSTED_ORIGINS} - - GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID} - - GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET} - - # Analytics - - NEXT_PUBLIC_UMAMI_ID=${NEXT_PUBLIC_UMAMI_ID} - - NEXT_PUBLIC_POSTHOG_KEY=${NEXT_PUBLIC_POSTHOG_KEY} - - NEXT_PUBLIC_POSTHOG_HOST=${NEXT_PUBLIC_POSTHOG_HOST} - -networks: - dokploy-network: - external: true -#bump diff --git a/cloud/docker-compose.yml b/cloud/docker-compose.yml index 0cbfa99c..65015556 100644 --- a/cloud/docker-compose.yml +++ b/cloud/docker-compose.yml @@ -11,6 +11,7 @@ services: dockerfile: apps/web/Dockerfile env_file: - .env + restart: unless-stopped environment: - NEXT_PUBLIC_KAN_ENV=${NEXT_PUBLIC_KAN_ENV} - NEXT_PUBLIC_BASE_URL=${NEXT_PUBLIC_BASE_URL}