prjemian / epics-docker

Provide EPICS IOCs in docker images
9 stars 4 forks source link

Target all scripts, screens, resources to /opt #37

Closed prjemian closed 3 years ago

prjemian commented 3 years ago

Target the /opt directory for all scripts, screens, and other resources. Should eliminate the need for /tmp/docker_ioc/custom-synapps-6.2/ and such directories on the docker host. This should also eliminate potential conflicts when two or more IOC containers have similar (but not identical) screens.

NOTE: With this change, the start_xxx.sh script will become very different from v1.0.

prjemian commented 3 years ago

See changeset e0969d1 for the initial idea. Note that with the additional volume for /opt, this failure was observed when starting the container:

(base) prjemian@zap:~/.../v1.1/n5_custom_synApps$ ./start_xxx.sh vm
stopping container iocvm ... iocvm
removing container iocvm ... Error: No such container: iocvm
starting container iocvm ... 44fe6ad8e61bfa69dee23ebe766e9611269414e1e75f99083d0b4984ba0b2a13
changing xxx: to vm: in iocvm
sed: can't read iocxxx/../../start_caQtDM_xxx: No such file or directory
sed: can't read iocxxx/../../xxxApp/op/adl/xxx.adl: No such file or directory
sed: can't read iocxxx/../../xxxApp/op/adl/xxx.adl: No such file or directory
sed: can't read iocxxx/../../xxxApp/op/ui/xxx.ui: No such file or directory
sed: can't read iocxxx/../../xxxApp/op/ui/xxx.ui: No such file or directory
sed: can't read iocxxx/../../xxxApp/op/ui/xxx.ui: No such file or directory
starting IOC iocvm ... docker exec iocvm iocxxx/softioc/xxx.sh start
OCI runtime exec failed: exec failed: container_linux.go:367: starting container process caused: exec: "iocxxx/softioc/xxx.sh": stat iocxxx/softioc/xxx.sh: no such file or directory: unknown
copy IOC iocvm to /tmp/docker_ioc/iocvm
Error: No such container:path: iocvm:/opt/synApps/support/xxx-R6-2/
Error: No such container:path: iocvm:/opt/screens/

This is because the same directory cannot be mounted twice.

prjemian commented 3 years ago

Docker does not export volumes from the container to the host.

Host volumes don't copy data from the container > host.

See #5.