Automatyzacja wewnątrz kontenera

0

Czy ktokolwiek wie może jak stworzyć skrypt do automatycznego wpisywania w /etc/hosts na kontenerze, aby pobierało sobie adres IP coś na wzór HOST=$(hostname -i) i później
echo "hello $HOST" >> /etc/hosts ale niestety ten prosty skrypt nie działa i nie wiem zbytnio jak dodawać tych hostów automatycznie chodzi mi oczywiście żeby działo się to w środku kontenera, wiem że jest coś takiego jak extra_hosts ale będę miał dużo tych kontenerów dlatego chciałbym to w jakiś sposób zautomatyzować

#!/bin/bash

echo "HOST=$(hostname -i)"

echo "hello $HOST" >> /etc/hosts

i Dockerfile

FROM tomcat:9.0.63

RUN mkdir dir
COPY script.sh dir/
WORKDIR dir/
CMD sh script.sh
CMD ["catalina.sh","run"]
1

Spróbuj:

#!/bin/bash

HOST=$(hostname -i)
echo "hello $HOST" >> /etc/hosts
0

Logowałeś się do tego kontenera chociaż?

docker exec -it <container> /bin/bash
Potem sobie wejdź i sprawdź takie rzeczy jak hostname -i ,które zwraca 127.0.0.1
sprawdź sobie cat /etc/hosts jaką ma zawartość.

Czasem trzeba zobaczyć co się wykonało żeby móc dojść jaki błąd się popełniło

Kontenery często mają tak, że zastępują pewne mechanizmy systemowe i mają swoją implementację zwykle dostępną z poziomu skryptu tworzącego kontener.

2

Zacząłbym od tego, że w Dockerfile możesz mieć tylko jedno CMD. Teraz masz dwa, ale wykonuje się tylko ostatni.

1

Bez skryptów np. basha się nie obejdzie. Ewentualnie możesz zmodyfikować ten plik w twojej głównej apce jeśli to możliwe i uważasz, że ma to sens
Alternatywą jest podlinkowanie tego pliku za pomocą jakieś volume

1

W docker run masz opcję --add-host, którą możesz przekazać niby wpisy w /etc/hosts (Docker gdzieś po swojej stronie robi magię, tłumacząc tak przekazane adresy). Ewentualnie, jak chcesz swój skrypt odpalić, to możesz to zrobić przez

RUN sh script.sh

Edit - po komentarzu pod spodem faktycznie, zapomniałem że przecież RUN się odpali podczas budowania. No to może w CMD odpalać skrypt, złożony z dwóch skryptów - najpierw odpalasz script.sh, a potem Tomcata czy co tam jest odpalane przez catalina.sh.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.