Aktywne Wpisy

vieniasn +81
jestem tak stary że pamiętam jak w każdą niedzielę można było iść do sklepu kupić sobie napój bez przytwierdzonej nakrętki i nie trzeba było zanosić tej butelki potem do sklepu żeby odzyskać swoje skradzione 50gr
lukasz-dit +38
Treść przeznaczona dla osób powyżej 18 roku życia...





Robię sobie swój obraz Dockerowy na podstawie tego Postgresowego. Chcę go rozszerzyć o ściągnięcie moich danych i załadowanie do bazy (żeby potem każdy mógł łatwo odpalić bazę z moim datasetem). Mam już wszystkie skrypty itd.
Zrobiłem inicjowanie według tego: https://hub.docker.com/_/postgres#initialization-scripts
Tzn. podczas budowania obrazu (w Dockerfile) wrzucam do folderu
/docker-entrypoint-initdb.d/dwa pliki: skrypt, który zajmuje się ściągnięciem danych i SQL, która ładuje do bazy. Wszystko działa.Jednak te skrypty uruchamiają się dopiero przy starcie kontenera (
docker run), a nie przy budowaniu obrazu (docker build). Chciałbym, żeby było odwrotnie. Żeby przy budowaniu obrazu się ściągnęło (co będzie trwać długo), ale potem przy starcie, żeby było szybko (żeby każdy mógł na szybko usunąć kontener i uruchomić nowy).Spytacie czemu nie napiszę sobie własnego Dockerfile z własnym entrypoint? Już próbowałem, ale twórcy tego obrazu Postgresowego zalecają tak jak zrobiłem wyżej. Jak próbuję nadpisać entrypoint, to nie mogę np. przekazać parametrów uruchomieniowych i w ogóle nie startuje Postgres (w ogóle kontener się wywala).
Mogę do RUN wrzucić ściąganie plików. Ale ładowania do bazy nie mogę, bo przecież użytkownik podaje nazwę bazy, użytkownika i hasło dopiero podczas
docker run. To we własnym skrypcie nie wiem jakim loginem i hasłem się połączyć (np.$POSTGRES_PASSWORDnie istnieje jeszcze w tym momencie).Masz może pomysł jak najlepiej powiadomić użytkownika, że baza jeszcze nie jest gotowa, bo do niej ładuję dane? Bo jak jest etap
docker buildto użytkownik widzi, że coś się dzieje, mogę robić echo na ekran i czeka aż się skończy. A jak jest etapdocker runto komenda wykonuje się natychmiastowo, a reszta dzieje się w tyle. Dopiero jakTeraz mam ściąganie danych podczas budowania obrazu. Ale ich ładownie do bazy (co też trwa długo) nadal mam podczas uruchamiania. I tego już nie wiem jak przenieść (bo nie mam nazwy bazy, usera, ani hasła podczas budowania).