Skip to content

chore(ci): optimize Docker setup for ephemeral K8s pod runners - #348

Merged
key4ng merged 11 commits into
mainfrom
fix-docker-pull
Feb 6, 2026
Merged

key4ng merged 11 commits into
mainfrom
fix-docker-pull

Conversation

@key4ng

@key4ng key4ng commented Feb 6, 2026 •

Copy link
Copy Markdown
Member

Description

Problem

The first docker run on a fresh DinD pod is slow due to Docker daemon cold start. K8s pod runners pull Docker images (Oracle XE, Brave MCP) from Docker Hub on every CI run because pods are ephemeral and have no persistent image cache. Additionally, Docker container cleanup steps cause unnecessary delays since the pod is destroyed after job completion.

Solution

  • Pull image from docker hub is actually not the bottleneck. Using cache and reload might also slower than directly pull, so didn't adopt the cache solution
  • Remove Docker container cleanup steps as K8s pod is destroyed after job completion
  • Add Docker daemon warmup step to avoid cold-start penalty on first container
  • Switch Oracle image to 21-slim-faststart for faster DB startup

Changes

  • Remove Cleanup Brave MCP Server and Cleanup Oracle Database steps
  • Add docker info warmup step (conditional on setup_oracle || setup_brave)
  • Switch gvenzl/oracle-xe:21-slim → gvenzl/oracle-xe:21-slim-faststart

Test Plan

Checklist
  • cargo +nightly fmt passes
  • cargo clippy --all-targets --all-features -- -D warnings passes
  • (Optional) Documentation updated

Summary by CodeRabbit

Release Notes

  • Chores
    • Optimized CI/CD workflow for end-to-end testing pipeline.
    • Improved Docker resource management by adding container cleanup.
    • Enhanced Oracle Database initialization with faster startup configuration.
    • Streamlined artifact handling during test preparation stages.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported.

@github-actions github-actions Bot added the ci CI/CD configuration changes label Feb 6, 2026
@coderabbitai

coderabbitai Bot commented Feb 6, 2026 •

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Modifies the .github/workflows/pr-test-rust.yml CI workflow to optimize the gateway-e2e test setup by introducing a Docker daemon warmth-up step, consolidating wheel artifact download and installation earlier in the job flow, updating Oracle Database container startup parameters, and removing post-test cleanup steps.

Changes

Cohort / File(s) Summary
CI Workflow Configuration
.github/workflows/pr-test-rust.yml
Reorganizes gateway-e2e test setup: adds Docker daemon warmth-up, moves wheel artifact download/install earlier in job, updates Oracle Database container invocation with --rm flag and faststart tag variant, installs e2e dependencies from wheel, and removes post-test cleanup steps for Brave MCP Server and Oracle Database.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • XinyueZhang369

Poem

🐰 A workflow refinement with Docker warmth so bright,
Wheels installed early, artifacts staged just right,
Oracle fastens, cleanup recedes,
The pipeline hops swiftly to meet all its needs! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change: optimizing Docker setup for ephemeral K8s pod runners, which matches the PR's primary objective of improving CI performance.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-docker-pull

Comment @coderabbitai help to get the list of available commands and usage tips.

@key4ng key4ng changed the title cache docker image chore(ci): cache Docker images and fix slow container cleanup Feb 6, 2026
@key4ng key4ng changed the title chore(ci): cache Docker images and fix slow container cleanup chore(ci): warm up docker daemon and fix slow container cleanup Feb 6, 2026
@key4ng key4ng changed the title chore(ci): warm up docker daemon and fix slow container cleanup chore(ci): i: optimize Docker setup for ephemeral K8s pod runners Feb 6, 2026
@key4ng key4ng changed the title chore(ci): i: optimize Docker setup for ephemeral K8s pod runners chore(ci): optimize Docker setup for ephemeral K8s pod runners Feb 6, 2026
@key4ng
key4ng marked this pull request as ready for review February 6, 2026 22:39
@key4ng
key4ng merged commit 504a95c into main Feb 6, 2026
34 of 36 checks passed
@key4ng
key4ng deleted the fix-docker-pull branch February 6, 2026 23:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD configuration changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants