====== Upgrade de contenidors amb Docker ====== Amb [[Docker]] podem fer desplegaments molt ràpids, eficients i segurs, però cal també mantenir-los. Entre altres tasques, caldrà actualitzar les versions del CMS que instal·lem i de les seves llibreries internes. Referències en aquesta mateixa wiki: * [[Docker-compose]] * [[Docker]] {{tag> #Asix #Ceti #Ciber #CetiMp03 #CiberMp03 docker compose update upgrade actualitzacio DevOps containers contenidors }} ===== Introducció ===== Algunes consideracions: * Cada CMS o software tenen la seva pròpia manera de "dockeritzar-se", tot i que hi ha algunes bones pràctiques comunes. * No es pot generalitzar un procés únic d'actualització. * Com veurem, un cop realitzada la instal·lació i amb el volum persistit, canviar el container pot no canviar directament la versió del //software// del CMS. Actualitzar el container de Wordpress només actualitza la versió de PHP i no la del CMS. * Veurem dos casos paradigmàtics, el docker de Wordpress no canvia la seva versió i el Mediawiki, en canvi, sí. Tot depèn de com han estat configurats. * Per actualitzar, finalment, caldrà fer-ho des del propi //backend// del CMS. Si hi hagués algun conflicte amb les versions de partida i destí de PHP que necessita el CMS, una possible solució seria fer l'actualització en 2 passes, passant per una versió intermitja que tingui una versió de PHP compatible amb les dues versions. \\ ===== Actualitzar Wordpress docker ===== Farem servir el docker-compose de la [[https://hub.docker.com/_/wordpress|pàgina oficial de Wordpres Docker]]. Actualització de contenidors: * Instal·la la versió 4 de Wordpress en una nova carpeta de projecte. * Caldrà que canviïs el //tag// del contenidor //wordpress//. * Per identificar si l'upgrade funciona, cal que personalitzem la instal·lació: * Edita el nom del //blog// * Afegeix un article que es vegi a la portada. * Personalitza el skin (canvia per algun ben diferent del //default//). * Entra al contenidor del //wordpress// i comprova quines versions tenim: * Versió de PHP * Versió exacta del Wordpress (li hem dit la 4, però no sabem si haurà instal·lat la 4.1 o la 4.8.2...) Passem a fer l'upgrade: * Apaga el projecte de contenidors amb un ''down''. * Canvia el //tag// a la darrera versió estable (no facis //latest//, ja que al traslladar el container a un altre lloc en un altre moment ens podria descarregar una altra versió). * Engega de nou el projecte. * Visualitza el Wordpress per veure si segueix funcionant. * Entra al contenidor //wordpress// i comprova les versions de PHP i del propi WP. * Quins canvis hi ha hagut? \\ ===== Actualitzar Mediawiki docker ===== Aquest cas és diferent de l'anterior. Canviar el contenidor sí que modificarà la versió del //software// del CMS. - [[https://hub.docker.com/_/mediawiki|Instal·la Mediawiki amb Docker]] amb algunes modificacions: * Canviar al ''docker-compose'' la versió de Mediawiki a la 1.31. * Persisir les carpetes: * ''/var/lib/mysql'' del contenidor ''database'' * ''/var/www/html/images'' del contenidor ''mediawiki'' - Tal i com s'explica a la documentació i als comentaris del docker-compose, cal descarregar ''LocalSettings.php'' al mateix directori del ''docker-compose.yml'' i descomentar la línia:# - ./LocalSettings.php:/var/www/html/LocalSettings.php - Destruir (down) i arrencar de nou (up) la instància. Comprovar que funciona i afegir alguna frase a la pàgina principal per a testejar. - Comprovar que tenim la versió 1.31 a la pàginahttp://localhost:8080/index.php/Especial:Versió - Destruir la instància mitjançant: $ docker-compose down - Canviar (actualitzar) la versió de Mediawiki a la 1.36 - Posar en marxa de nou la instància. - Consultar la pàgina d'actualització oficial de la Mediawiki. Al canviar el //docker// hem actualitzat el software (codi PHP) però cal actualitzar les taules de la BD. - Actualitzar la BD anant a http://localhost:8080/mw-config - Ens demanarà la ''upgrade-key'' que està a LocalSettings.php . Seguim el procès d'upgrade fins el final. - Comprovar que s'ha actualitzat correctament la versió de Mediawiki. \\