Fix frontend nginx to use Railway PORT variable

- Use envsubst to inject PORT at runtime
- Template nginx.conf with ${PORT} placeholder

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Michael Chihlas
2026-01-31 23:29:05 -05:00
parent f6bc4b0e40
commit c2c126d0cd
2 changed files with 7 additions and 5 deletions

View File

@@ -22,13 +22,15 @@ RUN npm run build
# Production stage
FROM nginx:alpine
# Copy custom nginx config
COPY nginx.conf /etc/nginx/conf.d/default.conf
# Copy custom nginx config template
COPY nginx.conf /etc/nginx/templates/default.conf.template
# Copy built files from builder stage
COPY --from=builder /app/dist /usr/share/nginx/html
# Expose port
# Railway uses PORT env variable (default to 80 for local)
ENV PORT=80
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
# Use envsubst to replace ${PORT} in nginx config, then start nginx
CMD sh -c "envsubst '\$PORT' < /etc/nginx/templates/default.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"

View File

@@ -1,5 +1,5 @@
server {
listen 80;
listen ${PORT};
server_name _;
root /usr/share/nginx/html;
index index.html;