a month ago
Description:
Environment
Monorepo Type: Turborepo with Bun
Project Structure: Multi-service monorepo with shared packages
CLI Version: Latest Railway CLI
Deployment Method:
railway upcommand
Project Structure
.
├── apps/
│ ├── backend/
│ ├── dex-monitor/ # Service I'm trying to deploy
│ │ ├── Dockerfile
│ │ ├── package.json
│ │ └── src/
│ ├── dex-bot/
│ └── ... (7 more apps)
└── packages/ # Shared workspace packages
├── api-sdk/
├── dex-engine/
├── logger/
└── ... (10 more packages)Issue Description
I'm attempting to deploy a single service (apps/dex-monitor) from my monorepo that depends on shared packages in packages/*. The build consistently fails with a dockerfile path error.
Configuration Attempted
Dashboard Settings:
Builder: Dockerfile
Dockerfile Path:
apps/dex-monitor/Dockerfile(no leading slash)
Commands Tried
bash
# Command 1
railway up --service dex-monitor
# Command 2
railway up --service dex-monitor --dockerfile apps/dex-monitor/Dockerfile
```
### Build Error Output
```
scheduling build on Metal builder "builder-ghemuq"
[snapshot] receiving snapshot, complete 12 MB [took 3.107177548s]
[snapshot] unpacking archive, complete 15 MB [took 147.073458ms]
internal
load build definition from /apps/dex-monitor/Dockerfile
0ms
Build Failed: bc.Build: failed to solve: failed to read dockerfile: open /apps/dex-monitor/Dockerfile: no such file or directoryKey Observations
The error shows Railway is looking for
/apps/dex-monitor/Dockerfile(with leading slash) even though I specifiedapps/dex-monitor/Dockerfile(relative path)The Dockerfile definitely exists at
apps/dex-monitor/Dockerfilein my repositoryThe snapshot uploads successfully (12 MB)
Without the Dockerfile configuration, Railway defaults to Railpack and fails with "No start command was found"
Dockerfile Overview
My Dockerfile is a multi-stage build that:
Copies shared packages from
packages/*Installs dependencies with Bun
Builds the service
Creates a production image
The Dockerfile uses paths like:
dockerfile
COPY --chown=appuser:appgroup packages/api-sdk ./packages/api-sdk
COPY --chown=appuser:appgroup apps/dex-monitor ./apps/dex-monitorWhat I've Already Tried
Verified Dockerfile exists at the specified path
Tried both CLI flag and railway.toml configuration
Tried with and without leading slash in path
Created comprehensive .dockerignore to reduce upload size
Confirmed builder is set to "dockerfile" (lowercase)
Tested from both CLI and Dashboard configurations
Expected Behavior
Railway should read the Dockerfile from apps/dex-monitor/Dockerfile relative to the project root and build the Docker image successfully.
Additional Context
This is a production service that needs to share code with other services in the monorepo. Other services (backend, dex-bot, wallet-tracker) will also need similar deployment configurations.
Any guidance on the correct monorepo + multi-service deployment pattern would be greatly appreciated!
2 Replies
a month ago
Hey there! We've found the following might help you get unblocked faster:
If you find the answer from one of these, please let us know by solving the thread!
Railway
Hey there! We've found the following might help you get unblocked faster: - [🧵 Dockerfile Path](https://station.railway.com/questions/dockerfile-path-4bb0a017) - [🧵 npm error path /app](https://station.railway.com/questions/npm-error-path-app-b179d84a) - [🧵 Deploy keeps failing at database error](https://station.railway.com/questions/deploy-keeps-failing-at-database-error-efcfe072) If you find the answer from one of these, please let us know by solving the thread!
a month ago
Haven't fixed it yet