bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


dockerfile

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
dockerfile [2022/10/18 17:37]
enrique_mieza_sanchez
dockerfile [2023/11/06 19:14] (actual)
enric_mieza_sanchez [Millora d'un Wordpress amb Dockerfile]
Línia 1: Línia 1:
 ====== Dockerfile : creant les nostres pròpies imatges ====== ====== Dockerfile : creant les nostres pròpies imatges ======
 +
  
 El ''Dockerfile'' ens permetrà crear els nostres propis contenidors personalitzats. El ''Dockerfile'' ens permetrà crear els nostres propis contenidors personalitzats.
Línia 43: Línia 44:
 /usr/bin/bash /usr/bin/bash
 </code> </code>
-  - Ara que sabem quin és, consultem els arxius dels què depèn:<code>$ ldd /usr/bin/bash+  - Ara que sabem quin és, consultem els arxius dels què depèn (aquest exemple és de Ubuntu 20.04):<code>$ ldd /usr/bin/bash
  linux-vdso.so.1 (0x00007ffd30bad000)  linux-vdso.so.1 (0x00007ffd30bad000)
  libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f4ae17f1000)  libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f4ae17f1000)
Línia 98: Línia 99:
  
 [[https://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html]] [[https://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html]]
 +
 +=== Script d'inici ===
 +Per personalitzar una mica més la nostra imatge i donar instruccions a l'usuari, podem afegir a l'arxiu ''/etc/bash.bashrc'' algunes instruccions per personalitzar la //shell//. En aquest cas ens és suficient executar uns ''echo'' amb el missatge de benvinguda, tot i que podríem afegir instruccions més complexes com posar variables d'entorn com ''PATH'', etc.
 +
 +<file bash /etc/bash.bashrc>
 +echo "Benvingut al docker de l'Enric."
 +echo "Ara només disposeu de les comandes builtin de bash."
 +echo "Mes comandes ...coming soon..."
 +</file>
 +
 +Comprova que ens apareix el missatge si reconstruim la imatge i la posem en marxa:
 +<code>
 +$ docker build -t enric/bashic:0.1 .
 +$ docker run -ti enric/bashic:0.1
 +Benvingut al docker de l'Enric.
 +Ara només disposeu de les comandes builtin de bash.
 +Mes comandes ...coming soon...
 +bash-5.1#
 +</code>
  
 ==== Publicar imatge a Docker Hub ==== ==== Publicar imatge a Docker Hub ====
Línia 105: Línia 125:
     * ''cat''     * ''cat''
     * una altra comanda de la vostra elecció.     * una altra comanda de la vostra elecció.
-  - Quan la imatge et funcioni, crea un compte a [[https://hub.docker.com|Docker Hub]] i puja-la amb un [[https://docs.docker.com/engine/reference/commandline/push/|docker push]]:<code> docker push enric/bashic:0.1</code> +  - Posa un missatge personalitzat a ''/etc/bash.bashrc'' amb el vostre nom i les comandes que heu afegit. 
-  - Penja al Moodle la URL del Docker Hub amb el teu flamant contenidor publicat.+  - Comprova que les comandes hi son fent un ''docker run'' adient i provant les comandes. 
 +  - Crea un compte a [[https://hub.docker.com|Docker Hub]]
 +    * Poso l'exemple amb l'usuari ''enric'' però caldrà que ho feu amb el vostre usuari del Docker Hub. 
 +  - Logueja't en local per poder pujar la imatge al teu compte d'usuari:<code>$ docker login</code> 
 +  Puja la amb un [[https://docs.docker.com/engine/reference/commandline/push/|docker push]]:<code> docker push enric/bashic:0.1</code> 
 +    * ULL perquè el nom d'usuari (en aquest cas és ''enric'') ha de coincidir amb el teu usuari de Docker Hub. Per tant, abans caldrà fer el ''docker build'' també amb nom d'usuari que tingueu al Docker Hub. 
 +  - Penja al Moodle el nom complet de la imatge ''usuari/imatge:tag'' tal qual, sense res mes.
 </WRAP> </WRAP>
  
Línia 155: Línia 181:
  
 Ara farem el mateix que hem fet a l'apartat anterior amb el ''docker commit'' però de manera més formal, o sigui, mitjançant un ''Dockerfile'' combinat amb un ''docker-compose''. Ara farem el mateix que hem fet a l'apartat anterior amb el ''docker commit'' però de manera més formal, o sigui, mitjançant un ''Dockerfile'' combinat amb un ''docker-compose''.
 +
 +Amb això crearem una imatge de Wordpress personalitzada amb les modificacions que ens interessa (pel cas, que ens permeti pujar arxius grans).
  
  
Línia 160: Línia 188:
 <WRAP todo> <WRAP todo>
   - Crea una carpeta de projecte ''wpplus'' i posa un ''docker-compose.yml'' oficial de Wordpress.   - Crea una carpeta de projecte ''wpplus'' i posa un ''docker-compose.yml'' oficial de Wordpress.
-  - Afegeix l'arxiu ''uploads.ini'': <code>file_uploads = On+  - Afegeix l'arxiu ''uploads.ini'': <file php uploads.ini>file_uploads = On
 memory_limit = 500M memory_limit = 500M
 upload_max_filesize = 500M upload_max_filesize = 500M
 post_max_size = 500M post_max_size = 500M
 max_execution_time = 600 max_execution_time = 600
-</code+</file
-  - Modifica el ''docker-compose.yml'' similarment a l'exercici anterior per poder fer un **build** (substituir l'apartat //image// per //build//)+  - Modifica el ''docker-compose.yml'' oficial de Wordpress substituint l'apartat //image// per //build//Així **generarem una imatge personalitzada "al vuelo" a partir del ''Dockerfile''**:<file yml docker-compose.yml>    #image: wordpress 
-  - Al ''Dockerfile'' només li cal:<code>+    build: .</file> 
 +  - Al ''Dockerfile'' només li cal:<file Dockerfile Dockerfile>
 FROM wordpress FROM wordpress
 COPY uploads.ini /usr/local/etc/php/conf.d/uploads.ini COPY uploads.ini /usr/local/etc/php/conf.d/uploads.ini
-</code>+</file>
   - (No li cal CMD o ENTRYPOINT perquè ho hereda del pare //wordpress//).   - (No li cal CMD o ENTRYPOINT perquè ho hereda del pare //wordpress//).
   - Posa-ho en marxa i, quan et funcioni, mostra-ho al professor amb les adequades explicacions i comprovacions.   - Posa-ho en marxa i, quan et funcioni, mostra-ho al professor amb les adequades explicacions i comprovacions.
-  - Carrega la imatge ''wordpressplus'' al teu usuari de [[https://hub.docker.com/|Docker Hub]] mitjançant [[https://docs.docker.com/engine/reference/commandline/push/|docker push]].+  - Carrega la imatge ''wordpressplus'' al teu usuari de [[https://hub.docker.com/|Docker Hub]]
 +    * Etiqueta la nova imatge amb [[https://docs.docker.com/engine/reference/commandline/tag/|docker tag]] 
 +    * Carrega la imatge [[https://docs.docker.com/engine/reference/commandline/push/|docker push]].
 </WRAP> </WRAP>
  
dockerfile.1666114664.txt.gz · Darrera modificació: 2022/10/18 17:37 per enrique_mieza_sanchez