Skip to content

Fix Railway Docker cache-mount build failures - #1599

Merged
BigSimmo merged 11 commits into
mainfrom
agent/fix-railway-cache-mounts
Aug 4, 2026
Merged

Fix Railway Docker cache-mount build failures#1599
BigSimmo merged 11 commits into
mainfrom
agent/fix-railway-cache-mounts

Conversation

@BigSimmo

@BigSimmoBigSimmo commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • remove Railway-incompatible BuildKit cache mounts from both production Dockerfiles
  • preserve install retries, pinned base images, image hardening, and runtime validation
  • add regression coverage preventing service-ID-coupled cache mounts from returning
  • keep GitHub's optional Buildx cache non-blocking and cap cache waits at two minutes
  • align deployment documentation with the portable image contract

Root cause

PR #1575 added --mount=type=cache directives using standard Docker syntax. Railway applies a stricter cache-ID contract and rejects these Dockerfiles during early build validation. PR #1596 added bare worker IDs, but Railway then rejected them for lacking its required cache-key prefix. PR #1597 remains worker-only and still does not fix the app Dockerfile.

Railway requires cache IDs to contain a hard-coded Railway service ID and does not allow an environment variable for that portion. Because this repository builds shared images in CI and deploys them to separate Railway services, removing the optional mounts is the smallest portable fix.

Verification

  • regression contract: red before the fix, green after it
  • app image: built and passed provider-free container smoke
  • worker image: built and passed network-isolated runtime validation
  • image-content and read-only runtime contracts: passed
  • unit coverage, static checks, safety/config, application build, Lighthouse: passed
  • SAST and secret scanning: passed
  • required PR aggregate: passed

No provider data, secrets, database schema, dependency versions, or runtime behavior changed.

@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in:55 minutes

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 764f8559-d008-4460-be98-357d41e28b5b

📥 Commits

Reviewing files that changed from the base of the PR and between c34b1a2 and a2c6343.

📒 Files selected for processing (5)
  • .github/workflows/docker-image.yml
  • Dockerfile
  • Dockerfile.worker
  • docs/deployment-architecture.md
  • tests/container-ci-contract.test.ts

Comment @coderabbitai help to get the list of available commands.

@supabase

supabaseBot commented Aug 3, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@github-actions

Copy link
Copy Markdown
Contributor

CI triage

CI failed on this PR. Automated classification of the 2 failed job(s):

  • Container images / build-and-verifyneeds investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.
  • PR requiredneeds investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.

Compared with main CI run #7908 (cancelled).

Classification is evidence routing, not permission to ignore a failure. Exact quarantined Playwright identities remain governed by the flake ledger.

@BigSimmo
BigSimmo marked this pull request as ready for review August 3, 2026 18:58
@BigSimmo
BigSimmo enabled auto-merge (squash) August 3, 2026 18:58

@devin-ai-integrationdevin-ai-integrationBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

View 1 additional finding in Devin Review.

Open in Devin Review

Comment threadDockerfile.worker Outdated
@BigSimmo
BigSimmo merged commit 5bfec9a into mainAug 4, 2026
31 checks passed
@BigSimmo
BigSimmo deleted the agent/fix-railway-cache-mounts branch August 4, 2026 00:59
cursorBot pushed a commit that referenced this pull request Aug 6, 2026
Drop BuildKit npm cache mounts that break Railway (#1599), cover
FIGMA_* in the Codex Cloud raw-env probe, allow the documented Figma
MCP in the Cursor co-resident set, and update the favourites auth
gate source contract for truthful Mode Favourites labeling.
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@BigSimmo