farmborst / accelduck

Docker for accelerator physics
GNU General Public License v3.0
2 stars 1 forks source link

Separate ENV file #2

Open felix-andreas opened 5 years ago

felix-andreas commented 5 years ago

Waere es nicht eine "saubere" Loesung die Enviroment Varibales statt in .bashrc in eine .env zu packen? Das file wuerde dann bei starten des Containers mit --env-file docker run ... --env-file accelduck.env ... geladen werden.

Vorteile:

  1. Wenn man ein Programm (z.B. elegant) mit docker exec accelduck elegant ausfuehrt, waeren das ENV schon geladen. Und man muss nicht die einzelnen Variablen mit docker exec -e VAR uebergeben! (Im falle von elegant den RPNDEFNS Pfad )??
  2. Man waere nicht von Bash abhaengig und koennte auch eine andere Shell benutzen.

Ich habe bereits so ein file erstellt! Ein Problem dabei ist noch, dass ich nicht weiss, wie man Variablen erweitertet. Also PATH=$PATH:... funktioniert nicht!

LIBGL_ALWAYS_SOFTWARE=1
XDG_RUNTIME_DIR=/tmp

#### EPICS-BASE ####
EPICS_CA_ADDR_LIST='193.149.12.5 193.149.12.6'
EPICS_HOST_ARCH=linux-x86_64
HOST_ARCH=linux-x86_64
EPICS_BASE=/opt/epics/base-3.15.6/
# PATH=$PATH:/opt/epics/base-3.15.6/bin/linux-x86_64/ # auskommentiert, da sonst PATH ueberschrieben wird

#### Elegant ####
RPN_DEFNS=/opt/elegant/defns.rpn

#### Ocelot ####
# PYTHONPATH=$PYTHONPATH:/opt/ocelot

#### accpy ####
# PYTHONPATH=$PYTHONPATH:/opt/accpy

#### julia ####
# PATH=$PATH:/opt/julia/julia-1.1.0/bin/

#### pycharm ####

#### R ####
R_LIBS='/opt/R/Rpackages/'

#### PROSILICA ####
GENICAM_GENTL64_PATH=/opt/vimba/Vimba_2_1/VimbaGigETL/CTI/x86_64bit
GENICAM_GENTL32_PATH=/opt/vimba/Vimba_2_1/VimbaGigETL/CTI/x86_32bit
farmborst commented 5 years ago

Yes, I agree. It would be useful having the enviroment varibales available independently. Docker has some confusing infos on the env-file. Here (https://docs.docker.com/compose/env-file/) they state: "Environment variables defined in the .env file are not automatically visible inside containers."

Maybe the entrypoint script could be used. I will look into this. But please feel free to give me a working solution.

farmborst commented 5 years ago

Here a workaround for your problem as I understand it: