2014-12-31 14 views
5

Obecnie rozumiem, że Docker wykonuje dowolne polecenia RUN git clone podczas docker build, a tym samym baza kodu dla mojej aplikacji jest "wypiekana" na obrazie Docker.Docker git clone na premierze kontenera?

W jaki sposób mogę uruchomić system git clone po uruchomieniu kontenera?

Czy jest to uważane za złą praktykę i anty-wzór?

Pomysł polega na tym, że nie chcę zmieniać wersji obrazu Docker za każdym razem, gdy wprowadzam zmiany w repozytorium git.

Odpowiedz

5

Typowy wzór projektu polega na klonowaniu i kompilowaniu projektu w procesie budowania obrazu Docker. Ponadto, można skonfigurować swój wizerunek jako Docker Automated Build, który jest zdefiniowany w dokumentacji Docker jak:

Automated Buduje są szczególną cechą Docker Hub, które umożliwiają używać klastrów kompilacji Döcker Hub do automatycznego tworzenia obrazów z Określona plik Dockerfile i repozytorium GitHub lub Bitbucket (lub "kontekst"). System sklonuje twoje repozytorium i zbuduje obraz opisany przez plik Dockerfile, używając repozytorium jako kontekstu. Powstały automatyczny obraz zostanie następnie przesłany do rejestru Docker Hub, a oznaczony jako Automatyczna kompilacja.

Zautomatyzowana kompilacja jest uruchamiana za każdym razem, gdy robisz commit (i push) w gałęzi repo, którą wskazujesz. Jeśli jest uruchamiany zbyt często, może powinieneś wskazać inny oddział.

W każdym razie, jeśli zdecydujesz się uruchomić klon git podczas uruchamiania nowego kontenera, możesz skonfigurować plik Dockerfilm z CMD ["my-script"], będąc moim skryptem dowolnego skryptu Bash z kodem, który chcesz.

+0

To jest dokładnie to, czego potrzebowałem. Dzięki za wskazówkę! – AJB

+0

Jak to działa z dużą fazą kodu + długą fazą realizacji transakcji? Mamy teraz niewolnika VMWare, który wykonuje aktualizację SVN. Dzięki dockerowi stworzysz nowy obraz do doków od podstaw + kompletne zamówienie? – RvdK