Note for Standard Deployments: If you use the standard RAS containers with the latest version of Docker, this migration typically has no impact on your deployment.
RAS V8.0.0 introduces breaking changes primarily driven by backend package updates and Docker orchestration improvements. This guide walks you through the migration process.
Python package management has been migrated from traditional package managers to UV with a unified local cache shared across all Docker containers. This provides:
What this means for you: No action required unless you have custom backend containers with Python dependencies. If so, update your Dockerfiles to use UV syntax.
The EPICS base image has been updated to Ubuntu 24.04 LTS.
What this means for you: If you extend or customize the epicsbase container, verify your custom packages and configurations are compatible with Ubuntu 24.04.
The epicsbase container is now the foundational layer for all backend containers. It includes:
What this means for you: Backend container builds are now more efficient through shared base layers.
If you have customized docker-compose.yml files, add the following to any backend services that depend on epicsbase:
services:
your_service:
build:
context: ./docker/your_service
additional_contexts:
epicsbase: "service:epicsbase"
depends_on:
- epicsbase
Example:
alarmHandlerServer:
build:
context: ./docker/alarmHandlerServer
additional_contexts:
epicsbase: "service:epicsbase"
depends_on:
- epicsbase
Docker Compose Bake significantly speeds up multi-container builds. To enable it:
$HOME/.docker/config.jsoncompose plugin configuration:{
"plugins": {
"compose": {
"build": "bake"
}
}
}
Reference: https://docs.docker.com/compose/how-tos/dependent-images/
After migrating, verify your setup:
# Check Docker version
docker --version # Should be 28.1.1 or later
# Test building with the new epicsbase
docker compose build epicsbase
# Verify bake is enabled (optional)
docker buildx ls
docker buildx ls shows buildx available