Hallo zusammen,
ich arbeite mich in Docker ein und stolpere über ein Problem, dass ich einfach nicht lösen kann.
Umgebung:
Debian 10, Docker 19.03
Was möchte ich machen:
Ich nehme ein bestehendes Images und führe Änderungen durch, abhängig von einer gesetzten Umgebungsvariable.
Das Problem:
Meine Umgebungsvariable wird nicht gesetzt, obwohl ich sie bei
Um das Problem zu reduzieren, möchte ich zunächst lediglich den Inhalt der Variable in eine Datei schreiben.
Was habe ich gemacht:
Ich habe einen leeren Ordner erstellt und mein Dockerfile abgelegt.
Dockerfile:
Das Image erstelle ich nun mit:
Der Befehl wird mit einem "Successfully build..." quittiert.
Nun starte ich den Container
und prüfe was in meiner Test-Datei steht:
Die Variable wird also nicht gesetzt.
Hier (https://stackoverflow.com/questions/48915360/docker-environment-variable-not-overridden) habe ich ein ähnliches Problem gefunden. Jedoch lag der Fehler hier an der falschen Reihenfolge. Das dürfte bei mir nicht zutreffen.
Hat jemand von Euch eine Idee woran das liegen könnte?
Vielen Dank.
ich arbeite mich in Docker ein und stolpere über ein Problem, dass ich einfach nicht lösen kann.
Umgebung:
Debian 10, Docker 19.03
Was möchte ich machen:
Ich nehme ein bestehendes Images und führe Änderungen durch, abhängig von einer gesetzten Umgebungsvariable.
Das Problem:
Meine Umgebungsvariable wird nicht gesetzt, obwohl ich sie bei
docker run
übergebe.Um das Problem zu reduzieren, möchte ich zunächst lediglich den Inhalt der Variable in eine Datei schreiben.
Was habe ich gemacht:
Ich habe einen leeren Ordner erstellt und mein Dockerfile abgelegt.
Code:
mkdir my_docker_img
cd my_docker_img
Dockerfile:
Code:
FROM jenkinsci/jenkins:latest
ARG MYVAR="Dies ist ein Test"
ENV MYVAR ${MYVAR}
RUN echo {$MYVAR} > /myvar_test
Das Image erstelle ich nun mit:
sudo docker build -t my_docker_img .
Der Befehl wird mit einem "Successfully build..." quittiert.
Nun starte ich den Container
sudo docker run -d -e "MYVAR=Hallo" -v /home/user/docker/jenkins:/var/jenkins_home --name my_container my_docker_img
und prüfe was in meiner Test-Datei steht:
Code:
user@x1:~/my_docker_img$ sudo docker exec -it -u root my_container /bin/bash
root@c329b13df72f:/# cat /myvar_test
Dies ist ein Test
root@c329b13df72f:/# echo $MYVAR
root@c329b13df72f:/#
Die Variable wird also nicht gesetzt.
Hier (https://stackoverflow.com/questions/48915360/docker-environment-variable-not-overridden) habe ich ein ähnliches Problem gefunden. Jedoch lag der Fehler hier an der falschen Reihenfolge. Das dürfte bei mir nicht zutreffen.
Hat jemand von Euch eine Idee woran das liegen könnte?
Vielen Dank.