Skip to content
GitLabGitHub

Blog

Image builder

Budowanie własnych kontenerów w procesie CI/CD może wydawać się skomplikowane, ale wcale nie musi takie być. W tym wpisie pokażę krok po kroku, jak przygotować pipeline do budowania i publikowania obrazów kontenerowych z użyciem narzędzia Buildah.

Dziś przedstawie wam, jak zbudowałem własny image builder, krok po kroku.

Buildah pozwala tworzyć obrazy kontenerów bez uruchamiania demona i bez konieczności posiadania Dockera.

  • Brak demona Buildah działa jako zwykłe polecenie CLI – nie wymaga działającego serwisu w tle (jak dockerd).
  • Rootless (bez uprawnień roota) Może budować obrazy jako zwykły użytkownik, co znacząco poprawia bezpieczeństwo.
  • Zgodność z OCI / Docker Tworzone obrazy są w pełni kompatybilne z Dockerem, Podmanem, Kubernetesem itd.
  • Skryptowalność Buildah jest zaprojektowany jako zestaw niskopoziomowych poleceń (buildah from, buildah run, buildah commit), idealnych do automatyzacji w bashu lub CI.
  • Dockerfile – opcjonalnie Obsługuje Dockerfile (buildah bud), ale nie wymusza ich użycia.

Utworzenie procesu CI dla opentofu

W tym artykule opiszę jak zbudowałem własny centralne repozytorium dla opentofu

Nadpisanie teraform states

Terraform GitLab States pozwala na zarządzanie i synchronizację stanu infrastruktury bezpośrednio w ramach projektu GitLab. Dzięki temu możliwe jest centralne przechowywanie i kontrola stanu, co ułatwia współpracę zespołową oraz automatyzację procesów CI/CD. W niniejszym dokumencie przedstawiono sposób wysyłania zmian do istniejącego stanu OpenTofu do GitLab za pomocą API.

Integracja z projektem gitlab

Terraform State to mechanizm w Terraformie, który przechowuje aktualny stan zarządzanej infrastruktury. Jest to plik (domyślnie terraform.tfstate), w którym Terraform zapisuje informacje o zasobach, ich konfiguracji oraz zależnościach. Dzięki temu Terraform może:

  1. Śledzić zmiany – porównuje aktualną infrastrukturę ze skonfigurowaną w kodzie, identyfikując różnice.
  2. Optymalizować działania – wie, które zasoby wymagają zmiany, zamiast tworzyć je od nowa.
  3. Zarządzać zależnościami – rozumie, w jakiej kolejności tworzyć, aktualizować lub usuwać zasoby.
  4. Współdzielić stan – umożliwia pracę zespołową poprzez zdalne przechowywanie stanu w backendach takich jak S3, GitLab czy Terraform Cloud.

Zarządzanie stanem jest kluczowe, dlatego warto używać zdalnego backendu zamiast przechowywać terraform.tfstate lokalnie, szczególnie w środowiskach zespołowych.