Spike: Align Dockerfile and pipeline with ruby-rails-runtime pattern #18

Closed
opened 2026-06-07 15:27:05 +00:00 by ldraney · 3 comments
Owner

Type

Spike

Lineage

Standalone — palinks Dockerfile diverges from the platform standard. landscaping-assistant uses ruby-rails-runtime from Harbor for the runtime stage; palinks uses ruby:3.4.9-slim from DockerHub and manually installs deps (jemalloc, postgresql-client, user setup). Need to align.

Repo

Multiple — palinks, pal-e-services, pal-e-deployments

Question

How should palinks' Dockerfile and pipeline be updated to use the shared ruby-rails-runtime image from Harbor?

Current divergence:

  • landscaping-assistant Dockerfile runtime stage: harbor.tail5b443a.ts.net/library/ruby-rails-runtime:latest
  • palinks Dockerfile runtime stage: docker.io/library/ruby:3.4.9-slim + manual apt-get, jemalloc, user creation

Sub-questions:

  • Does ruby-rails-runtime already include jemalloc, postgresql-client, and the rails user? If so, palinks can drop ~15 lines from its Dockerfile.
  • Does ruby-rails-runtime set the correct WORKDIR, ENV vars (BUNDLE_PATH, RAILS_ENV, etc.)?
  • What port does the runtime image expect? Palinks overrides to port 80 for prod — does the runtime image conflict?
  • Does the Woodpecker pipeline (.woodpecker.yaml) need changes? Currently uses ruby-rails-build for the build stage, which is already correct.
  • Does pal-e-deployments overlay need adjustment (image reference, health probe ports)?
  • Dev docker-compose: both repos use ruby-rails-build for dev — confirm this is still correct.
  • ArgoCD Image Updater: any impact on tag detection or sync?

Deliverables

  • docs/pipeline.md updated with findings on runtime image alignment
  • Follow-up ticket to update Dockerfile to use ruby-rails-runtime

Time-box

1 hour

  • palinks — Dockerfile to update
  • landscaping-assistant — reference implementation
  • pal-e-deployments — overlay may need port/image adjustment
### Type Spike ### Lineage Standalone — palinks Dockerfile diverges from the platform standard. `landscaping-assistant` uses `ruby-rails-runtime` from Harbor for the runtime stage; palinks uses `ruby:3.4.9-slim` from DockerHub and manually installs deps (jemalloc, postgresql-client, user setup). Need to align. ### Repo Multiple — `palinks`, `pal-e-services`, `pal-e-deployments` ### Question How should palinks' Dockerfile and pipeline be updated to use the shared `ruby-rails-runtime` image from Harbor? **Current divergence:** - `landscaping-assistant` Dockerfile runtime stage: `harbor.tail5b443a.ts.net/library/ruby-rails-runtime:latest` - `palinks` Dockerfile runtime stage: `docker.io/library/ruby:3.4.9-slim` + manual apt-get, jemalloc, user creation **Sub-questions:** - Does `ruby-rails-runtime` already include jemalloc, postgresql-client, and the rails user? If so, palinks can drop ~15 lines from its Dockerfile. - Does `ruby-rails-runtime` set the correct WORKDIR, ENV vars (BUNDLE_PATH, RAILS_ENV, etc.)? - What port does the runtime image expect? Palinks overrides to port 80 for prod — does the runtime image conflict? - Does the Woodpecker pipeline (`.woodpecker.yaml`) need changes? Currently uses `ruby-rails-build` for the build stage, which is already correct. - Does `pal-e-deployments` overlay need adjustment (image reference, health probe ports)? - Dev docker-compose: both repos use `ruby-rails-build` for dev — confirm this is still correct. - ArgoCD Image Updater: any impact on tag detection or sync? ### Deliverables - [ ] `docs/pipeline.md` updated with findings on runtime image alignment - [ ] Follow-up ticket to update Dockerfile to use `ruby-rails-runtime` ### Time-box 1 hour ### Related - `palinks` — Dockerfile to update - `landscaping-assistant` — reference implementation - `pal-e-deployments` — overlay may need port/image adjustment
Author
Owner

Scope Review: NEEDS_REFINEMENT

Review note: review-1380-2026-06-07

Spike scope is well-structured with all template sections present and file target claims verified against the codebase. Two platform-level traceability gaps prevent READY verdict:

  • [SCOPE] No project-palinks note exists in pal-e-docs -- story:containerize-palinks cannot be verified via the traceability triangle. Create project page with user-stories section.
  • [SCOPE] No arch-palinks note exists in pal-e-docs -- arch:palinks label has no backing note. Create architecture note.

The ticket content itself is solid -- these are missing backing notes, not scope problems.

## Scope Review: NEEDS_REFINEMENT Review note: `review-1380-2026-06-07` Spike scope is well-structured with all template sections present and file target claims verified against the codebase. Two platform-level traceability gaps prevent READY verdict: - **[SCOPE]** No `project-palinks` note exists in pal-e-docs -- story:containerize-palinks cannot be verified via the traceability triangle. Create project page with user-stories section. - **[SCOPE]** No `arch-palinks` note exists in pal-e-docs -- arch:palinks label has no backing note. Create architecture note. The ticket content itself is solid -- these are missing backing notes, not scope problems.
Author
Owner

Scope Review: READY

Review note: review-1380-2026-06-07-b

Re-review after previous NEEDS_REFINEMENT findings. Both SCOPE gaps resolved:

  • project-palinks note now exists with story:containerize-palinks in user-stories section
  • arch-palinks note now exists with architecture overview and key decisions

Template completeness, file targets, repo placement, dependencies, acceptance criteria, blast radius, and decomposition all pass. Ticket is ready for execution.

## Scope Review: READY Review note: `review-1380-2026-06-07-b` Re-review after previous NEEDS_REFINEMENT findings. Both SCOPE gaps resolved: - `project-palinks` note now exists with `story:containerize-palinks` in user-stories section - `arch-palinks` note now exists with architecture overview and key decisions Template completeness, file targets, repo placement, dependencies, acceptance criteria, blast radius, and decomposition all pass. Ticket is ready for execution.
Author
Owner

Reading issue for QA review context.

Reading issue for QA review context.
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#18
No description provided.