Vous trouverez dans ce repository un package qui vous permettra d'installer prestashop en local pour prestashop 1.7.8.x avec :
- php 7.4-fpm
- varnish
- mysql 5.7
Il est également destinné à être deployé sur les environnements Artifakt.
Pour ce faire il suffit de prendre l'ensemble des dossiers/fichiers et de les déposer à la racine de votre projet versionné.
Ce package est prévu pour fonctionner en local sur des architecture de type amd64 et/ou arm64 (puce M1 sur les Mac les plus récents).
La version de base est configuré sur de l'amd64, plus étendue.
Les commentaires laissés dans le docker-compose.yml sont assez clairs pour basculer sur de l'arm.
En ce qui concerne mysql et toujours dans un contexte local sur de l'arm64, il a fallu utiliser un repository custom afin de mettre en place la version 5.7 (liupeng0518/mysql:5.7-arm64)
Voici l'explication du worflow en local et depuis la console Artifakt.
En local Le déploiement suit une logique courante. Il se base sur le Dockerfile et le docker-compose.yml pour mettre en place l'environnement de développement. Afin de simuler le comportement de la console, il est nécessaire de configurer les fichiers "artifakt-custom-build-args" et ".env".
- artifakt-custom-build-args est nécessaire pour avoir accès aux différentes variables lors de la construction de l'image applicative (cf. appel du script composer_setup.sh dans le Dockerfile).
- .env est nécessaire pour avoir accès aux différentes variables lors du déploiement du conteneur applicatif (cf. utilisation dans entrypoint.sh).
Sur la console les fichiers .env, artifakt-custom-build-args et docker-compose.yml ne sont pas utilisés lors du déploiement. Seul le Dockerfile peut l'être à condition de configurer l'environnement en fonction dans le menu Settings > Build & deploy de l'environnement (Use your own Runtime).
Le workflow se déroule en deux parties, le Build et le Deploy.
Le build va utiliser le Dockerfile (custom ou natif) et le docker-compose.yml natif d'Artifakt pour construire l'image du projet et là déposer sur un registry privé sur GCP (Google cloud platform).
Afin de pouvoir ajouter des actions à ce moment nous avons mis en place un fichier build.sh afin de pouvoir surcharger le registry de base (voir "FROM" dans le Dockerfile) et le Dockerfile lui même.
Dans ce contexte et seulement dans le cadre de la commande "RUN", le build peut accéder aux variables d'environnement configurer dans la console Artifakt.
L'image de base du runtime (voir "FROM" dans le Dockerfile) appel un script (docker-entrypoint.sh) qui sera chargé de lancer l'exécution du script entrypoint.sh
Voici le détail de l'image utilisée pour ce prestashop (artifakt-php-7.4-fpm)
Lorsque l'on parle de deploy, il s'agit d'utiliser le build précédement créé. Les conteneurs sont mis en place et c'est le moment où l'on peut injecter des modifications dans le conteneur applicatif.
Les variables d'environnements sont accessibles. C'est le script entrypoint.sh ici qui se charge de toutes les actions.
L'installation en local se lance par:
docker-compose up --build -d
Dans la console artifakt on parle de jobs. Les plus utilisés sont:
- Deploy: Redéploie les conteneurs (en cas de changement sur les variables par exemple)
- Build & deploy: Reconstruction de l'image et redéploiement des conteneurs.
Ce package donne accès en local au site sur https://localhost et au backoffice sur https://localhost/admin_base
- Adresse e-mail : [email protected] (à modifier)
- Mot de passe : 0123456789 (à modifier)
Le package se compose:
- Du dossier .artifakt
- Du dossier apache/certs (certificats en local)
- Du dossier etc (permet de surcharger la configuration des services)
- mysql
- nginx
- nginx-proxy
- php
- varnish
- build.sh
- composer_setup.sh
- entrypoint.sh
- .dockerignore
- .gitignore
- artifakt-custom-build-args
- docker-compose.yml
- Dockerfile
- README.md
Commandes | Description |
---|---|
docker ps | Visualiser les conteneurs actifs |
docker ps -a | Visualiser tous les conteneurs |
docker stop CONTAINER ID | Arrêter un conteneur |
docker start CONTAINER ID | Démarrer un conteneur |
docker images | Lister les images existantes |
docker exec -t -i CONTAINER ID /bin/bash | Exécuter des commandes dans un conteneur actif |
docker inspect CONTAINER ID | Inspecter la configuration d'un conteneur |
docker logs -ft CONTAINER ID | Visualiser les logs d'un conteneur |