Docker #3 konfiguracja w Python’ie – pydocker

Docker #3 konfiguracja w Python'ie - pydocker

Poziom trudności
2/5

W poprzednim artykule z serii o Dockerach, przedstawiłem Dockerfile. Jest to bardzo użyteczne narzędzie do konfiguracji Dockera, lecz może być zbyt sztywne. Oczywiście możesz je edytować i na tej podstawie budować nowe kontenery, le dlaczego tego nie zautomatyzować? Jak zawsze z pomocą przychodzi Python. W tym wypadku użyjemy biblioteki pydocker, dzięki której możemy tworzyć konfigurację kontenerów bezpośrednio w Pythonie, a tym samym budować Python’em kontenery i je uruchamiać – pełna automatyzacja.

Instalacja

Przed rozpoczęciem instalacji pydocker’a, zainstaluj też dockera:

Jednym z najprostszych sposobów instalacji biblioteki pydocker jest użycie programu pip:

pip install pydocker

Konfiguracja kontenera

Będę bazował na konfiguracji z Dockerfile z poprzedniej cześci serii o Dockerach.

Zacznijmy jednak od zaciągnięcia z biblioteki pydocker klasy DockerFile. Następnie za jej pomocą możemy utworzyć obiekt, inicjalizując dwa argumenty:
base_img – na jakim obrazie systemu będzie bazował
name – jaką będzie miał nazwę – musi ona składać się z {nazwy_lokalnej}/{system_na_jakim_bazuje}:{własny_numer_wersji}

  1. from pydocker import DockerFile
  2. docker = DockerFile(base_img='ubuntu:20.04', name='test/ubuntu:0.0.1')

Konfigurację wprowadzamy za pomocą metody RUN_bash_script tworzącej i wywołującej skrypt bash’owy. W metodzie tej uzupełniamy dwa argumenty. Pierwszy z nich to ścieżka do pliku, jaki ma zostać utworzony i uruchomiony przy starcie kontenera. Drugi to zawartość tego pliku:

  1. from pydocker import DockerFile
  2. docker = DockerFile(base_img='ubuntu:20.04', name='test/ubuntu:0.0.1')
  3. docker.RUN_bash_script('/opt/set_repo.sh', r'''
  4. apt-get -y update
  5. apt-get -y upgrade
  6. apt-get install -y python3.8
  7. apt-get install -y python3-pip
  8. pip3 install pytest
  9. ''')

Budowanie kontenera

Do zbudowania kontenera wystarczy użycie metody buid_img() z wcześniej utworzonego obiektu docker

  1. from pydocker import DockerFile
  2. docker = DockerFile(base_img='ubuntu:20.04', name='test/ubuntu:0.0.1')
  3. docker.RUN_bash_script('/opt/set_repo.sh', r'''
  4. apt-get -y update
  5. apt-get -y upgrade
  6. apt-get install -y python3.8
  7. apt-get install -y python3-pip
  8. pip3 install pytest
  9. ''')
  10. docker.build_img()

Uruchomienie skryptu

Całość zapisałem do pliku docker.py, który uruchomię przy pomocy Python’a. Następnie sprawdzę, czy obraz Docker’a został stworzony:

    python docker.py
    docker images

I tak udało się utworzyć obraz świeżo skonfigurowanego Docker’a za pomocą biblioteki Pythona:

    REPOSITORY TAG IMAGE ID CREATED SIZE test/ubuntu 0.0.1 796577c88830 6 seconds ago 401MB

W kolejnej części serii o Docker’ach zaprezentuję, jak możemy uruchamiać testy na skonfigurowanym kontenerze.

Dodaj komentarz