GCP: fix Dockerfile.production for Cloud Build and add config files
This commit is contained in:
parent
b7df99f14c
commit
1406098569
71
.gcloudignore
Normal file
71
.gcloudignore
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# Cloud Build ignore file
|
||||||
|
# Note: This overrides .gitignore for gcloud builds submit
|
||||||
|
|
||||||
|
# Large directories not needed for build
|
||||||
|
.git
|
||||||
|
.worktrees
|
||||||
|
.bun-cache
|
||||||
|
.bun
|
||||||
|
.tmp
|
||||||
|
**/.tmp
|
||||||
|
.DS_Store
|
||||||
|
**/.DS_Store
|
||||||
|
|
||||||
|
# Media files
|
||||||
|
*.png
|
||||||
|
*.jpg
|
||||||
|
*.jpeg
|
||||||
|
*.webp
|
||||||
|
*.gif
|
||||||
|
*.mp4
|
||||||
|
*.mov
|
||||||
|
*.wav
|
||||||
|
*.mp3
|
||||||
|
|
||||||
|
# Dependencies (will be installed fresh)
|
||||||
|
node_modules
|
||||||
|
**/node_modules
|
||||||
|
.pnpm-store
|
||||||
|
**/.pnpm-store
|
||||||
|
.turbo
|
||||||
|
**/.turbo
|
||||||
|
.cache
|
||||||
|
**/.cache
|
||||||
|
.next
|
||||||
|
**/.next
|
||||||
|
coverage
|
||||||
|
**/coverage
|
||||||
|
*.log
|
||||||
|
tmp
|
||||||
|
**/tmp
|
||||||
|
|
||||||
|
# Build artifacts (not needed, we rebuild)
|
||||||
|
dist
|
||||||
|
**/dist
|
||||||
|
apps/macos/.build
|
||||||
|
apps/ios/build
|
||||||
|
**/*.trace
|
||||||
|
|
||||||
|
# Large app trees not needed for Docker build
|
||||||
|
apps/
|
||||||
|
Peekaboo/
|
||||||
|
Swabble/
|
||||||
|
Core/
|
||||||
|
Users/
|
||||||
|
vendor/
|
||||||
|
|
||||||
|
# Keep assets, skills, extensions, docs (needed for runtime)
|
||||||
|
!assets/
|
||||||
|
!skills/
|
||||||
|
!extensions/
|
||||||
|
!docs/
|
||||||
|
|
||||||
|
# Local files
|
||||||
|
.env
|
||||||
|
.conda-env
|
||||||
|
.envrc
|
||||||
|
.local/
|
||||||
|
.vscode/
|
||||||
|
IDENTITY.md
|
||||||
|
USER.md
|
||||||
|
.serena/
|
||||||
@ -35,7 +35,8 @@ ENV CLAWDBOT_PREFER_PNPM=1
|
|||||||
RUN pnpm ui:install
|
RUN pnpm ui:install
|
||||||
RUN pnpm ui:build
|
RUN pnpm ui:build
|
||||||
|
|
||||||
# Prune dev dependencies for production
|
# Prune dev dependencies for production (CI=true avoids TTY prompt)
|
||||||
|
ENV CI=true
|
||||||
RUN pnpm prune --prod
|
RUN pnpm prune --prod
|
||||||
|
|
||||||
# --------------------------------------------
|
# --------------------------------------------
|
||||||
@ -52,17 +53,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Copy only production artifacts
|
# Copy only production artifacts (dist/ includes control-ui from ui:build)
|
||||||
COPY --from=builder /app/dist ./dist
|
COPY --from=builder /app/dist ./dist
|
||||||
COPY --from=builder /app/node_modules ./node_modules
|
COPY --from=builder /app/node_modules ./node_modules
|
||||||
COPY --from=builder /app/package.json ./
|
COPY --from=builder /app/package.json ./
|
||||||
COPY --from=builder /app/assets ./assets
|
|
||||||
COPY --from=builder /app/skills ./skills
|
|
||||||
COPY --from=builder /app/extensions ./extensions
|
|
||||||
COPY --from=builder /app/docs ./docs
|
|
||||||
|
|
||||||
# Copy UI build output if present
|
# Copy optional runtime directories if they exist (using wildcards for optional copy)
|
||||||
COPY --from=builder /app/ui/dist ./ui/dist
|
COPY --from=builder /app/skill[s] ./skills/
|
||||||
|
COPY --from=builder /app/extension[s] ./extensions/
|
||||||
|
COPY --from=builder /app/doc[s] ./docs/
|
||||||
|
|
||||||
# Create non-root user (node user already exists in node image)
|
# Create non-root user (node user already exists in node image)
|
||||||
RUN chown -R node:node /app
|
RUN chown -R node:node /app
|
||||||
@ -77,4 +76,4 @@ HEALTHCHECK --interval=60s --timeout=5s --retries=2 \
|
|||||||
|
|
||||||
ENV NODE_ENV=production
|
ENV NODE_ENV=production
|
||||||
|
|
||||||
CMD ["node", "dist/index.js", "gateway", "--bind", "lan", "--port", "18789"]
|
CMD ["node", "dist/index.js", "gateway", "--bind", "lan", "--port", "18789", "--allow-unconfigured"]
|
||||||
|
|||||||
15
cloudbuild.yaml
Normal file
15
cloudbuild.yaml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
steps:
|
||||||
|
- name: 'gcr.io/cloud-builders/docker'
|
||||||
|
args:
|
||||||
|
- 'build'
|
||||||
|
- '-f'
|
||||||
|
- 'Dockerfile.production'
|
||||||
|
- '-t'
|
||||||
|
- 'gcr.io/$PROJECT_ID/clawdbot:latest'
|
||||||
|
- '.'
|
||||||
|
timeout: '1800s'
|
||||||
|
|
||||||
|
images:
|
||||||
|
- 'gcr.io/$PROJECT_ID/clawdbot:latest'
|
||||||
|
|
||||||
|
timeout: '2400s'
|
||||||
Loading…
Reference in New Issue
Block a user