Docker image prjemian/synapps
providing EPICS base,
synApps, and Area
Detector software providing
IOCs (servers) for development, simulation, testing, and
training.
| tag | release | image | downloads |
|---|---|---|---|
Contents
Two steps: Area detector IOC with simulated camera
- Download and install
iocmgr.sh(bash shell script for Linux). - Run
iocmgr.sh start adsim test1to startioctest1
That's it! You just started a custom version of the ADSimDetector IOC.
Next steps: Get an EPICS client to operate the IOC's controls and view the images it generates.
- Scripts to install EPICS software to build IOCs (servers)
- Documentation for the EPICS IOCs
- Steps to build the docker image
Note: This repository does not provide EPICS client software.
Run custom XXX or ADSimDetector IOCs. Copy
(download) the iocmgr.sh shell script to a directory on your executable path
and make the script executable.
See the Quick Start section and
iocmgr.sh for examples.
IOCs are created in docker containers. If you wish, the container's /tmp is
available for read-only mount on the docker host computer. This table shows the
same directory from the IOC or the host filesystem. Any files created in the
container (such as by an area detector IOC) will be available as long as the
container is running.
| system | filesystem |
|---|---|
| IOC | /tmp |
| host | /tmp/docker_ioc/iocPRE |
Use the same docker image (prjemian/synapps:latest) for all IOCs. The
iocmgr.sh script runs only one IOC per container. Starting containers is
usually very fast.
Running an IOC in a container is usually a two-step process, similar to running an IOC in any computer.
- Start a container with the image (and any additional features such as network and volume provisioning). Use
docker run ... - Start the IOC in the container (usually with
screenorprocServ, so it runs in the background) Usedocker exec ....
Additional documentation is available.
Download iocmgr.sh (if not already installed)
These IOCs will use the GP IOC support.
cd ~/bin
wget https://raw.githubusercontent.com/prjemian/epics-docker/main/resources/iocmgr.sh
chmod +x iocmgr.shRun two separate GP IOCs with prefixes ocean: and
sky:. (Do not specify the trailing :. The script will manage that for you.)
iocmgr.sh start GP ocean
iocmgr.sh start GP skyDownload iocmgr.sh (if not already installed)
cd ~/bin
wget https://raw.githubusercontent.com/prjemian/epics-docker/main/resources/iocmgr.sh
chmod +x iocmgr.shRun two separate ADSIM IOCs with prefixes air: and
land:. (Do not specify the trailing :. The script will manage that for you.)
iocmgr.sh start ADSIM air
iocmgr.sh start ADSIM landYou could create a new script to start all the IOCs you want. Here's an example which starts all four IOCs above:
#!/bin/bash
iocmgr.sh restart GP ocean
iocmgr.sh restart GP sky
iocmgr.sh restart ADSIM air
iocmgr.sh restart ADSIM oxy- Save this into
~/bin/start_iocs.sh - make it executable:
chmod +x ~/bin/start_iocs.sh - then call it to start/restart the four IOCs:
start_iocs.sh
- XXX
- ADSimDetector
- ADURL (TODO)
- pvaDriver (TODO)
- GP, a custom XXX with user PREFIX
- ADSIM, a custom ADSimDetector with user PREFIX
| script | location | comments |
|---|---|---|
iocmgr.sh |
docker host | User script to manage IOCs and GUIs |
start_MEDM_PRE |
container /tmp |
Called by iocmgr.sh (start the MEDM GUI for PRE IOC) |
start_caQtDM_PRE |
container /tmp |
Called by iocmgr.sh (start the caQtDM GUI for PRE IOC) |
adsim.sh |
container /root/bin |
Starts the custom ADSimDetector IOC in the container. |
gp.sh |
container /root/bin |
Starts the custom XXX IOC in the container. |
The current docker image (prjemian/synapps:latest) is listed in the next
table. A full list of related docker images is on a separate
page.
| release | image | docs | notes |
|---|---|---|---|
| v2.0.0 | prjemian/synApps |
docs | Debian 11 Bullseye, EPICS base 7.0.5, synApps 6.2.1, AD 3.11 (all-in-one) |
- Pete Jemian
-
Contributors
- Chen Zhang
- Jeff Hoffman
- Quan Zhou
-
moved here from virtualbeamline, a fork of KedoKudo/virtualbeamline.