Swap Dockerfile runtime to ruby-rails-runtime #29

Open
opened 2026-06-08 03:19:56 +00:00 by ldraney · 0 comments
Owner

Type

Feature

Lineage

Follow-up from spike #18 (docs/pipeline.md — Runtime Image Alignment Spike).

Repo

ldraney/palinks + ldraney/pal-e-deployments

User Story

As a developer
I want the Dockerfile to use the platform-standard runtime image
So that palinks stays aligned with the platform and reduces maintenance

Context

Palinks builds its runtime stage from ruby:3.4.9-slim with 27 lines of manual setup. The platform has ruby-rails-runtime in Harbor that pre-bakes all of this. The spike verified every line is equivalent. Switch also moves from port 80 to 3000 for platform consistency. CMD changes from rails server to explicit bundle exec puma to avoid dev middleware overhead.

File Targets

palinks repo:

  • Dockerfile — replace runtime stage with ruby-rails-runtime, change EXPOSE to 3000, change CMD
  • docs/pipeline.md — update mermaid diagram note ("ruby-slim final image" -> "ruby-rails-runtime")

pal-e-deployments repo:

  • overlays/palinks/prod/deployment-patch.yaml — probe ports 80->3000
  • overlays/palinks/prod/kustomization.yaml — containerPort + Service ports 80->3000

Feature Flag

None — infrastructure change, not user-facing behavior.

Acceptance Criteria

  • Dockerfile runtime stage uses harbor.tail5b443a.ts.net/library/ruby-rails-runtime:latest
  • Runtime stage is ~8 lines (down from ~27)
  • App serves on port 3000
  • Pipeline builds successfully
  • Deploy completes with rolling update
  • Health check passes at /up

Test Expectations

  • CI pipeline: Woodpecker build succeeds
  • Manual: curl https://palinks.tail5b443a.ts.net/up returns 200 after deploy
  • Manual: verify app loads correctly in browser

Constraints

  • config/puma.rb already reads PORT env with 3000 default — no change needed
  • .woodpecker.yaml unchanged — Kaniko builds from Dockerfile
  • docker-compose.yml uses build image, unaffected

Checklist

  • PR opened (palinks)
  • PR opened (pal-e-deployments)
  • Both deploy successfully
  • No unrelated changes
  • project-palinks — project page
  • docs/pipeline.md — spike findings
### Type Feature ### Lineage Follow-up from spike #18 (`docs/pipeline.md` — Runtime Image Alignment Spike). ### Repo `ldraney/palinks` + `ldraney/pal-e-deployments` ### User Story As a developer I want the Dockerfile to use the platform-standard runtime image So that palinks stays aligned with the platform and reduces maintenance ### Context Palinks builds its runtime stage from `ruby:3.4.9-slim` with 27 lines of manual setup. The platform has `ruby-rails-runtime` in Harbor that pre-bakes all of this. The spike verified every line is equivalent. Switch also moves from port 80 to 3000 for platform consistency. CMD changes from `rails server` to explicit `bundle exec puma` to avoid dev middleware overhead. ### File Targets **palinks repo:** - `Dockerfile` — replace runtime stage with `ruby-rails-runtime`, change EXPOSE to 3000, change CMD - `docs/pipeline.md` — update mermaid diagram note ("ruby-slim final image" -> "ruby-rails-runtime") **pal-e-deployments repo:** - `overlays/palinks/prod/deployment-patch.yaml` — probe ports 80->3000 - `overlays/palinks/prod/kustomization.yaml` — containerPort + Service ports 80->3000 ### Feature Flag None — infrastructure change, not user-facing behavior. ### Acceptance Criteria - [ ] Dockerfile runtime stage uses `harbor.tail5b443a.ts.net/library/ruby-rails-runtime:latest` - [ ] Runtime stage is ~8 lines (down from ~27) - [ ] App serves on port 3000 - [ ] Pipeline builds successfully - [ ] Deploy completes with rolling update - [ ] Health check passes at `/up` ### Test Expectations - [ ] CI pipeline: Woodpecker build succeeds - [ ] Manual: `curl https://palinks.tail5b443a.ts.net/up` returns 200 after deploy - [ ] Manual: verify app loads correctly in browser ### Constraints - `config/puma.rb` already reads `PORT` env with 3000 default — no change needed - `.woodpecker.yaml` unchanged — Kaniko builds from Dockerfile - `docker-compose.yml` uses build image, unaffected ### Checklist - [ ] PR opened (palinks) - [ ] PR opened (pal-e-deployments) - [ ] Both deploy successfully - [ ] No unrelated changes ### Related - `project-palinks` — project page - `docs/pipeline.md` — spike findings
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/palinks#29
No description provided.