FROM node:lts AS builder
WORKDIR /app
# Install dependencies for building
RUN apt-get update \
&& apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=/root/.bun/bin:$PATH
# Copy manifests for workspace installation
COPY package.json bun.lock ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies for the monorepo
RUN bun install
# Copy rest of source code
COPY . .
# Build both server and web apps (including Next.js standalone build for web)
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production/runtime image
FROM node:lts AS runtime
WORKDIR /app
# Install Bun in runtime
RUN apt-get update \
&& apt-get install -y curl ca-certificates gnupg build-essential git
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=/root/.bun/bin:$PATH
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Create directories for artifacts
RUN mkdir -p /app/apps/server/dist /app/build-start-folder /app/packages/db
# Copy built artifacts from builder
COPY --from=builder --chown=nodejs:nodejs /app/node_modules /app/node_modules
COPY --from=builder --chown=nodejs:nodejs /app/apps/server/dist/ /app/apps/server/dist/
COPY --from=builder --chown=nodejs:nodejs /app/packages/db /app/packages/db
COPY --from=builder --chown=nodejs:nodejs /app/build-start-folder /app/build-start-folder
USER nodejs
WORKDIR /app/apps/server
EXPOSE ${PORT}
# Start both server and web from a single container using a tiny shell
CMD ["bash","-lc","server_pid=$(bun dist/index.js &) web_pid=$(bun run /app/build-start-folder/apps/web/server.js &) wait $server_pid $web_pid"]
Concerns: CMD line uses incorrect Bash for launching both processes. It attempts to capture PIDs with command substitution in background processes (server_pid=$(bun dist/index.js &)) and then uses wait on those variables. This will not start or manage the processes reliably., The final CMD as a single string is syntactically fragile and likely invalid in practice, preventing the container from starting as intended., Potential path and script assumptions for web server startup are brittle: it uses bun run with an absolute path (/app/build-start-folder/apps/web/server.js) and mixes bun commands in a way that may not be supported or portable., Some artifact paths (e.g., dist locations, build-start-folder contents) depend on scripts whose exact outputs are not guaranteed, which could lead to runtime failures if the build outputs differ.
FROM oven/bun AS builder
WORKDIR /app
# Install dependencies for building
RUN apt-get update \
&& apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=/root/.bun/bin:$PATH
# Copy manifests for workspace installation
COPY package.json bun.lock ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies for the monorepo
RUN bun install
# Copy rest of source code
COPY . .
# Build both server and web apps (including Next.js standalone build for web)
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production/runtime image
FROM oven/bun AS runner
WORKDIR /app
# Install Bun in runtime
RUN apt-get update \
&& apt-get install -y curl ca-certificates gnupg build-essential git
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=/root/.bun/bin:$PATH
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Create directories for artifacts
RUN mkdir -p /app/apps/server/dist /app/packages/db
# Copy built artifacts from builder
COPY --from=builder --chown=nodejs:nodejs /app/node_modules /app/node_modules
COPY --from=builder --chown=nodejs:nodejs /app/apps/server/dist/ /app/apps/server/dist/
COPY --from=builder --chown=nodejs:nodejs /app/packages/db /app/packages/db
USER nodejs
WORKDIR /app/apps/server
EXPOSE ${PORT}
# Start the server
CMD ["bun", "dist/index.js"]
FROM node:lts AS builder
WORKDIR /app
# Install system dependencies
RUN apt-get update \
&& apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=/root/.bun/bin:$PATH
# Copy manifests for workspace installation
COPY package.json bun.lock ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies for the monorepo
RUN bun install
# Copy rest of source code
COPY . .
# Build both server and web apps (including Next.js standalone build for web)
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production/runtime image
FROM node:lts AS runner
WORKDIR /app
# Install Bun in runtime
RUN apt-get update \
&& apt-get install -y curl ca-certificates gnupg build-essential git
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=/root/.bun/bin:$PATH
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Create directories for artifacts
RUN mkdir -p /app/apps/server/dist /app/packages/db
# Copy built artifacts from builder
COPY --from=builder --chown=nodejs:nodejs /app/node_modules /app/node_modules
COPY --from=builder --chown=nodejs:nodejs /app/apps/server/dist/ /app/apps/server/dist/
COPY --from=builder --chown=nodejs:nodejs /app/packages/db /app/packages/db
USER nodejs
WORKDIR /app/apps/server
EXPOSE ${PORT}
# Start the server
CMD ["bun", "dist/index.js"]
No matches found.
# Ignore version control and build outputs .git node_modules/ **/node_modules/ # Bun and caches .bun bun.lock # Build outputs apps/server/dist/ apps/web/.next **/dist/ # Environment and logs .env* *.log # OS files .DS_Store
- Exact error message and exit code - ERROR: failed to calculate checksum of ref dm0crafjnw8l43ifl6uhde0ck::5zr9g6wuzuypn00matwrntx54: "/bun.lock": not found - Exit code: not shown in log (non-zero status) - Failing command/step - [builder 5/13] COPY package.json bun.lock ./ - Missing packages or files mentioned - bun.lock not found - bun.lock is excluded by .dockerignore (line 13); CopyIgnoredFile warning: attempting to copy a file excluded by .dockerignore (Dockerfile:13) - Version mismatch/info - Base image used: node:lts with digest sha256:5a593d74b632d1c6f816457477b6819760e13624455d587eef0fa418c8d0777b - Notes for remediation (optional) - Include bun.lock in the build context or remove it from the COPY, or adjust .dockerignore to allow bun.lock for this build.
FROM node:lts AS builder
WORKDIR /app
# Install system dependencies
RUN apt-get update \
&& apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=/root/.bun/bin:$PATH
# Copy manifests for workspace installation
COPY package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies for the monorepo
RUN bun install
# Copy rest of source code
COPY . .
# Build both server and web apps (including Next.js standalone build for web)
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production/runtime image
FROM oven/bun AS runner
WORKDIR /app
# Install Bun in runtime
RUN apt-get update \
&& apt-get install -y curl ca-certificates gnupg build-essential git
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=/root/.bun/bin:$PATH
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Create directories for artifacts
RUN mkdir -p /app/apps/server/dist /app/packages/db
# Copy built artifacts from builder
COPY --from=builder --chown=nodejs:nodejs /app/node_modules /app/node_modules
COPY --from=builder --chown=nodejs:nodejs /app/apps/server/dist/ /app/apps/server/dist/
COPY --from=builder --chown=nodejs:nodejs /app/packages/db /app/packages/db
USER nodejs
WORKDIR /app/apps/server
EXPOSE ${PORT}
# Start the server
CMD ["bun", "dist/index.js"]
FROM node:lts AS builder
WORKDIR /app
# Install system dependencies
RUN apt-get update \
&& apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=/root/.bun/bin:$PATH
# Copy manifests for workspace installation
COPY bun.lock ./
COPY package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies for the monorepo
RUN bun install
# Copy rest of source code
COPY . .
# Build both server and web apps (including Next.js standalone build for web)
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production/runtime image
FROM oven/bun AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Create directories for artifacts
RUN mkdir -p /app/apps/server/dist /app/packages/db
# Copy built artifacts from builder
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/apps/server/dist/ /app/apps/server/dist/
COPY --from=builder /app/packages/db /app/packages/db
USER nodejs
WORKDIR /app/apps/server
EXPOSE ${PORT}
# Start the server
CMD ["bun", "dist/index.js"]
Summary of Docker build error
- Exact error message (and exit context)
- ERROR: failed to calculate checksum of ref dm0crafjnw8l43ifl6uhde0ck::47wslp02isssv7si4wfcb8cdu: "/bun.lock": not found
- Exit code: not shown in log
- Failing command/step
- [builder 5/14] COPY bun.lock ./
- Missing files or packages mentioned
- bun.lock not found in build context
- bun.lock is excluded by .dockerignore (line 13)
- Warning shown: CopyIgnoredFile: Attempting to Copy file "bun.lock" that is excluded by .dockerignore (line 13)
- Version/image information (base images and digests)
- Base image resolution:
- bun:latest from oven/bun:latest@sha256:0733e50325078969732ebe3b15ce4c4be5082f18c4ac1a0f0ca4839c2e4e42a7
- node:lts from library/node:lts@sha256:5a593d74b632d1c6f816457477b6819760e13624455d587eef0fa418c8d0777b
- These indicate the specific image digests used for the failing build.FROM oven/bun AS builder
WORKDIR /app
# Install system dependencies
RUN apt-get update \
&& apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=/root/.bun/bin:$PATH
# Copy manifests for workspace installation (no bun.lock to avoid ignore issues)
COPY package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies for the monorepo
RUN bun install
# Copy rest of source code
COPY . .
# Build both server and web apps (including Next.js standalone build for web)
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production/runtime image
FROM oven/bun AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Create directories for artifacts
RUN mkdir -p /app/apps/server/dist /app/packages/db
# Copy built artifacts from builder
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/apps/server/dist/ /app/apps/server/dist/
COPY --from=builder /app/packages/db /app/packages/db
USER nodejs
WORKDIR /app/apps/server
EXPOSE ${PORT}
# Start the server
CMD ["bun", "dist/index.js"]
- Exact error message and exit code - "error: unzip is required to install bun" - Exit code: 1 - Failing command/step - [builder 4/13] RUN curl -fsSL https://bun.sh/install | bash - Missing packages or files mentioned - unzip is required but not installed in the image (unzip package is missing; not listed among newly installed packages in the apt-get step). - Any version mismatch info - None present. The error is due to a missing dependency (unzip), not a version conflict.
FROM node:lts AS builder
WORKDIR /app
# Install system dependencies
RUN apt-get update \
&& apt-get install -y curl ca-certificates gnupg build-essential git unzip
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=/root/.bun/bin:$PATH
# Copy manifests for workspace installation (no bun.lock to avoid ignore issues)
COPY package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies for the monorepo
RUN bun install
# Copy rest of source code
COPY . .
# Build both server and web apps (including Next.js standalone build for web)
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production/runtime image
FROM oven/bun AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Create directories for artifacts
RUN mkdir -p /app/apps/server/dist /app/packages/db
# Copy built artifacts from builder
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/apps/server/dist/ /app/apps/server/dist/
COPY --from=builder /app/packages/db /app/packages/db
USER nodejs
WORKDIR /app/apps/server
EXPOSE ${PORT}
# Start the server
CMD ["bun", "dist/index.js"]
- Failing step: RUN bun run --cwd apps/server build - Exit code: 2 - Exact error messages: - error TS2688: Cannot find type definition file for 'node'. - error TS2688: Cannot find type definition file for 'vite/client'. - Missing packages or files mentioned: - Missing type definition files for 'node' and 'vite/client' - Version mismatch info: - warn: incorrect peer dependency "@polar-sh/sdk@0.42.5"
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "node",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"types": ["node"]
},
"include": ["src"]
}
{\n "compilerOptions": {\n "target": "ES2020",\n "module": "ESNext",\n "moduleResolution": "node",\n "strict": true,\n "jsx": "react-jsx"\n },\n "include": ["src"]\n}\nSummary (under 1500 chars): Failing step - builder 11/13: RUN bun run --cwd apps/server build (Dockerfile: line 25) Exact error message and exit code - 3.589 error TS2688: Cannot find type definition file for 'node'. - The file is in the program because: - Entry point of type library 'node' specified in compilerOptions - ERROR: process "/bin/sh -c bun run --cwd apps/server build" did not complete successfully: exit code: 2 Missing packages or files mentioned - Cannot find type definition file for 'node' (missing Node type definitions). Likely related to missing @types/node or node type definitions in the environment. Version mismatch info - No explicit version mismatch reported in the error output. - Images referenced (pinned digests): - node:lts@sha256:5a593d74b632d1c6f816457477b6819760e13624455d587eef0fa418c8d0777b - bun:latest@sha256:0733e50325078969732ebe3b15ce4c4be5082f18c4ac1a0f0ca4839c2e4e42a7 - The logs show only a type-definition resolution issue, not a version incompatibility.
No matches found.
FROM node:lts AS builder
WORKDIR /app
# Install system dependencies
RUN apt-get update \
&& apt-get install -y curl ca-certificates gnupg build-essential git unzip
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH=/root/.bun/bin:$PATH
# Copy manifests for workspace installation
COPY package.json ./
COPY bun.lock ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies for the monorepo
RUN bun install
# Copy rest of source code
COPY . .
# Build both server and web apps (including Next.js standalone build for web)
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production/runtime image
FROM oven/bun AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy built artifacts from builder
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/apps/server/dist/ /app/apps/server/dist/
COPY --from=builder /app/packages/db /app/packages/db
USER nodejs
WORKDIR /app/apps/server
EXPOSE ${PORT}
# Start the server
CMD ["bun", "dist/index.js"]
Summary (under 1500 chars): - Exact error message and exit code: - ERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref dm0crafjnw8l43ifl6uhde0ck::uwwqtkf87xv3mk6zvm91kb3e9: "/bun.lock": not found - Exit code: not specified in the log - Failing command/step: - [builder 6/14] COPY bun.lock ./ - Missing packages or files mentioned: - /bun.lock not found - bun.lock is ignored by .dockerignore (line 14) (CopyIgnoredFile warning) - Version mismatch info: - None reported in the log
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "node",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true
},
"include": ["src"]
}
Summary: - Exact error message and exit code - ERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref dm0crafjnw8l43ifl6uhde0ck::gi3z4a3hl94v4irowo3jtfnph: "/bun.lock": not found - Exit code: not shown in the log - Failing command/step - Step: [builder 6/14] COPY bun.lock ./ - Dockerfile line: 14 - Missing packages or files mentioned - /bun.lock: not found - bun.lock is excluded by .dockerignore (line 14), which prevents copying it - Version mismatch information - The build uses multiple base images in a multi-stage build: runner stage from bun:latest and a separate FROM node:lts stage later. No explicit version mismatch error is shown; the failure stems from bun.lock being ignored/missing.
{
"name": "server-temp",
"version": "0.0.1",
"type": "module",
"private": true,
"scripts": {
"build": "bun run build src/index.ts --target bun --minify --outdir dist"
}
}
Summary (under 1500 chars):
- Exact error messages:
- "ERROR: failed to calculate checksum of ref dm0crafjnw8l43ifl6uhde0ck::tmk1pl3hcntrgjog08h4lsaii: \"/bun.lock\": not found"
- "ERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref dm0crafjnw8l43ifl6uhde0ck::tmk1pl3hcntrgjog08h4lsaii: \"/bun.lock\": not found"
- Failing command/step:
- [builder 6/14] COPY bun.lock ./
- Missing packages or files mentioned:
- bun.lock not found in the build context
- bun.lock appears to be excluded by .dockerignore (line 14), as indicated by the CopyIgnoredFile warning:
- "CopyIgnoredFile: Attempting to Copy file "bun.lock" that is excluded by .dockerignore (line 14)"
- Dockerfile shows COPY bun.lock ./ at line 15
- Version mismatch info:
- Base images used:
- FROM docker.io/library/node:lts@sha256:5a593d74b632d1c6f816457477b6819760e13624455d587eef0fa418c8d0777b
- Runner image: FROM docker.io/oven/bun:latest@sha256:0733e50325078969732ebe3b15ce4c4be5082f18c4ac1a0f0ca4839c2e4e42a7
- No explicit version mismatch reported; the error is due to a missing/banned bun.lock file in the build context.FROM node:lts AS builder WORKDIR /app # Install Bun and dependencies ENV BUN_INSTALL=/root/.bun ENV PATH="$BUN_INSTALL/bin:$PATH" RUN apt-get update \ && apt-get install -y curl ca-certificates gnupg build-essential git \ && mkdir -p "$BUN_INSTALL" \ && curl -fsSL https://bun.sh/install | bash # Copy package files and workspace manifests COPY package.json bun.lock ./ COPY apps/server/package.json ./apps/server/ COPY apps/web/package.json ./apps/web/ COPY packages/ ./packages/ # Install dependencies via Bun (workspace-aware) RUN bun install # Copy source code and build both apps COPY . . # Build both server and web, plus Next.js standalone bundle for web RUN bun run --cwd apps/server build RUN bun run --cwd apps/web build RUN bash scripts/handle-nextjs-standalone-build.sh # Production image FROM node:lts AS runner WORKDIR /app # Runtime environment ENV NODE_ENV=production ENV PORT=1284 # Install Bun in the runtime as well ENV BUN_INSTALL=/root/.bun ENV PATH="$BUN_INSTALL/bin:$PATH" RUN apt-get update \ && apt-get install -y curl ca-certificates gnupg build-essential git \ && mkdir -p "$BUN_INSTALL" \ && curl -fsSL https://bun.sh/install | bash # Create non-root user RUN groupadd -r nodejs && useradd -r -g nodejs nodejs # Prepare runtime directories for artifacts RUN mkdir -p /app/apps/server/dist /app/packages/db # Copy built artifacts from builder COPY --from=builder /app/apps/server/dist /app/apps/server/dist/ COPY --from=builder /app/apps/web/.next /app/apps/web/.next COPY --from=builder /app/apps/web/public /app/apps/web/public COPY --from=builder /app/packages/db /app/packages/db COPY --from=builder /app/node_modules /app/node_modules COPY --from=builder /app/build-start-folder/apps/web/server.js /app/build-start-folder/apps/web/server.js # Switch to non-root user and set workdir to server USER nodejs WORKDIR /app/apps/server EXPOSE 1284 # Start both server and web standalone server using a small init script RUN printf "%s\n" "#!/bin/sh" "set -e" "cd /app/apps/server" "bun dist/index.js &" "server_pid=\$!" "cd /app" "bun run ./build-start-folder/apps/web/server.js &" "web_pid=\$!" "wait \$server_pid" "wait \$web_pid" > /usr/local/bin/start-nimbus.sh \ && chmod +x /usr/local/bin/start-nimbus.sh CMD ["/usr/local/bin/start-nimbus.sh"]
Status - VerifyBuild status: build_failed Key error (build-time) - [builder 4/12] COPY package.json bun.lock ./ failed with: failed to calculate checksum of ref ... "/bun.lock": not found - Warning: CopyIgnoredFile - Attempting to Copy file "bun.lock" that is excluded by .dockerignore (line 14) - Dockerfile line 14: COPY package.json bun.lock ./ - Context issue: bun.lock is not present in build context or is excluded by .dockerignore, causing checksum calculation to fail Other build log context (for relevance) - Base image: node:lts - Steps around the failure show apt-get install and Bun installation were cached prior to the failure - Subsequent COPYs attempt to bring in apps/server/package.json and apps/web/package.json Concerns (actionable items) - Build/runtime path issue: The runtime copies build-start-folder/apps/web/server.js from the builder; this path must be created by build scripts. If handle-nextjs-standalone-build.sh changes or fails to produce this path, the runtime will fail to start. - Runtime image size: The runtime installs build-essential and git inside the final image; consider trimming runtime dependencies if not needed. - Observability: No HEALTHCHECK or explicit logging specified; add health checks and logs for production operability. Recommended fixes - Resolve bun.lock issue: - Ensure bun.lock exists in the build context at the expected path, or - Remove bun.lock from the COPY in the Dockerfile, or - Update .dockerignore to allow bun.lock to be included if needed. - Validate Dockerfile alignment with .dockerignore: - Confirm which files are ignored and adjust to prevent excluding bun.lock unintentionally. - Validate build output path: - Ensure build scripts generate build-start-folder/apps/web/server.js as expected; fix script if necessary. - Consider optimizing runtime image: - Remove unnecessary packages (build-essential, git) from final image if not required at runtime. - Add health checks and logging in the runtime to improve operability.
FROM node:lts AS builder WORKDIR /app # Install dependencies and Bun ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update \ && apt-get install -y curl ca-certificates gnupg build-essential git \ && mkdir -p "$HOME/.bun" \ && curl -fsSL https://bun.sh/install | bash ENV PATH="$HOME/.bun/bin:$PATH" # Copy manifests (do not copy bun.lock to avoid dockerignore issues) COPY package.json ./ COPY apps/server/package.json ./apps/server/ COPY apps/web/package.json ./apps/web/ COPY packages/ ./packages/ # Install dependencies (workspace-aware) RUN bun install # Copy source code and build both apps COPY . . RUN bun run --cwd apps/server build RUN bun run --cwd apps/web build RUN bash scripts/handle-nextjs-standalone-build.sh # Production image FROM node:lts AS runner WORKDIR /app ENV NODE_ENV=production ENV PORT=1284 # Install Bun in the runtime ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update \ && apt-get install -y curl ca-certificates gnupg build-essential git \ && curl -fsSL https://bun.sh/install | bash ENV PATH="$HOME/.bun/bin:$PATH" # Create non-root user RUN groupadd -r nodejs && useradd -r -g nodejs nodejs # Prepare runtime directories RUN mkdir -p /app/apps/server/dist /app/apps/web/.next /app/apps/web/public /app/packages/db /app/node_modules # Copy built artifacts from builder COPY --from=builder /app/apps/server/dist /app/apps/server/dist COPY --from=builder /app/apps/web/.next /app/apps/web/.next COPY --from=builder /app/apps/web/public /app/apps/web/public COPY --from=builder /app/packages/db /app/packages/db COPY --from=builder /app/node_modules /app/node_modules # Switch to non-root user and set workdir to server USER nodejs WORKDIR /app/apps/server EXPOSE 1284 CMD ["bun","dist/index.js"]
- Exact error message and exit code - /bin/sh: 1: bun: not found - exit code: 127 - Failing command/step - [builder 8/12] RUN bun install - Missing packages or files mentioned - bun binary not found in PATH - Bun was reportedly installed to ~/.bun/bin/bun and PATH updated in ~/.bashrc, but non-interactive /bin/sh did not source that, so bun is not in PATH during the build - Version mismatch/info - Build uses two base images: node:lts-bookworm (stage #4) and node:lts (stage #5), indicating a mismatch between Node base images across stages - Warnings (deduplicated) - UndefinedVar: Usage of undefined variable '$HOME' (line 10, line 40)
FROM node:lts AS builder WORKDIR /app # Install Bun in a way that bun is available in the same RUN when we install deps RUN apt-get update \ && apt-get install -y curl ca-certificates gnupg build-essential git \ && mkdir -p /root/.bun \ && curl -fsSL https://bun.sh/install | bash \ && ln -sf /root/.bun/bin/bun /usr/local/bin/bun # Copy manifests (avoid copying bun.lock to sidestep dockerignore for bun.lock if needed) COPY package.json ./ COPY apps/server/package.json ./apps/server/ COPY apps/web/package.json ./apps/web/ COPY packages/ ./packages/ # Install dependencies (workspace-aware) RUN bun install # Copy source code COPY . . # Build both apps and standalone script for Next.js RUN bun run --cwd apps/server build RUN bun run --cwd apps/web build RUN bash scripts/handle-nextjs-standalone-build.sh # Production image FROM node:lts AS runner WORKDIR /app ENV NODE_ENV=production ENV PORT=1284 # Install Bun in the runtime and expose bun in PATH RUN apt-get update \ && apt-get install -y curl ca-certificates gnupg build-essential git \ && mkdir -p /root/.bun \ && curl -fsSL https://bun.sh/install | bash \ && ln -sf /root/.bun/bin/bun /usr/local/bin/bun # Create non-root user RUN groupadd -r nodejs && useradd -r -g nodejs nodejs # Prepare runtime directories for artifacts RUN mkdir -p /app/apps/server/dist /app/apps/web/.next /app/apps/web/public /app/packages/db # Copy built artifacts from builder COPY --from=builder /app/apps/server/dist /app/apps/server/dist COPY --from=builder /app/apps/web/.next /app/apps/web/.next COPY --from=builder /app/apps/web/public /app/apps/web/public COPY --from=builder /app/packages/db /app/packages/db COPY --from=builder /app/node_modules /app/node_modules # Switch to non-root user and set workdir to server USER nodejs WORKDIR /app/apps/server EXPOSE 1284 CMD ["bun", "dist/index.js"]
- Failing step: builder 8/12 RUN bun install - Exact error messages and exit code (as shown): bun install v1.3.11 (af24e281) Resolving dependencies Resolved, downloaded and extracted [2712] warn: incorrect peer dependency "@polar-sh/sdk@0.42.5" error: Workspace dependency "@nimbus/server" not found Searched in "./*" Workspace documentation: https://bun.com/docs/install/workspaces error: @nimbus/server@workspace:* failed to resolve (Docker build failure: process "/bin/sh -c bun install" did not complete successfully: exit code: 1) - Missing packages/files mentioned: - Workspace dependency "@nimbus/server" not found (searched in "./*") - Version mismatch info: - Warning: incorrect peer dependency "@polar-sh/sdk@0.42.5" - Other context: - bun install attempted in a workspace-aware mode, failing due to the missing @nimbus/server in the workspace. Potential fix: ensure @nimbus/server is present in the workspace configuration (bunfig/workspaces) or adjust dependencies so that bun can resolve the workspace package.
FROM oven/bun AS builder WORKDIR /app # Install Bun and dependencies (builder) RUN apt-get update \ && apt-get install -y curl ca-certificates gnupg build-essential git \ && mkdir -p /root/.bun \ && curl -fsSL https://bun.sh/install | bash \ && ln -sf /root/.bun/bin/bun /usr/local/bin/bun # Copy manifests (root and workspace packages) COPY package.json ./ COPY apps/server/package.json ./apps/server/ COPY apps/web/package.json ./apps/web/ COPY packages/ ./packages/ # Install dependencies (workspace-aware) RUN bun install # Copy source code COPY . . # Build both apps and standalone Next.js bundle RUN bun run --cwd apps/server build RUN bun run --cwd apps/web build RUN bash scripts/handle-nextjs-standalone-build.sh # Production image FROM oven/bun AS runner WORKDIR /app ENV NODE_ENV=production ENV PORT=1284 # Install Bun in the runtime RUN apt-get update \ && apt-get install -y curl ca-certificates gnupg build-essential git \ && mkdir -p /root/.bun \ && curl -fsSL https://bun.sh/install | bash \ && ln -sf /root/.bun/bin/bun /usr/local/bin/bun # Create non-root user RUN groupadd -r nodejs && useradd -r -g nodejs nodejs # Prepare runtime directories for artifacts RUN mkdir -p /app/apps/server/dist /app/apps/web/.next /app/apps/web/public /app/packages/db # Copy built artifacts from builder COPY --from=builder /app/apps/server/dist /app/apps/server/dist COPY --from=builder /app/apps/web/.next /app/apps/web/.next COPY --from=builder /app/apps/web/public /app/apps/web/public COPY --from=builder /app/packages/db /app/packages/db # Switch to non-root user and start server from its directory USER nodejs WORKDIR /app/apps/server EXPOSE 1284 CMD ["bun","start"]
Exact error and exit code - Error: error: unzip is required to install bun - Exit code: 1 Failing command/step - Dockerfile step: [runner 3/10] RUN apt-get update && apt-get install -y curl ca-certificates gnupg build-essential git && mkdir -p /root/.bun && curl -fsSL https://bun.sh/install | bash && ln -sf /root/.bun/bin/bun /usr/local/bin/bun Missing packages or files mentioned - unzip is required to install bun (not installed in the image). Bun install fails because unzip is missing. Version mismatch information - No explicit version mismatch reported. The run uses the image oven/bun:latest (with a specific sha256), and the Bun install occurs in a Debian trixie environment. The failure is due to a missing unzip package, not a version conflict.
FROM oven/bun AS builder
WORKDIR /app
# Install dependencies in builder (need unzip for bun install on some images)
RUN apk --version >/dev/null 2>&1 || true
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates unzip bash \
&& rm -rf /var/lib/apt/lists/*
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH="/root/.bun/bin:${PATH}"
# Copy manifests
COPY package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies (workspace-aware)
RUN bun install
# Copy source
COPY . .
# Build both apps
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
FROM oven/bun AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=1284
# Ensure bun is available in runtime
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates bash \
&& curl -fsSL https://bun.sh/install | bash \
&& ln -sf /root/.bun/bin/bun /usr/local/bin/bun \
&& rm -rf /var/lib/apt/lists/*
ENV PATH="/root/.bun/bin:${PATH}"
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
RUN mkdir -p /app/apps/server/dist /app/apps/web/.next /app/apps/web/public /app/packages/db
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/apps/web/public /app/apps/web/public
COPY --from=builder /app/packages/db /app/packages/db
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
CMD ["bun","dist/index.js"]
- Exact error message and exit code:
- error: unzip is required to install bun
- exit code: 1
- Failing command/step:
- Dockerfile step: RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates bash \
&& curl -fsSL https://bun.sh/install | bash \
&& ln -sf /root/.bun/bin/bun /usr/local/bin/bun \
&& rm -rf /var/lib/apt/lists/*
- Context: Bun is installed during this RUN, but the installer fails due to missing unzip.
- Missing packages or files mentioned:
- unzip is not installed at the time bun.sh/install runs, causing the Bun installer to fail with “unzip is required to install bun”.
- Note: unzip is installed later in a separate build step ([builder 4/14]), but that happens after this failure, so it does not help this run.
- Any version mismatch info:
- No explicit version mismatch is shown. The log shows Debian trixie packages being installed and OpenSSL/Ca certificates updates, but there is no stated version conflict. The failure is due to a missing unzip tool, not a version mismatch.FROM node:lts AS builder
WORKDIR /app
# Install dependencies for Bun and build
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates unzip bash git build-essential \
&& rm -rf /var/lib/apt/lists/*
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH="/root/.bun/bin:${PATH}"
# Copy manifests (without bun.lock to avoid dockerignore issues)
COPY package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies (workspace-aware)
RUN bun install
# Copy source code and build both apps
COPY . .
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
FROM node:lts AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=1284
# Install Bun in the runtime as well
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates unzip bash git \
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH="/root/.bun/bin:${PATH}"
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Prepare runtime directories
RUN mkdir -p /app/apps/server/dist /app/apps/web/.next /app/apps/web/public /app/packages/db
# Copy built artifacts from builder
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/apps/web/public /app/apps/web/public
COPY --from=builder /app/packages/db /app/packages/db
COPY --from=builder /app/node_modules /app/node_modules
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
CMD ["bun", "dist/index.js"]
Summary (under 1500 chars): - Failing step: [builder 9/13] RUN bun install - Exact error messages and exit code: - bun install v1.3.11 (af24e281) - Resolving dependencies - Resolved, downloaded and extracted [2712] - warn: incorrect peer dependency "@polar-sh/sdk@0.42.5" - error: Workspace dependency "@nimbus/server" not found - Searched in "./*" - Workspace documentation: https://bun.com/docs/install/workspaces - error: @nimbus/server@workspace:* failed to resolve - process "/bin/sh -c bun install" did not complete successfully: exit code: 1 - Missing packages or files mentioned: - Workspace dependency "@nimbus/server" not found ( Bun searched in "./*" and couldn't resolve @nimbus/server) - Version mismatch info: - warn: incorrect peer dependency "@polar-sh/sdk@0.42.5" - Context: This occurs during the Bun workspace install step in the Dockerfile, causing the build to fail.
{
"name": "nimbus",
"version": "0.0.0",
"devDependencies": {
"@changesets/cli": "^2.29.5",
"glob": "^11.0.3",
"husky": "^9.1.7",
"knip": "^5.62.0",
"lint-staged": "^16.1.4",
"oxlint": "^1.9.0",
"prettier": "^3.6.2",
"prettier-plugin-sort-imports": "^1.8.8",
"prettier-plugin-tailwindcss": "^0.6.14",
"turbo": "^2.5.6",
"typescript": "^5.9.2"
},
"packageManager": "bun@1.2.17",
"private": true,
"scripts": {
"dev": "turbo dev",
"dev:up": "docker compose up -d db cache",
"dev:web": "bun --elide-lines 0 --filter @nimbus/web --env-file .env dev",
"dev:server": "bun --elide-lines 0 --filter @nimbus/server --env-file .env dev",
"dev:down": "docker compose down",
"dev:reset": "docker compose down && docker compose up -d db cache",
"build": "turbo build",
"start": "turbo start",
"db:push": "bun --elide-lines 0 --filter @nimbus/db --env-file .env push",
"env:sync": "bun run scripts/copy-env-files.ts",
"env:clean": "bun run scripts/delete-child-env-files.ts",
"docker:build": "docker compose build",
"docker:up": "docker compose up",
"docker:down": "docker compose down",
"docker:reset": "bun run docker:remove && bun run docker:up",
"docker:remove": "docker compose down --rmi local -v",
"lint": "bun run oxlint --fix",
"knip": "knip-bun --config knip.config.ts",
"format": "bun prettier . --write --list-different",
"prepare": "husky"
},
"type": "module",
"workspaces": [
"apps/*",
"packages/*"
]
}
FROM node:lts AS builder
WORKDIR /app
# Install dependencies required for Bun and building
RUN apt-get update \
&& apt-get install -y --no-install-requires curl ca-certificates unzip bash git build-essential \
&& rm -rf /var/lib/apt/lists/*
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH="/root/.bun/bin:${PATH}"
# Copy manifests and the whole repository to resolve workspaces
COPY package.json bun.lock ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
COPY . .
# Install dependencies (workspace-aware)
RUN bun install
# Build both applications and generate standalone web bundle
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
FROM node:lts AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=1284
# Install Bun in the runtime as well
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates unzip bash \
&& rm -rf /var/lib/apt/lists/*
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH="/root/.bun/bin:${PATH}"
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Prepare runtime directories for artifacts
RUN mkdir -p /app/apps/server/dist /app/packages/db /app/apps/web/.next /app/apps/web/public
# Copy built artifacts from builder
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/apps/web/public /app/apps/web/public
COPY --from=builder /app/packages/db /app/packages/db
COPY --from=builder /app/node_modules /app/node_modules
# Switch to non-root user and set workdir to server
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
CMD ["bun", "dist/index.js"]
- Failing step: [builder 5/13] COPY package.json bun.lock ./: - Exact error message and exit info: ERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref dm0crafjnw8l43ifl6uhde0ck::w6hys7zy0a2gtdc01anh5xk3v: "/bun.lock": not found (Exit code not explicitly shown in snippet; failure occurs during this step) - Missing file / missing package mentioned: - bun.lock not found - Bun.lock is being copied but is excluded by .dockerignore (line 14) - CopyIgnoredFile warning: Attempting to Copy file "bun.lock" that is excluded by .dockerignore (line 14) - Version information present: - Base images involved: node:lts and node:lts-bookworm with specific sha256 digests - No explicit version mismatch message reported - Context detail: - The error occurs while attempting to copy bun.lock along with package.json, i.e., the COPY package.json bun.lock ./ step failed due to the missing bun.lock in context (or being ignored by .dockerignore).
FROM oven/bun AS builder
WORKDIR /app
# Install system dependencies for Bun and building
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates unzip bash git build-essential \
&& rm -rf /var/lib/apt/lists/*
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH="/root/.bun/bin:${PATH}"
# Copy manifests (do not copy bun.lock to avoid dockerignore issues)
COPY package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies (workspace-aware Bun)
RUN bun install
# Copy full source code
COPY . .
# Build both applications and the Next.js standalone artifact
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
FROM oven/bun AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=1284
# Install Bun in the runtime as well
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates unzip bash git \
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH="/root/.bun/bin:${PATH}"
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Prepare runtime directories
RUN mkdir -p /app/apps/server/dist /app/apps/web/.next /app/apps/web/public /app/packages/db
# Copy built artifacts from builder
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/apps/web/public /app/apps/web/public
COPY --from=builder /app/packages/db /app/packages/db
# Switch to non-root user
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
CMD ["bun", "dist/index.js"]
Failing step - [builder 9/13] RUN bun install Exact error message and exit code - bun install v1.3.11 - Warning: "warn: incorrect peer dependency "@polar-sh/sdk@0.42.5"" - Error: "Workspace dependency "@nimbus/server" not found" - Searched in "./*" - Workspace documentation: https://bun.com/docs/install/workspaces - Error: "@nimbus/server@workspace:* failed to resolve" - The outer build failure: process "/bin/sh -c bun install" did not complete successfully: exit code: 1 Missing packages or files mentioned - Missing workspace dependency: @nimbus/server Version mismatch information - Bun version used: v1.3.11 - Peer dependency warning: "incorrect peer dependency "@polar-sh/sdk@0.42.5""
FROM oven/bun AS builder
WORKDIR /app
# Install build-time dependencies and Bun
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates unzip bash git build-essential \
&& rm -rf /var/lib/apt/lists/*
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH="/root/.bun/bin:${PATH}"
# Copy manifests and the whole repository to resolve workspaces
COPY package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies (workspace-aware Bun)
RUN bun install
# Copy full source code
COPY . .
# Build both applications and the Next.js standalone artifact
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
FROM oven/bun AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=1284
# Install Bun in the runtime as well
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates unzip bash git \
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH="/root/.bun/bin:${PATH}"
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Prepare runtime directories for artifacts
RUN mkdir -p /app/apps/server/dist /app/apps/web/.next /app/apps/web/public /app/packages/db
# Copy built artifacts from builder
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/apps/web/public /app/apps/web/public
COPY --from=builder /app/packages/db /app/packages/db
COPY --from=builder /app/node_modules /app/node_modules
# Switch to non-root user and start the server
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
CMD ["bun", "dist/index.js"]
- Failing step: [builder 9/13] RUN bun install - Exact error message and exit code - error: Workspace dependency "@nimbus/server" not found - Searched in "./*" - Workspace documentation: https://bun.com/docs/install/workspaces - @nimbus/server@workspace:* failed to resolve - ERROR: failed to build: failed to solve: process "/bin/sh -c bun install" did not complete successfully: exit code: 1 - Missing packages or files mentioned - Missing workspace package: "@nimbus/server" - Bun attempted to resolve workspace dependencies but could not locate @nimbus/server (searched in "./*") - Version mismatch info - Bun install attempted with Bun version v1.3.11 - Warning: incorrect peer dependency "@polar-sh/sdk@0.42.5" - Additional context - The failure occurs during workspace-aware dependency installation (bun install) in the builder stage, preventing the image from building.
FROM oven/bun AS builder
WORKDIR /app
# Copy package files
COPY package.json bun.lock ./
COPY apps/server/package.json ./apps/server/
COPY packages/ ./packages/
# Install dependencies
RUN bun install
# Copy source code
COPY . .
# Build the application
RUN bun run --cwd apps/server build
# Production image
FROM oven/bun AS runner
WORKDIR /app
# Set environment variables
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Create app directory in runner
RUN mkdir -p /app/apps/server/dist /app/packages/db
# Copy built application and db package
COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modules
COPY --from=builder --chown=nodejs:nodejs /app/apps/server/dist/ /app/apps/server/dist/
COPY --from=builder --chown=nodejs:nodejs /app/packages/db /app/packages/db
# Switch to non-root user
USER nodejs
WORKDIR /app/apps/server
EXPOSE ${PORT}
RUN bun --cwd /app/packages/db push
# Start the application with db push
CMD bun dist/index.js# Builder stage
FROM oven/bun AS builder
WORKDIR /app
ARG VITE_BACKEND_URL
ARG VITE_FRONTEND_URL
ENV VITE_BACKEND_URL=${VITE_BACKEND_URL}
ENV VITE_FRONTEND_URL=${VITE_FRONTEND_URL}
# Copy package files for dependency installation
COPY package.json bun.lock ./
COPY apps/web/package.json ./apps/web/
COPY apps/server/package.json ./apps/server/
COPY packages/ ./packages/
# Install dependencies
RUN bun install
# Copy source code
COPY . .
# Set environment variables for build
ENV NEXT_TELEMETRY_DISABLED=1
ENV NODE_ENV=production
# Build the application from web directory
WORKDIR /app/apps/web
RUN bun run build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production image
FROM oven/bun AS runner
WORKDIR /app
# Set environment variables
ENV NODE_ENV=production
ENV PORT=3000
ENV VITE_BACKEND_URL=${VITE_BACKEND_URL}
ENV VITE_FRONTEND_URL=${VITE_FRONTEND_URL}
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy the standalone output
COPY --from=builder --chown=nodejs:nodejs /app/apps/web/.next ./
COPY --from=builder --chown=nodejs:nodejs /app/apps/web/public ./public
COPY --from=builder --chown=nodejs:nodejs /app/packages/db ./packages/db
# Switch to non-root user
USER nodejs
EXPOSE ${PORT}
# Based on apps/web workspace path from root package.json
CMD ["bun", "run", "./build-start-folder/apps/web/server.js"]
FROM node:lts AS builder WORKDIR /app # Install system dependencies RUN apt-get update \ && apt-get install -y --no-install-recommends curl ca-certificates git build-essential \ && rm -rf /var/lib/apt/lists/* # Copy root manifests for workspaces COPY package.json ./ COPY apps/server/package.json ./apps/server/ COPY apps/web/package.json ./apps/web/ COPY packages/ ./packages/ # Install dependencies for the monorepo using npm workspaces RUN npm install # Copy source code COPY . . # Build all projects in the monorepo RUN npm run build # Production image FROM node:lts AS runner WORKDIR /app ENV NODE_ENV=production ENV PORT=1284 # Copy built server artifact from builder COPY --from=builder /app/apps/server/dist /app/apps/server/dist COPY --from=builder /app/packages/db /app/packages/db # Provision a non-root user for running the app RUN groupadd -r nodejs && useradd -r -g nodejs nodejs # Switch to non-root user USER nodejs WORKDIR /app/apps/server EXPOSE 1284 # Start the server using Node (the built dist is expected to be compatible with Node) CMD ["node", "dist/index.js"]
Failing step - [builder 8/10] RUN npm install (Dockerfile line 16) Exact error and exit code - npm error code EUNSUPPORTEDPROTOCOL - npm error Unsupported URL Type "workspace:": workspace:* - The process did not complete successfully: exit code: 1 Context and related details - Command context: monorepo using npm workspaces (as indicated by the Dockerfile comment and the workspace: dependency references) - Log path for the failed run: /root/.npm/_logs/2026-03-19T07_48_01_976Z-debug-0.log Missing packages/files - None explicitly listed; error arises from an unsupported workspace URL type rather than a missing package. Version information - npm notice: New minor version of npm available! 11.9.0 -> 11.12.0 - To update: npm install -g npm@11.12.0 Summary The build fails at the npm install step due to an unsupported workspace URL type (workspace:*) with exit code 1, likely related to npm/workspaces support in the image. A newer npm version is available.
# Node / workspace dependencies node_modules/ **/node_modules/ # Git .git/ # Environment and caches .env .env.* .env.test* .vscode/ # Build outputs dist/ build/ .output/ # Bun related bun.lock bunfig.toml # Misc .DS_Store coverage/ """
- Exact error message and exit code - npm error code EUNSUPPORTEDPROTOCOL - npm error Unsupported URL Type "workspace:": workspace:* - exit code: 1 - The overall failure: "ERROR: failed to build: failed to solve: process "/bin/sh -c npm install" did not complete successfully: exit code: 1" - Failing command/step - [builder 8/10] RUN npm install (Dockerfile:16) - Context: Install dependencies for the monorepo using npm workspaces - Missing packages or files mentioned - No explicit missing packages or files listed; error relates to npm workspace URL type (workspace:*) - Version mismatch info - New minor version of npm available! 11.9.0 -> 11.12.0 - Additional reference - A complete log of this run can be found in: /root/.npm/_logs/2026-03-19T07_49_54_840Z-debug-0.log
FROM node:lts AS builder
WORKDIR /app
# Install system dependencies and Bun
RUN apt-get update && \
apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
# Copy lockfiles and workspace manifests
COPY bun.lock package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies (workspace-aware)
RUN bun install
# Copy source code
COPY . .
# Build both applications
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production runtime image
FROM node:lts AS runtime
WORKDIR /app
# Bun runtime configuration
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
# Copy Bun from builder
COPY --from=builder /root/.bun /root/.bun
# Non-root user for runtime
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Prepare runtime directories
RUN mkdir -p /app/apps/server/dist /app/packages/db /app/apps/web/.next
# Copy built artifacts from builder
COPY --from=builder --chown=nodejs:nodejs /app/apps/server/dist /app/apps/server/dist
COPY --from=builder --chown=nodejs:nodejs /app/apps/web/.next /app/apps/web/.next
COPY --from=builder --chown=nodejs:nodejs /app/packages/db /app/packages/db
# Switch to non-root user
USER nodejs
# Expose ports for server and web
EXPOSE 1284 3000
# Startup script to run both services
RUN printf "%s\n" "#!/bin/sh" "set -e" "cd /app/apps/server" "bun dist/index.js &" "PID1=\$!" "cd /app/apps/web" "bun run ./build-start-folder/apps/web/server.js &" "PID2=\$!" "wait -n \$PID1 \$PID2" "exit_status=\$?" "wait \$PID2" "exit \$exit_status" > /usr/local/bin/start-nimbus.sh \
&& chmod +x /usr/local/bin/start-nimbus.sh
CMD ["/bin/sh", "-c", "/usr/local/bin/start-nimbus.sh"]
FROM node:lts AS builder
WORKDIR /app
# Install system dependencies and Bun
RUN apt-get update && \
apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
# Copy lockfiles and workspace manifests
COPY bun.lock package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies (workspace-aware)
RUN bun install
# Copy source code
COPY . .
# Build both applications
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production runtime image
FROM node:lts AS runner
WORKDIR /app
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy Bun and dependencies from builder
COPY --from=builder /root/.bun /root/.bun
COPY --from=builder /app/node_modules /app/node_modules
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/packages/db /app/packages/db
# Switch to non-root user
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
# Start the server
CMD ["bun", "dist/index.js"]
# Exclude local development files and heavy directories .git/ .node_modules/ node_modules/ dist/ build/ coverage/ .env .env.local .env.* *.log .vscode/ .idea/ __pycache__/ .DS_Store # Exclude Docker related files from the build context if not needed docker-compose.yml Dockerfile
Summary (under 1500 chars): - Exact error message and exit code: ERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref dm0crafjnw8l43ifl6uhde0ck::kk6wdjmj2tub9epdkk7y99l79: "/bun.lock": not found Exit code: not shown in log - Failing command/step: [builder 5/13] COPY bun.lock package.json ./: - Missing packages or files mentioned: - Missing file: bun.lock (not found) - Note: log also shows a warning that bun.lock is excluded by .dockerignore (line 15) - Version mismatch info: - No version mismatch info provided. Base images involved include node:lts and node:lts-bookworm (as shown in the build steps).
FROM node:lts AS builder
WORKDIR /app
# Install system dependencies and Bun
RUN apt-get update && \
apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
# Copy lockfiles and workspace manifests
COPY package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies (workspace-aware)
RUN bun install
# Copy source code
COPY . .
# Build both applications
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production runtime image
FROM node:lts AS runner
WORKDIR /app
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy Bun and dependencies from builder
COPY --from=builder /root/.bun /root/.bun
COPY --from=builder /app/node_modules /app/node_modules
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/packages/db /app/packages/db
# Switch to non-root user
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
# Start the server
CMD ["bun", "dist/index.js"]
FROM node:lts AS builder
WORKDIR /app
# Install system dependencies and Bun
RUN apt-get update && \
apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
# Copy lockfiles and workspace manifests
COPY bun.lock* package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies (workspace-aware)
RUN bun install
# Copy source code
COPY . .
# Build both applications
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production runtime image
FROM node:lts AS runner
WORKDIR /app
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy Bun and dependencies from builder
COPY --from=builder /root/.bun /root/.bun
COPY --from=builder /app/node_modules /app/node_modules
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/packages/db /app/packages/db
# Switch to non-root user
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
# Start the server
CMD ["bun", "dist/index.js"]
Summary (under 1500 chars): - Failing step: [builder 9/13] RUN bun install - Exit code: 1 - Exact error messages: - bun install v1.3.11 (af24e281) - warn: incorrect peer dependency "@polar-sh/sdk@0.42.5" - error: Workspace dependency "@nimbus/server" not found - Searched in "./*" - Workspace documentation: https://bun.com/docs/install/workspaces - error: @nimbus/server@workspace:* failed to resolve - Dockerfile:21 - ERROR: failed to build: failed to solve: process "/bin/sh -c bun install" did not complete successfully: exit code: 1 - Missing packages/files mentioned: The workspace dependency "@nimbus/server" is not found (i.e., missing @nimbus/server in the workspace config or project layout) - Version mismatch info: "warn: incorrect peer dependency "@polar-sh/sdk@0.42.5""
FROM oven/bun AS builder
WORKDIR /app
# Install system dependencies and Bun
RUN apt-get update && \
apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
# Copy lockfiles and workspace manifests
COPY bun.lock package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Convert workspace dependencies to local file references for Bun
RUN sed -i 's/"@nimbus/auth": "workspace:\*"/"@nimbus/auth": "file:../../packages/auth"/g' apps/server/package.json && \
sed -i 's/"@nimbus/cache": "workspace:\*"/"@nimbus/cache": "file:../../packages/cache"/g' apps/server/package.json && \
sed -i 's/"@nimbus/db": "workspace:\*"/"@nimbus/db": "file:../../packages/db"/g' apps/server/package.json && \
sed -i 's/"@nimbus/env": "workspace:\*"/"@nimbus/env": "file:../../packages/env"/g' apps/server/package.json && \
sed -i 's/"@nimbus/shared": "workspace:\*"/"@nimbus/shared": "file:../../packages/shared"/g' apps/server/package.json
RUN sed -i 's/"@nimbus/auth": "workspace:\*"/"@nimbus/auth": "file:../../packages/auth"/g' apps/web/package.json && \
sed -i 's/"@nimbus/env": "workspace:\*"/"@nimbus/env": "file:../../packages/env"/g' apps/web/package.json && \
sed -i 's/"@nimbus/server": "workspace:\*"/"@nimbus/server": "file:../../apps/server"/g' apps/web/package.json && \
sed -i 's/"@nimbus/shared": "workspace:\*"/"@nimbus/shared": "file:../../packages/shared"/g' apps/web/package.json
# Install dependencies
RUN bun install
# Copy source
COPY . .
# Build
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
FROM oven/bun AS runner
WORKDIR /app
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy Bun from builder
COPY --from=builder /root/.bun /root/.bun
# Copy built artifacts
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/packages/db /app/packages/db
# Optional: copy node_modules to runtime for Bun to resolve quickly
COPY --from=builder /app/node_modules /app/node_modules
# Switch to non-root user
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
# Start the server
CMD ["bun", "dist/index.js"]
- Build status: build_failed
- Runtime module-resolution concern
- Working dir: /app/apps/server
- Bun would resolve modules relative to /app/apps/server/node_modules (not /app/node_modules)
- Final stage copies /app/node_modules to /app/node_modules, causing missing modules
- Fix: copy node_modules into /app/apps/server/node_modules (or adjust working dir/module paths)
- Optional: add a .dockerignore to avoid sending large/irrelevant files (Dockerfile uses COPY . .)
- Build error details
- Base image: docker.io/oven/bun:latest (sha256:0733e50325078969732ebe3b15ce4c4be5082f18c4ac1a0f0ca4839c2e4e42a7)
- Step [builder 5/15] failed: COPY bun.lock package.json ./:
- Error: bun.lock not found in build context (checksum calculation failed for ref dm0crafjnw8l43ifl6uhde0ck::vo9umnw6ba0k5wzhmbbj0jduc: "/bun.lock": not found)
- Warning: CopyIgnoredFile: Attempting to Copy file "bun.lock" that is excluded by .dockerignore (line 15)
- Dockerfile excerpts:
- 15: COPY bun.lock package.json ./
- 16: COPY apps/server/package.json ./apps/server/
- 17: COPY apps/web/package.json ./apps/web/
- Actionable next steps
- Ensure bun.lock exists in the build context (project root) and is not excluded by .dockerignore
- If bun.lock should be copied, remove its exclusion from .dockerignore or adjust path
- Alternatively, remove the COPY bun.lock package.json ./ step if bun.lock is not needed for this build
- Verify that bun.lock is accessible before running the build again (context size and paths may affect visibility)FROM oven/bun AS builder
WORKDIR /app
# Install system dependencies
RUN apt-get update && \
apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
# Copy workspace manifests (no bun.lock to avoid build context issues)
COPY package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies (workspace-aware)
RUN bun install
# Copy source code
COPY . .
# Build both applications
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production runtime image
FROM oven/bun AS runner
WORKDIR /app
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy Bun from builder
COPY --from=builder /root/.bun /root/.bun
# Copy built artifacts
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/packages/db /app/packages/db
# Copy node_modules to server's node_modules path for runtime resolution
COPY --from=builder /app/node_modules /app/node_modules
# Switch to non-root user
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
# Start the server
CMD ["bun", "dist/index.js"]
FROM oven/bun AS builder
WORKDIR /app
ARG VITE_BACKEND_URL
ARG VITE_FRONTEND_URL
ENV VITE_BACKEND_URL=${VITE_BACKEND_URL}
ENV VITE_FRONTEND_URL=${VITE_FRONTEND_URL}
# Copy package files for dependency installation
COPY package.json bun.lock ./
COPY apps/web/package.json ./apps/web/
COPY apps/server/package.json ./apps/server/
COPY packages/ ./packages/
# Install dependencies
RUN bun install
# Copy source code
COPY . .
# Build the application from web directory
WORKDIR /app/apps/web
RUN bun run build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production image
FROM oven/bun AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=3000
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy built assets
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/apps/web/public /app/apps/web/public
COPY --from=builder /app/packages/db /app/packages/db
# Copy node_modules for runtime
COPY --from=builder /app/node_modules /app/node_modules
USER nodejs
WORKDIR /app/apps/web
EXPOSE 3000
CMD ["bun", "run", "start"]
FROM oven/bun AS builder
WORKDIR /app
# Install system dependencies
RUN apt-get update && \
apt-get install -y curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
# Copy workspace manifests (no bun.lock to avoid build context issues)
COPY package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies (workspace-aware)
RUN bun install
# Copy source code
COPY . .
# Build both applications
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production runtime image
FROM oven/bun AS runner
WORKDIR /app
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy Bun from builder
COPY --from=builder /root/.bun /root/.bun
# Copy built artifacts
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/packages/db /app/packages/db
# Copy node_modules for runtime (helps Bun resolve workspace deps)
COPY --from=builder /app/node_modules /app/node_modules
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
# Start the server
CMD ["bun", "dist/index.js"]
- Exact error message and exit code - error: unzip is required to install bun (exit code: 1) - Failing command/step - [builder 4/13] RUN curl -fsSL https://bun.sh/install | bash - Missing packages or files mentioned - unzip is required to install bun (unzip is not installed in the image) - Version mismatch info - Base image: FROM docker.io/oven/bun:latest@sha256:0733e50325078969732ebe3b15ce4c4be5082f18c4ac1a0f0ca4839c2e4e42a7 - Context shows Debian trixie (Debian 13) in the build, but there is no explicit Bun version specified; failure is due to missing unzip rather than a Bun version mismatch. Notes - Suggested fix: install unzip before running Bun’s install script, e.g., apt-get update && apt-get install -y unzip, then retry the Bun install.
# Nimbus cloud storage
FROM oven/bun AS builder
WORKDIR /app
# Install system dependencies
RUN apt-get update && \
apt-get install -y curl ca-certificates gnupg build-essential git unzip
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
# Copy workspace manifests (no bun.lock to avoid build context issues)
COPY package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies (workspace-aware)
RUN bun install
# Copy source code
COPY . .
# Build both applications
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
FROM oven/bun AS runner
WORKDIR /app
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy Bun from builder
COPY --from=builder /root/.bun /root/.bun
# Copy built artifacts
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/packages/db /app/packages/db
# Copy node_modules for runtime (helps Bun resolve workspace deps)
COPY --from=builder /app/node_modules /app/node_modules
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
# Start the server
CMD ["bun", "dist/index.js"]
#0 building with "default" instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: 1.51kB done #1 DONE 0.1s #2 [internal] load metadata for docker.io/oven/bun:latest #2 DONE 0.6s #3 [internal] load .dockerignore #3 transferring context: 282B done #3 DONE 0.1s #4 [internal] load build context #4 DONE 0.0s #5 [builder 1/13] FROM docker.io/oven/bun:latest@sha256:0733e50325078969732ebe3b15ce4c4be5082f18c4ac1a0f0ca4839c2e4e42a7 #5 resolve docker.io/oven/bun:latest@sha256:0733e50325078969732ebe3b15ce4c4be5082f18c4ac1a0f0ca4839c2e4e42a7 0.1s done #5 DONE 0.1s #6 [builder 2/13] WORKDIR /app #6 CACHED #7 [builder 3/13] RUN apt-get update && apt-get install -y curl ca-certificates gnupg build-essential git #7 CACHED #8 [runner 3/9] RUN groupadd -r nodejs && useradd -r -g nodejs nodejs #8 CACHED #4 [internal] load build context #4 transferring context: 21.19kB 0.0s done #4 DONE 0.2s #9 [builder 4/13] RUN curl -fsSL https://bun.sh/install | bash #9 0.564 error: unzip is required to install bun #9 ERROR: process "/bin/sh -c curl -fsSL https://bun.sh/install | bash" did not complete successfully: exit code: 1 ------ > [builder 4/13] RUN curl -fsSL https://bun.sh/install | bash: 0.564 error: unzip is required to install bun ------ Dockerfile:9 -------------------- 7 | 8 | # Install Bun 9 | >>> RUN curl -fsSL https://bun.sh/install | bash 10 | 11 | ENV BUN_INSTALL=/root/.bun -------------------- ERROR: failed to build: failed to solve: process "/bin/sh -c curl -fsSL https://bun.sh/install | bash" did not complete successfully: exit code: 1
FROM oven/bun AS builder
WORKDIR /app
# Install system dependencies (include unzip for bun install)
RUN apt-get update && \
apt-get install -y unzip curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
# Copy lockfiles and workspace manifests
COPY bun.lock package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Install dependencies (workspace-aware)
RUN bun install
# Copy source code
COPY . .
# Build both applications
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
# Production runtime image
FROM oven/bun AS runner
WORKDIR /app
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy Bun from builder
COPY --from=builder /root/.bun /root/.bun
# Copy built artifacts
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/packages/db /app/packages/db
# Copy node_modules for runtime (helps Bun resolve workspace deps)
COPY --from=builder /app/node_modules /app/node_modules
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
# Start both server and web in parallel
CMD ["/bin/sh", "-c", "/usr/local/bin/start-nimbus.sh"]
# Exclude local development files .git/ node_modules/ dist/ build/ .env .env.* *.log .DS_Store
- Failing step: Builder 9/13 - RUN bun install - Exit code: 1 (the log ends with: "ERROR: ... bun install" and "exit code: 1") - Exact error messages (preserved): - Workspace dependency "@nimbus/server" not found - @nimbus/server@workspace:* failed to resolve - Missing packages/files mentioned: - Missing workspace package: @nimbus/server ( Bun could not find this workspace package; Bun searched in "./*" as part of workspace resolution) - Version/mismatch info: - bun install v1.3.11 (af24e281) used during the failing step - Bun’s workspace docs link shown: https://bun.com/docs/install/workspaces Notes: - The build fails because the workspace dependency @nimbus/server is not present or not defined correctly in the monorepo/workspaces config. Check the root package.json or bunfig.toml (or equivalent Bun workspace config) and ensure @nimbus/server is defined and the package is available at the expected path.
FROM oven/bun AS builder
WORKDIR /app
# Install system dependencies (include unzip for bun install)
RUN apt-get update && \
apt-get install -y unzip curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
# Copy lockfiles and workspace manifests
COPY bun.lock package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Replace workspace references with local file references for Bun
RUN sed -i 's/"@nimbus/auth": "workspace:\\*"/"@nimbus/auth": "file:../../packages/auth"/g' apps/server/package.json && \
sed -i 's/"@nimbus/cache": "workspace:\\*"/"@nimbus/cache": "file:../../packages/cache"/g' apps/server/package.json && \
sed -i 's/"@nimbus/db": "workspace:\\*"/"@nimbus/db": "file:../../packages/db"/g' apps/server/package.json && \
sed -i 's/"@nimbus/env": "workspace:\\*"/"@nimbus/env": "file:../../packages/env"/g' apps/server/package.json && \
sed -i 's/"@nimbus/shared": "workspace:\\*"/"@nimbus/shared": "file:../../packages/shared"/g' apps/server/package.json
RUN sed -i 's/"@nimbus/auth": "workspace:\\*"/"@nimbus/auth": "file:../../packages/auth"/g' apps/web/package.json && \
sed -i 's/"@nimbus/env": "workspace:\\*"/"@nimbus/env": "file:../../packages/env"/g' apps/web/package.json && \
sed -i 's/"@nimbus/server": "workspace:\\*"/"@nimbus/server": "file:../../apps/server"/g' apps/web/package.json && \
sed -i 's/"@nimbus/shared": "workspace:\\*"/"@nimbus/shared": "file:../../packages/shared"/g' apps/web/package.json
# Install dependencies (workspace-aware via local file references)
RUN bun install
# Copy source code
COPY . .
# Build both applications
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
FROM oven/bun AS runner
WORKDIR /app
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy Bun from builder
COPY --from=builder /root/.bun /root/.bun
# Copy built artifacts
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/packages/db /app/packages/db
# Copy node_modules for runtime (helps Bun resolve workspace deps)
COPY --from=builder /app/node_modules /app/node_modules
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
# Start the server
CMD ["bun", "dist/index.js"]
{
"name": "nimbus",
"version": "0.0.0",
"devDependencies": {
"@changesets/cli": "^2.29.5",
"glob": "^11.0.3",
"husky": "^9.1.7",
"knip": "^5.62.0",
"lint-staged": "^16.1.4",
"oxlint": "^1.9.0",
"prettier": "^3.6.2",
"prettier-plugin-sort-imports": "^1.8.8",
"prettier-plugin-tailwindcss": "^0.6.14",
"turbo": "^2.5.6",
"typescript": "^5.9.2"
},
"packageManager": "bun@1.2.17",
"private": true,
"scripts": {
"dev": "turbo dev",
"dev:up": "docker compose up -d db cache",
"dev:web": "bun --elide-lines 0 --filter @nimbus/web --env-file .env dev",
"dev:server": "bun --elide-lines 0 --filter @nimbus/server --env-file .env dev",
"dev:down": "docker compose down",
"dev:reset": "docker compose down && docker compose up -d db cache",
"build": "turbo build",
"start": "turbo start",
"db:push": "bun --elide-lines 0 --filter @nimbus/db --env-file .env push",
"env:sync": "bun run scripts/copy-env-files.ts",
"env:clean": "bun run scripts/delete-child-env-files.ts",
"docker:build": "docker compose build",
"docker:up": "docker compose up",
"docker:down": "docker compose down",
"docker:reset": "bun run docker:remove && bun run docker:up",
"docker:remove": "docker compose down --rmi local -v",
"lint": "bun run oxlint --fix",
"knip": "knip-bun --config knip.config.ts",
"format": "bun prettier . --write --list-different",
"prepare": "husky"
},
"type": "module",
"workspaces": [
"apps/*",
"packages/*"
]
}
FROM oven/bun AS builder
WORKDIR /app
# Install system dependencies (include unzip for bun install)
RUN apt-get update && \
apt-get install -y unzip curl ca-certificates gnupg build-essential git
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
# Copy lockfiles and workspace manifests
COPY bun.lock package.json ./
COPY apps/server/package.json ./apps/server/
COPY apps/web/package.json ./apps/web/
COPY packages/ ./packages/
# Patch workspace references to local file paths to avoid Bun workspace resolution issues
RUN sed -i 's/"@nimbus/auth": "workspace:\\*"/"@nimbus/auth": "file:../../packages/auth"/g' apps/server/package.json && \
sed -i 's/"@nimbus/cache": "workspace:\\*"/"@nimbus/cache": "file:../../packages/cache"/g' apps/server/package.json && \
sed -i 's/"@nimbus/db": "workspace:\\*"/"@nimbus/db": "file:../../packages/db"/g' apps/server/package.json && \
sed -i 's/"@nimbus/env": "workspace:\\*"/"@nimbus/env": "file:../../packages/env"/g' apps/server/package.json && \
sed -i 's/"@nimbus/shared": "workspace:\\*"/"@nimbus/shared": "file:../../packages/shared"/g' apps/server/package.json
RUN sed -i 's/"@nimbus/auth": "workspace:\\*"/"@nimbus/auth": "file:../../packages/auth"/g' apps/web/package.json && \
sed -i 's/"@nimbus/env": "workspace:\\*"/"@nimbus/env": "file:../../packages/env"/g' apps/web/package.json && \
sed -i 's/"@nimbus/server": "workspace:\\*"/"@nimbus/server": "file:../../apps/server"/g' apps/web/package.json && \
sed -i 's/"@nimbus/shared": "workspace:\\*"/"@nimbus/shared": "file:../../packages/shared"/g' apps/web/package.json
# Install dependencies (workspace-aware via local file references)
RUN bun install
# Copy source code
COPY . .
# Build both applications
RUN bun run --cwd apps/server build
RUN bun run --cwd apps/web build
RUN bash scripts/handle-nextjs-standalone-build.sh
FROM oven/bun AS runner
WORKDIR /app
ENV BUN_INSTALL=/root/.bun
ENV PATH="${BUN_INSTALL}/bin:${PATH}"
ENV NODE_ENV=production
ENV PORT=1284
# Create non-root user
RUN groupadd -r nodejs && useradd -r -g nodejs nodejs
# Copy Bun from builder
COPY --from=builder /root/.bun /root/.bun
# Copy built artifacts
COPY --from=builder /app/apps/server/dist /app/apps/server/dist
COPY --from=builder /app/apps/web/.next /app/apps/web/.next
COPY --from=builder /app/packages/db /app/packages/db
# Copy node_modules for runtime (helps Bun resolve workspace deps)
COPY --from=builder /app/node_modules /app/node_modules
USER nodejs
WORKDIR /app/apps/server
EXPOSE 1284
# Start the server
CMD ["bun", "dist/index.js"]