Miałem podobny problem. Chciałem przyspieszyć kompilacje obrazów przy pomocy apt-cacher
. Działa w swoim własnym pojemniku, a inne obrazy, które zbudowałem, musiały się z nim komunikować.
Rozwiązaniem było opublikowanie portu apt-cacher
na wszystkich interfejsach. Obejmuje to np. docker0
, która jest dostępna dla pośrednich kontenerów tworzonych podczas budowania obrazu.
Dockerfile
Przykład:
FROM debian:8
RUN ping -c 2 172.17.0.1
I tak to się buduje:
$ docker build - <dock
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM debian:8
---> 47af6ca8a14a
Step 2 : RUN ping -c 2 172.17.0.1
---> Running in 4f56ce7c7b63
PING 172.17.0.1 (172.17.0.1): 56 data bytes
64 bytes from 172.17.0.1: icmp_seq=0 ttl=64 time=0.117 ms
64 bytes from 172.17.0.1: icmp_seq=1 ttl=64 time=0.130 ms
--- 172.17.0.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.117/0.123/0.130/0.000 ms
---> 5c73a36a0a6a
Removing intermediate container 4f56ce7c7b63
Co dokładnie musisz zrobić? Chcesz uruchomić skrypt w swojej bazie danych? – Behe
@behe rodzaju. Muszę uruchomić dwa polecenia zarządzania django, które przygotują bazę danych dla aplikacji. Ale w prostym terminie - tak, muszę uruchomić skrypt dla mojej bazy danych. – syabro
Możliwe jest uruchomienie bazy danych i wypełnienie jej podczas budowania obrazu. Nie można łączyć kontenerów przy kompilacji. (Może to być: http://mywiki.wooledge.org/XyProblem) – Behe