Post on 07-Aug-2015
Czyli jak Docker pozwala dostarczać środowisko testowe razem z aplikacją.
BUILD FAILUJE? PRZECIEŻ U MNIE DZIAŁAŁO.
Rafał Sumisławski – NetworkedAssetsAtlassian User Group Lower Silesia 25.03.2015
25.03.2015 2AUG Lower Silesia
2.8.15
1.7.0_17
8.0.11
6.0
2.8.15
1.7.0_17
8.0.11
6.0
2.8.15
1.7.0_17
8.0.11
6.0
Środowisko działania aplikacji
25.03.2015 3AUG Lower Silesia
2.8.19
1.8.0_40
8.0.20
14.04.2
2.6.21
1.7.0_48
8.0.17
14.04.2
2.8.15
1.7.0_17
8.0.11
6.0
Środowisko działania aplikacji
• Zarzadzanie w stylu gita• Docker Hub
• Git Hub?
• Zarządzanie Dockerami• Dockerfile
Zarządzanie kerami•
Zarządzanie Dockerami
Virtual Machine Docker
keramiZarządzanie DockeramiZarządzanie •
keramiZarządzanie Dockerami• Dockerfile
••
Docker•
gita•Docker•
• Zarzadzanie w stylu Docker Hub• Git Hub?
stylu gitagitaFROM java:openjdk-8-jdk
ENV MAVEN_VERSION 3.2.5RUN curl -sSL http://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz \| tar xzf - -C /usr/share \&& mv /usr/share/apache-maven-$MAVEN_VERSION /usr/share/maven \&& ln -s /usr/share/maven/bin/mvn /usr/bin/mvnENV MAVEN_HOME /usr/share/maven
CMD ["mvn", "--version"]
• Docker Engine• namespaces + cgroups – izolacja zasobów• union file system
25.03.2015 5AUG Lower Silesia
Czym jest Docker?
Operating-system-level Virtualization
25.03.2015 6AUG Lower Silesia
1 Docker – 1 Proces
Proces główny• PID 1• Czas życia kontenera taki sam jak procesu głównego• Std I/O Dockera = Std I/O procesu
Zalety:• Łatwiejsze zarządzanie• Separacja
Wady:• Separacja ;)• Dużo Dockerów
25.03.2015 8AUG Lower Silesia
Bamboo i Docker
Bamboo 5.8Docker Task – Uruchamianie Dockerówpodczas buildu
Bamboo 5.7Uruchamianie Agentów Bamboo na Dockerze
25.03.2015 9AUG Lower Silesia
Bamboo Docker Task
• Build a Docker image• Run a Docker container
• Forground• Background
• Push a Docker image to Docker Registry
Dockerfile może być pobierany z VCS lub wpisany w Bamboo
25.03.2015 11AUG Lower Silesia
Docker w CI (Bamboo)
Zalety:• Nie potrzeba niczego poza Dockerem• Reset środowiska po każdym buildzie• Środowisko identyczne z deweloperski i produkcyjnym• Łatwa modyfikacja i powielanie środowiska testowego
Wady:• Koszt stworzenia Dockerów• Dodatkowa warstwa• Braki w Docker Task
25.03.2015 12AUG Lower Silesia
Agenci Bamboo jakokontenery Dockera (Bamboo 5.7)
Obrazy:• atlassian/bamboo-base-agent• atlassian/bamboo-java-agent
docker run -e HOME=/root/ -e BAMBOO_SERVER=http://192.168.16.11:8085 -i -t atlassian/bamboo-java-agent:5.6.1
Żeby szybko tworzyć i aktualizować agentów Bamboo
Po co?
25.03.2015 13AUG Lower Silesia
Podsumowanie
Możliwość dostarczania aplikacji razem ze środowiskiem
• Izolacja od czynników zewnętrznych• Małe narzuty• Dockerfile – tekstowy opis środowiska• Mechanizmy dystrybucji obrazów• Kompatybilność z Bamboo
„Works on my machine”„Works on THE machine”„Works everywhere”