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 | ||
|
dockeritzacio_aplicacions_php [2022/07/13 11:06] jordi_selga_ruiz |
dockeritzacio_aplicacions_php [2022/07/14 11:31] (actual) jordi_selga_ruiz [Comprovació de funcionament] |
||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| ====== Dockerització d' | ====== Dockerització d' | ||
| - | {{tag> #FpInfor #Ciber #CiberMp03 #Ceti #php #mysql #docker #Laravel}} | + | {{tag> #FpInfor #Ciber #CiberMp03 #Ceti #php #mysql # |
| ===== Requeriments previs ===== | ===== Requeriments previs ===== | ||
| Per seguir bé aquest article cal tenir coneixements de [[docker|Docker pràctic]] i [[docker-compose|Docker Compose]] i s'ha de tenir instal·lat al sistema [[https:// | Per seguir bé aquest article cal tenir coneixements de [[docker|Docker pràctic]] i [[docker-compose|Docker Compose]] i s'ha de tenir instal·lat al sistema [[https:// | ||
| + | |||
| + | ===== Referències ===== | ||
| + | * Tutorial base d' | ||
| + | * Documentació de Docker - https:// | ||
| + | |||
| ===== Desplegament d’aplicació en php i mysql ===== | ===== Desplegament d’aplicació en php i mysql ===== | ||
| Línia 64: | Línia 69: | ||
| mysql-data: | mysql-data: | ||
| </ | </ | ||
| - | Pel que fa al servei de BBDD utilitzem la imatge mysql:8.0 del repositori oficial. Definim un volum amb la directiva // volumes // on enllacem el volum intern de la imatge // / | + | Pel que fa al servei de BBDD utilitzem la imatge mysql:8.0 del repositori oficial. Definim un volum amb la directiva // volumes // on enllacem el directori |
| - | Finalment es defineix un volum intern de docker per assegurar la persistència | + | Finalment es defineix un volum intern de docker per assegurar la persistència |
| ==== Arrencada dels contenidors ==== | ==== Arrencada dels contenidors ==== | ||
| + | El primer cop hem d' | ||
| < | < | ||
| docker-compose up -d --build | docker-compose up -d --build | ||
| + | </ | ||
| + | Comprovem que els dos contenidors estan arrencats amb // docker ps //: | ||
| + | < | ||
| + | docker ps | ||
| + | CONTAINER ID | ||
| + | 33cdc1c58ecd | ||
| + | 7e2fbd45531d | ||
| </ | </ | ||
| + | ==== Importar la base de dades ==== | ||
| + | Per importar una base de dades existent hem de copiar un fitxer sql que contingui l' | ||
| + | < | ||
| + | docker cp bank.sql mysql-server-80:/ | ||
| + | </ | ||
| + | < | ||
| + | docker exec -i mysql-server-80 mysql -u root -proot bank < bank.sql | ||
| + | </ | ||
| + | En el cas d' | ||
| + | < | ||
| + | mysql> select * from compte; | ||
| + | +----+--------+-------+--------+ | ||
| + | | id | codi | saldo | client | | ||
| + | +----+--------+-------+--------+ | ||
| + | | 1 | BK 100 | 15000 | 1 | | ||
| + | | 2 | BK 101 | 200 | 1 | | ||
| + | | 3 | BK 200 | 18000 | 2 | | ||
| + | +----+--------+-------+--------+ | ||
| + | 3 rows in set (0.00 sec) | ||
| + | |||
| + | </ | ||
| + | |||
| + | ==== Comprovació de funcionament ==== | ||
| + | Ara podem entrar a l' | ||
| + | Es mostra el llistat dels comptes on s'ha afegit mitjançant l' | ||
| + | {{: | ||
| + | |||
| + | També podem comprovar que si aturem els contenidors i els tornem a arrencar les dades persisteixen gràcies a l'ús de volums. | ||
| + | < | ||
| + | docker-compose down | ||
| + | Stopping app_php | ||
| + | Stopping mysql-server-80 ... done | ||
| + | Removing app_php | ||
| + | Removing mysql-server-80 ... done | ||
| + | Removing network dockerphp_default | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | docker-compose up -d | ||
| + | Creating network " | ||
| + | Creating mysql-server-80 ... | ||
| + | Creating mysql-server-80 ... done | ||
| + | Creating app_php ... | ||
| + | Creating app_php ... done | ||
| + | |||
| + | </ | ||
| + | |||
| + | < | ||
| + | select * from compte; | ||
| + | +----+--------+--------+--------+ | ||
| + | | id | codi | saldo | client | | ||
| + | +----+--------+--------+--------+ | ||
| + | | 1 | BK 100 | 15000 | 1 | | ||
| + | | 2 | BK 101 | 200 | 1 | | ||
| + | | 3 | BK 200 | 18000 | 2 | | ||
| + | | 4 | BK 345 | 123456 | 2 | | ||
| + | +----+--------+--------+--------+ | ||
| + | 4 rows in set (0.00 sec) | ||
| + | |||
| + | </ | ||
| + | ==== REPTE 1 ==== | ||
| + | |||
| + | <WRAP center todo> | ||
| + | Fent servir el recurs penjat a: https:// | ||
| + | </ | ||
| + | |||
| + | ==== REPTE 2 ==== | ||
| + | |||
| + | <WRAP center todo> | ||
| + | Dockeritza una aplicació pròpia o bé alguna que trobis en algun repositori fent servir de guia els passos indicats anteriorment. Comprova que la pots fer funcionar al la tema màquina local | ||
| + | Exeples d' | ||
| + | * https:// | ||
| + | * https:// | ||
| + | </ | ||
| + | |||
| + | ===== Dockerització d' | ||
| + | |||
| + | Si ja estem enfocats a Docker i habituat una possibilitat és que ja desenvolupem els nostres projectes directament amb un framework muntat sobre docker com per exemple de la forma que es descriu en l' | ||
| + | |||
| + | ==== Symfony ==== | ||
| + | |||
| + | S'ha de procedir igual que s'ha fet amb l' | ||
| + | Cal tenir en compte dues coses importants: | ||
| + | * S'ha d' | ||
| + | * La variable d' | ||
| + | |||
| + | ==== Laravel ==== | ||
| + | |||
| + | De la mateixa manera podem dockeritzar una aplicació feta amb Laravel | ||
| + | Cal tenir en compte dues coses importants: | ||
| + | * S'ha d' | ||
| + | * Les variables d' | ||
| + | - DB_CONNECTION=[mysql, | ||
| + | - DB_HOST=[nom del servei] | ||
| + | - DB_PORT=[port intern on s' | ||
| + | - DB_DATABASE=[nom de la BBDD] | ||
| + | - DB_USERNAME=[nom d' | ||
| + | - DB_PASSWORD=[password de k' | ||
| + | Aquestes variables s'han d' | ||
| + | ==== Resum Frameworks ==== | ||
| + | Tant amb Symfony com amb Laravel el més important és definir bé les variables d' | ||
| + | L' | ||
| + | |||
| + | En el Dockerfile caldria afegir les linies necessàries per instal·lar composer | ||
| + | < | ||
| + | RUN php -r " | ||
| + | RUN php composer-setup.php --install-dir=. --filename=composer | ||
| + | RUN mv composer / | ||
| + | </ | ||