Jak ograć Docker i wartości tajne?

1

Hej, pytanie jak fachowo powinno się podejść do tajnych wartosci z configa? Przykładowo mam tam connectionStringi itp., nie chce ich w appSettings.json by nie były w repozytorium. Z tego powodu używam dotnewoych secretów na swoim środowisku. A co w przypadku, gdy chce aplikację spakować w dockerowy image by frontend developer mógł jedną komendą sobie uruchomić taką aplikację? Czy mogę jakoś przekazać mu swoj plik z sekretami by po odpaleniu takiego kontenera miał podpięte sekrety? Czy musze koniecznie je hardkodowac w dockerfile?

2

Docker także ma sekrety: https://blog.codito.pl/2022/04/docker-compose-sekrety-dostepne-w-trakcie-budowania/

Edit: z tego co widzę wsparcie jest od wersji 2.5, ja kilka dni temu instalowałem na nowej maszynie i oficjalna stabilna to już wersja 2.7.

5

Konfiguracji i tak się nie pakuje w dockerfile, bo jest ona po to, żeby ją zmieniać w zależności od wymagań końcowego użytkownika.

Najważniejsze: w jaki sposób aplikacja czyta sekrety na produkcji? Jak jest to plik to po prostu dodaj w instrukcji jak uruchomić kontener w taki sposób, żeby plik z sekretami pojawił się tam gdzie powinień. Jak chcesz, żeby plik z hosta (np. komputer frontasa) był dostępny w kontenerze to musisz użyć volumów.

ccwrc napisał(a):

Docker także ma sekrety: https://blog.codito.pl/2022/04/docker-compose-sekrety-dostepne-w-trakcie-budowania/

Edit: z tego co widzę wsparcie jest od wersji 2.5, ja kilka dni temu instalowałem na nowej maszynie i oficjalna stabilna to już wersja 2.7.

Ale to jest w czasie budowania jak. np potrzebujesz hasła, żeby pobrać jakąś zależność albo dobić się do farmy budującej.

2

dotnetowe sekrety działają z automatu przez zmienne środowiskowe, więc możesz je spokojnie przekazywać przy uruchamianiu kontenera w ten sposób.

I wtedy możesz przekazac komuś plik docker-compose wraz z .env i mieć to od razu z głowy.

https://auth0.com/blog/secret-management-in-dotnet-applications/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.