d25d482dc2
Publish CLI Package / publish-npm (push) Waiting to run
Publish Python SDK / publish-pypi (push) Waiting to run
Publish TypeScript SDK / publish-npm (push) Waiting to run
CI / Migrate Dev DB (push) Has been skipped
CI / Detect Version (push) Has been cancelled
CI / Migrate DB (push) Has been cancelled
CI / Build Dev ECR (./docker/app.Dockerfile, ECR_APP) (push) Has been cancelled
CI / Build Dev ECR (./docker/db.Dockerfile, ECR_MIGRATIONS) (push) Has been cancelled
CI / Build Dev ECR (./docker/pii.Dockerfile, ECR_PII) (push) Has been cancelled
CI / Build Dev ECR (./docker/realtime.Dockerfile, ECR_REALTIME) (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
CI / Build AMD64 (./docker/app.Dockerfile, ECR_APP, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build AMD64 (./docker/db.Dockerfile, ECR_MIGRATIONS, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (./docker/pii.Dockerfile, ECR_PII, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (./docker/realtime.Dockerfile, ECR_REALTIME, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/app.Dockerfile, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/db.Dockerfile, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/pii.Dockerfile, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/realtime.Dockerfile, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Test and Build (push) Has been cancelled
58 lines
2.2 KiB
Docker
58 lines
2.2 KiB
Docker
# ========================================
|
|
# Base Stage: Alpine Linux with Bun
|
|
# ========================================
|
|
FROM oven/bun:1.3.13-alpine AS base
|
|
|
|
# ========================================
|
|
# Dependencies Stage: Install Dependencies
|
|
# ========================================
|
|
FROM base AS deps
|
|
WORKDIR /app
|
|
|
|
# Copy only package files needed for migrations (these change less frequently)
|
|
COPY package.json bun.lock turbo.json ./
|
|
RUN mkdir -p packages/db packages/logger packages/tsconfig packages/utils
|
|
COPY packages/db/package.json ./packages/db/package.json
|
|
COPY packages/logger/package.json ./packages/logger/package.json
|
|
COPY packages/tsconfig/package.json ./packages/tsconfig/package.json
|
|
COPY packages/utils/package.json ./packages/utils/package.json
|
|
|
|
# Install dependencies with cache mount for faster builds
|
|
RUN --mount=type=cache,id=bun-cache,target=/root/.bun/install/cache \
|
|
bun install --ignore-scripts
|
|
|
|
# ========================================
|
|
# Runner Stage: Production Environment
|
|
# ========================================
|
|
FROM base AS runner
|
|
WORKDIR /app
|
|
|
|
# Create non-root user and group (cached separately)
|
|
RUN addgroup -g 1001 -S nodejs && \
|
|
adduser -S nextjs -u 1001
|
|
|
|
# Copy only the necessary files from deps (cached if dependencies don't change)
|
|
COPY --from=deps --chown=nextjs:nodejs /app/node_modules ./node_modules
|
|
|
|
# Copy root package.json for workspace resolution
|
|
COPY --chown=nextjs:nodejs package.json ./package.json
|
|
|
|
# Copy package configuration files (needed for migrations)
|
|
COPY --chown=nextjs:nodejs packages/db/drizzle.config.ts ./packages/db/drizzle.config.ts
|
|
|
|
# Copy tsconfig package (needed for workspace symlink resolution)
|
|
COPY --chown=nextjs:nodejs packages/tsconfig ./packages/tsconfig
|
|
|
|
# Copy utils package (needed by db scripts that import @sim/utils)
|
|
COPY --chown=nextjs:nodejs packages/utils ./packages/utils
|
|
|
|
# Copy logger package (needed by @sim/db's tx-tripwire at import time)
|
|
COPY --chown=nextjs:nodejs packages/logger ./packages/logger
|
|
|
|
# Copy database package source code (changes most frequently - placed last)
|
|
COPY --chown=nextjs:nodejs packages/db ./packages/db
|
|
|
|
# Switch to non-root user
|
|
USER nextjs
|
|
|
|
WORKDIR /app/packages/db |