Migrate Dockerfile to Arch Linux base image #20

Merged
ldraney merged 2 commits from 18-dockerfile-arch-migration into main 2026-05-10 19:03:43 +00:00
Owner

Summary

Replaces the Debian ruby:3.4.8-slim base with the shared Arch Linux base image (pal-e/ruby-arch) from Harbor. Removes Debian-specific commands, deleted files superseded by platform-level infra.

Changes

  • Dockerfile: rewritten to use harbor.harbor.svc.cluster.local/pal-e/ruby-arch:latest (base) and :build (build stage). All apt-get removed. Only added package: curl (health checks).
  • .ruby-version: deleted — Arch rolls Ruby, no pinning needed
  • k8s/dev.yaml: deleted — replaced by dev overlay in pal-e-deployments

Test Plan

  • Docker build succeeds with Arch base image
  • docker run <image> ruby --version shows current Arch Ruby
  • App boots: rails server starts
  • Health check at /up returns 200
  • Keycloak OIDC login flow completes
  • No apt-get or Debian-specific commands remain

Review Checklist

  • Multi-stage build preserved (base → build → final)
  • Bootsnap precompilation preserved (-j 1)
  • jemalloc LD_PRELOAD inherited from base image
  • Non-root rails user preserved
  • No Gemfile or application code changes

Plan: pal-enterprises infrastructure overhaul (T4 of 5). Depends on T3 (Arch base image in Harbor).

Closes #18

## Summary Replaces the Debian `ruby:3.4.8-slim` base with the shared Arch Linux base image (`pal-e/ruby-arch`) from Harbor. Removes Debian-specific commands, deleted files superseded by platform-level infra. ## Changes - **Dockerfile**: rewritten to use `harbor.harbor.svc.cluster.local/pal-e/ruby-arch:latest` (base) and `:build` (build stage). All apt-get removed. Only added package: `curl` (health checks). - **`.ruby-version`**: deleted — Arch rolls Ruby, no pinning needed - **`k8s/dev.yaml`**: deleted — replaced by dev overlay in pal-e-deployments ## Test Plan - [ ] Docker build succeeds with Arch base image - [ ] `docker run <image> ruby --version` shows current Arch Ruby - [ ] App boots: `rails server` starts - [ ] Health check at `/up` returns 200 - [ ] Keycloak OIDC login flow completes - [ ] No apt-get or Debian-specific commands remain ## Review Checklist - [x] Multi-stage build preserved (base → build → final) - [x] Bootsnap precompilation preserved (-j 1) - [x] jemalloc LD_PRELOAD inherited from base image - [x] Non-root rails user preserved - [x] No Gemfile or application code changes ## Related Notes Plan: pal-enterprises infrastructure overhaul (T4 of 5). Depends on T3 (Arch base image in Harbor). Closes #18
Closes #18

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- COPY vendor/* doesn't recurse into subdirectories (vendor/javascript/)
- pacman -Sy without -u is a partial upgrade, discouraged on Arch

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
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/pal-enterprises!20
No description provided.