Afin d'élever rapidement l'environnement de travail, il existe de nombreuses façons. L'un d'eux est de lever tous les services nécessaires dans des conteneurs Docker. Pour accélérer la création de nouveaux projets sur le framework Yii, j'ai écrit une si petite instruction que les développeurs de notre équipe utilisent.
Au début, vous devriez avoir docker, docker-compose, php et php-composer.
Nous créons le dossier avec le projet et le dossier docker dedans.
mkdir project-dir cd project-dir && mkdir docker
Dans le dossier docker , créez le fichier de configuration pour notre conteneur Dockerfile .
# nginx php FROM richarvey/nginx-php-fpm # ADD app /var/www/app # RUN rm -Rf /etc/nginx/sites-enabled
Dans le même dossier docker , créez docker-compose.yml pour augmenter l'environnement de développement.
# docker-compose version: '3' # deafult networks: default: driver: bridge # services: # - app: # Dockerfile build: # context: ../ dockerfile: ./docker/Dockerfile # 80 ports: - "80:80" # networks: - default # db depends_on: - db # volumes: - "../app:/var/www/app" # nginx - "./conf/nginx:/etc/nginx/sites-available" # db: image: mysql:latest # networks: - default # ports: - "3336:3306" # environment: # MYSQL_ROOT_PASSWORD: root # MYSQL_DATABASE: yii-template-db # volumes: - "./database:/var/lib/mysql"
Pour nginx, créez le dossier docker / conf / nginx et le fichier site.conf qu'il contient . Le fichier peut changer, selon la façon dont vous souhaitez configurer nginx sur votre projet. Il peut être modifié localement, car Il se connecte via le volume. Mais il ne faut pas oublier de redémarrer nginx à l'intérieur du conteneur: nginx -s reload
server { charset utf-8; client_max_body_size 128M; listen 80;
Toutes les commandes sont exécutées à partir du dossier racine.
composer create-project --prefer-dist yiisoft/yii2-app-advanced app
commande de création de composer create-project --prefer-dist yiisoft/yii2-app-advanced app
.- Exécutez l'
docker-compose -f docker/docker-compose.yml up -d
- Nous initialisons le projet
app/init --env=Development --overwrite=All
- Ouvrez le fichier app / common / config / main-local.php dans l'éditeur et remplissez-le de données pour vous connecter à la base de données. Dans l'exemple, nous avons le mot de passe root en tant que root, l'hôte DB est db, le nom de la base de données est yii-template-db.
- Connexion au conteneur
docker exec -it docker_app_1 bash
- Exécutez la commande de migration de base de données
php /var/www/app/yii migrate
- Créer un dossier de journaux
mkdir /var/www/app/log
- Et
exit
- Nous freinons le service
docker-compose -f docker/docker-compose.yml down
- Réexécutez
docker-compose -f docker/docker-compose.yml up -d
- Ouvrez localhost dans un navigateur et regardez le nouveau site.
Mise à jour: il convient de mentionner qu'il existe toujours une image Docker officielle de Yii2 .