EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <2024 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <2024
<== Date ==> <== Thread ==>

Subject: Re: How can I get a PV from an external server from inside a docker container?
From: Florian Feldbauer via Tech-talk <tech-talk at aps.anl.gov>
To: tech-talk at aps.anl.gov
Date: Mon, 25 Mar 2024 21:23:13 +0100

Hey,

the issue is, that EPICS uses UDP broadcasts to find and connect to other PVs.

If the docker container is running on the same machine as your local host IOC, these two are connected via the virtual docker network therefore UDP broadcasts can be send between those two.
But broadcasts are not forwarded from the virtual docker network to your physical network, thus your container cannot establish a connection with the external host.

The only way I got this working so far, is to create the docker container with the `-net host` option.
Using the MACVLAN network driver might work too. I never had the time to look into it.

Best regards,
Florian




Am 25.03.2024 um 14:55 schrieb Carsten Winkler via Tech-talk:

Hello,

I have 3 SoftIOCs.
    1.) local host       = 193.100.100.100 with PV: "local_pv"
    2.) external host  = 192.200.200.200 with PV: "external_pv"
    3.) docker container    on local host   with PV: "docker_pv"

From local host I can read all PVs (caget local_pv external_pv docker_pv). 👍
From inside the docker container I can read the local_pv and the docker_pv
but not the external_pv. 🤔

Here is my docker compose configuration:

services:
    epicsbase:
       image: softioc
       container_name: epicsbase
       volumes:
          - ./epicsbase/db:/usr/local/db
       working_dir: /usr/local/epics
       command:
          - /bin/sh
          - -c
          - |
          echo start first Soft IOC
          screen -d -m /usr/local/epics/epics-base/bin/linux-x86_64/softIoc -D /usr/local/epics/epics-base/dbd/softIoc.dbd -d /usr/local/db/test.db
          tail -f /dev/null # keep alive
       networks:
          - ioc-net
networks:
    ioc-net:

From inside the docker container I have also already tried EPICS_CA_AUTO_ADDR_LIST / EPICS_CA_ADDR_LIST. Unfortunately without success.
With and without these environment variables I only get the local_pv and the docker_pv.

How can I also read the external_pv from inside the docker container?

Best regards
Carsten

-- 
Ruhr-Universität Bochum
AG der Experimentalphysik I
Dr. Florian Feldbauer
NB 2/131 / Fach 125
Universitätsstr. 150
D-44801 Bochum

Office: NB 2/134
Phone:  (+49)234 / 32-23563
Fax:    (+49)234 / 32-14170
https://paluma.ruhr-uni-bochum.de

References:
How can I get a PV from an external server from inside a docker container? Carsten Winkler via Tech-talk

Navigate by Date:
Prev: Re: How can I get a PV from an external server from inside a docker container? Dale Cox via Tech-talk
Next: Re: How can I get a PV from an external server from inside a docker container? Carsten Winkler via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <2024
Navigate by Thread:
Prev: Re: How can I get a PV from an external server from inside a docker container? Dale Cox via Tech-talk
Next: Re: How can I get a PV from an external server from inside a docker container? Carsten Winkler via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <2024
ANJ, 26 Mar 2024 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·