From 44606e2b785d4816ffd1740ce662b53c231bdf71 Mon Sep 17 00:00:00 2001 From: Ajax Davis Date: Thu, 15 Jan 2026 09:25:00 +1000 Subject: [PATCH] fix(executor): fix volume permissions on startup Adds startup script that fixes /data volume ownership before starting Deno. This resolves permission errors after cache clear operations. --- apps/railway-executor/Dockerfile | 9 +++++---- apps/railway-executor/start.sh | 7 +++++++ 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 apps/railway-executor/start.sh diff --git a/apps/railway-executor/Dockerfile b/apps/railway-executor/Dockerfile index 62d816b..e5a3675 100644 --- a/apps/railway-executor/Dockerfile +++ b/apps/railway-executor/Dockerfile @@ -4,7 +4,6 @@ FROM denoland/deno:1.39.0 # Install OpenSSH client for tools that need SSH access (e.g., exe-dev) USER root RUN apt-get update && apt-get install -y openssh-client && rm -rf /var/lib/apt/lists/* -USER deno # Set working directory WORKDIR /app @@ -12,11 +11,13 @@ WORKDIR /app # Set Deno cache directory to use mounted volume ENV DENO_DIR=/data -# Copy server file +# Copy server file and startup script COPY server.ts . +COPY start.sh . +RUN chmod +x start.sh # Expose port (Railway will set PORT env var) EXPOSE 3002 -# Run the Deno server -CMD ["deno", "run", "--allow-net", "--allow-env", "--allow-read", "--allow-write", "--allow-run", "server.ts"] +# Run startup script that fixes permissions then starts Deno as deno user +CMD ["./start.sh"] diff --git a/apps/railway-executor/start.sh b/apps/railway-executor/start.sh new file mode 100644 index 0000000..ba32779 --- /dev/null +++ b/apps/railway-executor/start.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# Fix permissions on the Deno cache directory (runs as root) +mkdir -p /data +chown -R deno:deno /data + +# Switch to deno user and run the server +exec su deno -c "deno run --allow-net --allow-env --allow-read --allow-write --allow-run server.ts"