Aktywne Wpisy

asdfghjkl +142
Najlepsza oliwa? Od drzewa, które myśli, że to już koniec. Tak to właśnie jest mili państwo ¯\(ツ)/¯
Na południu Krety lato wygląda tak: 40 stopni w cieniu (jeśli znajdziesz cień), ziemia przypomina rozgrzaną cegłę, deszcz ostatni raz był w kwietniu, a następny będzie… może w listopadzie. I w tym wszystkim stoi sobie oliwka.
Nie podlewasz jej. Nie głaszczesz. Nie pytasz, czy ma wszystko, czego potrzebuje. Zostawiasz ją samą sobie. I co robi? Nie umiera.
Na południu Krety lato wygląda tak: 40 stopni w cieniu (jeśli znajdziesz cień), ziemia przypomina rozgrzaną cegłę, deszcz ostatni raz był w kwietniu, a następny będzie… może w listopadzie. I w tym wszystkim stoi sobie oliwka.
Nie podlewasz jej. Nie głaszczesz. Nie pytasz, czy ma wszystko, czego potrzebuje. Zostawiasz ją samą sobie. I co robi? Nie umiera.

arinkao +17





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).