Skip to content

Add bobshell container example with release CI - #53

Merged
jonpspri merged 1 commit into
mainfrom
bob-container
Oct 5, 2026
Merged

jonpspri merged 1 commit into
mainfrom
bob-container

Conversation

@jonpspri

@jonpspri jonpspri commented Oct 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • infra/bobshell/Containerfile: IBM Bob Shell on ubi10/nodejs-24, installed via the official installer; IBM license pre-accepted and /workspace pre-trusted from the command line so bob runs non-interactively; runs as UID 1001; defaults to bob chat.
  • entrypoint.sh: two configurations via Docker Compose mechanisms —
    • Bobshell API secret: compose secrets: → /run/secrets/bob_api_key → exported as BOB_API_KEY (env var takes precedence)
    • MCP configuration: compose configs: → /etc/bob/mcp.json → installed as user-global ~/.bob/settings/mcp.json
  • Sample docker-compose.yml, mcp.json, and README.
  • build-bobshell workflow: multi-arch (amd64/arm64) publish to ghcr.io/ibm/cfex-bobshell on main pushes (path-filtered), release publication (tagged with the release name + latest), and manual dispatch; PRs build for validation.

Test plan

  • docker build succeeds; bob --version reports 2.0.5 in-image
  • Default docker run launches bob chat; license/trust state pre-baked (licenseConsent, TRUST_PARENT /workspace)
  • Secret file → BOB_API_KEY exported; env var wins over secret
  • MCP config → bob mcp list shows configured servers (global scope)
  • docker compose config + build + run exercise the sample end to end
  • CI: this PR's Build Bobshell Container run

@brian-hussey brian-hussey left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is awesome!

A couple of suggestions for security and for image size (saves ~600MB per image built).

Comment thread infra/bobshell/Containerfile Outdated
Comment thread infra/bobshell/README.md
Containerize IBM Bob Shell on ubi10/nodejs-24 under infra/bobshell:
- Containerfile installs Bob Shell via the official installer, pre-accepts
  the IBM license, and pre-trusts /workspace for non-interactive use
- entrypoint.sh wires Docker Compose configs/secrets: an MCP config at
  /etc/bob/mcp.json and an API key secret at /run/secrets/bob_api_key
  (BOB_API_KEY env var takes precedence)
- sample docker-compose.yml, mcp.json, and README
- build-bobshell workflow publishes a multi-arch image to
  ghcr.io/ibm/cfex-bobshell on main pushes, release publication, and
  manual dispatch

Signed-off-by: Jonathan Springer <jps@s390x.com>

@brian-hussey brian-hussey left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jonpspri
jonpspri merged commit 71fc25d into main Oct 5, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants