Portál AbcLinuxu, 28. července 2025 06:01


Dotaz: Docekr

27.4.2017 17:13 andolf
Docekr
Přečteno: 255×
Odpovědět | Admin

Ahoj, muzete mi prosim vysvetlit, proc kdyz v dockerfilu, viz nize mam vytvoreni slozek, pri spusteni containeru ty slozky nejsou k dispozici.

FROM postgres:9.6
RUN bash -c 'mkdir -pv /var/lib/postgresql/data/{a,b,c}'

Tohle si vybuilduji s tagem postgres:mojeverze Kdyz se podivam do containeru, tak ty slozky tam proste nejsou. Tomu nejak nerozumim. I pri vybuildeni se ukaze, ze slozky tam vytvorene jsou.

Co se stane je to, ze v dalsim layeru se provede exec nad danym imagem a meli by se ty slozky vytvorit, ne? Diky

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.4.2017 17:23 andolf
Rozbalit Rozbalit vše Re: Docekr
Odpovědět | | Sbalit | Link | Blokovat | Admin
Teda pravdepodobne se stane asi to, ze postgres si vytvori slozky az po spusteni a adresare nejdriv vymaze a pak tam teprve vytvori sve.
27.4.2017 17:46 andolf
Rozbalit Rozbalit vše Re: Docekr
Kdyz se teda podivam na https://github.com/docker-library/postgres/blob/3d4e5e9f64124b72aa80f80e2635aff0545988c6/9.6/Dockerfile, tak je legitmni udelat dockerfile takto ?:
FROM postgres:9.6
ENTRYPOINT ["docker-entrypoint.sh"]
RUN bash -c 'mkdir -pv /var/lib/postgresql/data/{a,b,c}'
27.4.2017 21:45 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Docekr
Odpovědět | | Sbalit | Link | Blokovat | Admin
Používáte jako předka obraz postgres, který má cestu /var/lib/postgresql/data nastavenou jako volume. Takže vy v tom obrazu vytvoříte složky /var/lib/postgresql/data/{a,b,c}, a když na jeho základě následně vytvoříte a spustíte kontejner, Docker do /var/lib/postgresql/data/ namapuje volume – takže ty vaše složky zůstanou skryté pod tím mountpointem. Kdybyste uvnitř toho kontejneru volume odmountoval, vaše složky se tam zase objeví.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.