Skip to content

Run the test IOC from codecr.jlab.org/acc/iac/containers/softioc:1 - #66

Merged
slominskir merged 1 commit into
mainfrom
softioc-1
Nov 3, 2026
Merged

slominskir merged 1 commit into
mainfrom
softioc-1

Conversation

@slominskir-coding-agent

@slominskir-coding-agent slominskir-coding-agent Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Switch the test IOC from DockerHub's jeffersonlab/softioc:1.1.0 to codecr.jlab.org/acc/iac/containers/softioc:1 (EPICS 3.15.9), following that image's "Moving from jeffersonlab/softioc:1.1.0" steps.

  • deps.yaml: new image; tty: true and stdin_open: true removed, since the image runs softIoc -S (no IOC shell). The service keeps its default entrypoint and command, softIoc -S -d /db/softioc.db, with /db mounted from examples/softioc-db.
  • deps.yaml: SOFTIOC_HEALTH_PV: HELLO, and the compose healthcheck removed, so the image's own check (caget -w 2 HELLO over 127.0.0.1, every 5 s) applies. compose.yaml and build.yaml extend this service, so up --wait in CI now waits for the IOC to answer.
  • examples/softioc-scripts/feed-ca.sh: mode 755, since the image runs as uid 1234. Nothing runs it; it only calls caput, so it writes nothing to the mount.
  • AGENTS.md: notes the image's health-check record and uid.

No deployment steps: this changes only the development and CI test stack, not the epics2web image or WAR.

Release notes

Development: the test IOC in deps.yaml now comes from codecr.jlab.org/acc/iac/containers/softioc:1, which pulls anonymously. No upgrade steps.

Checks

  • ./gradlew spotlessCheck test: passed.
  • In the VM's rootless Docker, Compose project epics2web-softioc-1 (ports 8080, 5064, 5065 checked free with ss -ltnp/ss -lunp), without a TTY:
    • docker compose -f build.yaml build --build-arg CUSTOM_CRT_URL=: built.
    • docker compose -f build.yaml up -d --no-build --wait --wait-timeout 180: both containers healthy in about 8 s.
    • 10 s later: softioc up and healthy, running as dev; docker exec softioc caget HELLO answers.
    • ./gradlew integrationTest: 27 tests, 0 failures. After it (which stops and starts softioc), the container was up and healthy again.
    • Stack torn down with down.
  • CI: the first run's build / build (run 41579403617) failed outside this change, with compileJava reporting error: release version 21 not supported: java-workflows' floating v2 tag had regressed to 3884990 (May 2025, JDK 17). v2 points at v2.4.0 (64d6c31) again, and the re-run (run 41580359541, started by closing and reopening the PR) passed: build / build, integration (which pulls the new image and waits for its health check) and CodeQL. This PR leaves ci.yaml alone.

Decisions

  • Removed deps.yaml's own healthcheck (caget -w 1 HELLO, default address list) rather than keep it alongside SOFTIOC_HEALTH_PV: the image's check asks the IOC itself over 127.0.0.1, and one check is simpler to keep right.
  • Kept the fixed container name softioc and host ports 5064/5065/8080, since the integration tests use them (docker stop softioc, CA at 127.0.0.1).
  • Made feed-ca.sh executable instead of removing it, though nothing in the repository runs it.

Prepared-by: Anthropic Claude Code:claude-opus-5-5

🤖 Generated with Claude Code

Replace DockerHub's jeffersonlab/softioc:1.1.0 with the JLab soft IOC
image. It starts softIoc with -S, so the IOC needs no terminal: drop
tty and stdin_open. Its own health check reads SOFTIOC_HEALTH_PV over
127.0.0.1; set it to HELLO and drop deps.yaml's healthcheck, so
compose up --wait waits for the IOC to answer.

The image runs as uid 1234, so make the mounted feed-ca.sh executable,
and note the image's needs in AGENTS.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@slominskir
slominskir merged commit 55fcd61 into main Nov 3, 2026
7 of 8 checks passed
@slominskir
slominskir deleted the softioc-1 branch November 3, 2026 05:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

source::ai Work done by an AI agent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant