( jokeman | 2022. 08. 19., p – 20:57 )

Semmi gond nincs a commit parancs használatával, nyilván nem véletlenül létezik. ;)

Abban igazuk van a többieknek, hogy jellemzően nem a módosítok-módosítok-commitolok ciklust érdemes követni, hanem a módosítok-Dockerfiletszerkesztek-buildelek ciklust, mert úgy lesz később könnyen reprodukálható, hogy mit csináltál (meg egyszerűbb is visszalépni, ha valamit elszúrsz), cserében kicsit időigényesebb.

Ettől függetlenül arra tökéletesen megfelel a commitolós módszer, hogy kísérletezz, és elmentsd magadnak, amit már egyszer végigszívtál. Valami olyasmi megoldás ez, mint amikor az ember programírás közben először odahány egy "csak működjön" megoldást, aztán mielőtt közzéteszi (pl. git commit/push), szépen kitisztázza. A commitolós megoldás az "odahányás", a Dockerfile-os a szépen letisztázott változat.

De hogy érdemi is legyen:

1. Docker layerek (és így a commit) szempontjából teljesen mindegy, hogy egy-egy fájlmódosítást kézzel csinálsz vagy valami program (beleértve a csomagkezelőt is). A Docker ezzel nem foglalkozik. Ami viszont fontos lehet, hogy az adott könyvtárat (vagy annak valamelyik ősét) milyen módon látja a Docker. Ha valamelyik containerben lévő layer tartalmazza az adott könyvtárat (pl. az image-dzsel jött), akkor annak a módosítását a commitnak elvileg mentenie kell. Ha viszont valamilyen volume van becsatolva és az alatt lévő dolgokat módosítasz, azt a commit nem menti. A doksi így szól róla: The commit operation will not include any data contained in volumes mounted inside the container.

Ahhoz, hogy kiderüljön, volume-ként van-e csatolva a könyvtár, látni kellene pl. a parancssort, amit használtál az indításkor (docker run...)

Másik lehetőség, hogy használod a

docker inspect konténerneve

parancsot, ami a konténer aktuális beállításait fogja kiírni. Abban van egy "Mounts"-blokk, ami mutatja az összes csatolt volume-ot.

Én innen indulnék tovább a nyomozással. :)

2. Írtad, hogy "A php.ini-t meg még nem találtam meg, így nem tudom, hogy a kézzel bevitt változás is átment-e vagy nem." A php.ini helyét egész könnyen ki lehet deríteni úgy, hogy kiadod a

php -i

parancsot, ami minden PHP-beállítást listáz, de a legelején azt is, hogy ezeket a beállításokat milyen ini-fájlokból szedi össze. (Ez a megoldás a parancssoros php-re vonatkozóan mutatja az ini-fájlokat, de általában a web alatt futó php ini-fájljai is ott vannak a környéken valahol.)