Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
dockerfile [2022/06/29 14:33] antonio_duenas |
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 '' | El '' | ||
Línia 43: | Línia 44: | ||
/ | / | ||
</ | </ | ||
- | - Ara que sabem quin és, consultem els arxius dels què depèn:< | + | - Ara que sabem quin és, consultem els arxius dels què depèn |
linux-vdso.so.1 (0x00007ffd30bad000) | linux-vdso.so.1 (0x00007ffd30bad000) | ||
libtinfo.so.6 => / | libtinfo.so.6 => / | ||
Línia 98: | Línia 99: | ||
[[https:// | [[https:// | ||
+ | |||
+ | === Script d' | ||
+ | Per personalitzar una mica més la nostra imatge i donar instruccions a l' | ||
+ | |||
+ | <file bash / | ||
+ | echo " | ||
+ | echo "Ara només disposeu de les comandes builtin de bash." | ||
+ | echo "Mes comandes ...coming soon..." | ||
+ | </ | ||
+ | |||
+ | Comprova que ens apareix el missatge si reconstruim la imatge i la posem en marxa: | ||
+ | < | ||
+ | $ docker build -t enric/ | ||
+ | $ docker run -ti enric/ | ||
+ | Benvingut al docker de l' | ||
+ | Ara només disposeu de les comandes builtin de bash. | ||
+ | Mes comandes ...coming soon... | ||
+ | bash-5.1# | ||
+ | </ | ||
==== Publicar imatge a Docker Hub ==== | ==== Publicar imatge a Docker Hub ==== | ||
<WRAP todo> | <WRAP todo> | ||
- | - Afegeix | + | - Afegeix |
- | - Quan la imatge et funcioni, crea un compte a [[https:// | + | * '' |
- | - Penja al Moodle | + | * '' |
+ | * una altra comanda de la vostra elecció. | ||
+ | - Posa un missatge personalitzat a ''/ | ||
+ | | ||
+ | - Crea un compte a [[https:// | ||
+ | * Poso l' | ||
+ | - Logueja' | ||
+ | | ||
+ | * ULL perquè el nom d' | ||
+ | - Penja al Moodle el nom complet de la imatge '' | ||
</ | </ | ||
Línia 152: | Línia 181: | ||
Ara farem el mateix que hem fet a l' | Ara farem el mateix que hem fet a l' | ||
+ | |||
+ | Amb això crearem una imatge de Wordpress personalitzada amb les modificacions que ens interessa (pel cas, que ens permeti pujar arxius grans). | ||
Línia 157: | Línia 188: | ||
<WRAP todo> | <WRAP todo> | ||
- Crea una carpeta de projecte '' | - Crea una carpeta de projecte '' | ||
- | - Afegeix l' | + | - Afegeix l' |
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 '' | + | - Modifica el '' |
- | - Al '' | + | build: .</ |
+ | - Al '' | ||
FROM wordpress | FROM wordpress | ||
COPY uploads.ini / | COPY uploads.ini / | ||
- | </code> | + | </file> |
- (No li cal CMD o ENTRYPOINT perquè ho hereda del pare // | - (No li cal CMD o ENTRYPOINT perquè ho hereda del pare // | ||
- 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 '' | + | - Carrega la imatge '' |
+ | * Etiqueta la nova imatge amb [[https:// | ||
+ | * Carrega la imatge | ||
</ | </ | ||
Línia 177: | Línia 211: | ||
===== Primera webapp amb Flask, Dockerfile i Docker-compose ===== | ===== Primera webapp amb Flask, Dockerfile i Docker-compose ===== | ||
- | Segons la [[https:// | + | Continua a l' |
- | + | ||
- | <file yaml docker-compose.yml> | + | |
- | version: " | + | |
- | services: | + | |
- | web: | + | |
- | build: . | + | |
- | ports: | + | |
- | - " | + | |
- | redis: | + | |
- | image: " | + | |
- | </ | + | |
- | + | ||
- | <file Dockerfile Dockerfile> | + | |
- | # syntax=docker/ | + | |
- | FROM python: | + | |
- | WORKDIR /code | + | |
- | ENV FLASK_APP=app.py | + | |
- | ENV FLASK_RUN_HOST=0.0.0.0 | + | |
- | RUN apk add --no-cache gcc musl-dev linux-headers | + | |
- | COPY requirements.txt requirements.txt | + | |
- | RUN pip install -r requirements.txt | + | |
- | EXPOSE 5000 | + | |
- | COPY . . | + | |
- | CMD [" | + | |
- | </ | + | |
- | + | ||
- | <file python app.py> | + | |
- | import time | + | |
- | + | ||
- | import redis | + | |
- | from flask import Flask | + | |
- | + | ||
- | app = Flask(__name__) | + | |
- | cache = redis.Redis(host=' | + | |
- | + | ||
- | def get_hit_count(): | + | |
- | retries = 5 | + | |
- | while True: | + | |
- | try: | + | |
- | return cache.incr(' | + | |
- | except redis.exceptions.ConnectionError as exc: | + | |
- | if retries == 0: | + | |
- | raise exc | + | |
- | retries -= 1 | + | |
- | time.sleep(0.5) | + | |
- | + | ||
- | @app.route('/' | + | |
- | def hello(): | + | |
- | count = get_hit_count() | + | |
- | return 'Hello World! I have been seen {} times.\n' | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | <file text requirements.txt> | + | |
- | flask | + | |
- | redis | + | |
- | </ | + | |
- | + | ||
- | I podríem posar en marxa el nou projecte amb: | + | |
- | $ docker-compose up -d --build | + | |
- | + | ||
- | I veure la web amb el browser a: | + | |
- | http://< | + | |
- | + | ||
- | Per saber més pots llegir: | + | |
- | * Projectes de [[Python Web]]. | + | |
- | * Entorns d' | + | |
- | + | ||
- | + | ||
- | ==== Exercici Dockerfile ==== | + | |
- | <WRAP todo> | + | |
- | Si poses en marxa l' | + | |
- | + | ||
- | Modifica el '' | + | |
- | </ | + | |