## Clone this repos clone a older docker of a similar project ``` git clone -o gogs gogs@figureslibres.io:bachir/docker-popsu.git ``` or download docker folder from gogs ## Change name and old project occurences open folder in Vscodium and : change folder name change occurence in Readme (ctrl + D pour sélectionner tout en même temps) dossier Docker: php mettre bonne version Docker-compose.yml Makefile .env (project name donne le nom aux containers) docker > nginx > default.conf ## xdebug copy ```ressources/xdebug.ini.exemple``` to ```ressources/xdebug.ini``` ### git remove old folder git ``` rm -rf .git rm .gitmodules ``` create new git repositorie ``` git init git add . git commit -m 'first commit' git remote add origin https://figureslibres.io/gogs/ouidade/docker-training.git git push -u origin master ``` ## Hosts and reverse proxy add to your /etc/hosts : ``` 127.0.0.1 dev.training.fr 127.0.0.1 dev.phpmyadmin.training.fr ``` configure your vhosts to add a reverse proxy that will redirect the dev.training.fr to our container create new file, dev.training.fr.conf, in /etc/nginx/sites-available ``` server { listen 80; server_name dev.training.fr; access_log off; error_log /var/log/nginx/training/error.log error; client_max_body_size 100m; location / { proxy_pass http://127.0.0.1:8980; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; } } server { listen 80; server_name dev.phpmyadmin.training.fr; location / { proxy_pass http://127.0.0.1:8981; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; } } ``` ``` sudo ln -s /etc/nginx/sites-available/dev.training.fr.conf /etc/nginx/sites-enabled ``` ``` sudo nginx -t ``` all should be ok ``` sudo systemctl restart nginx ``` ### build docker ``` make build make up make ps ``` ### instal drupal with composer ``` cd public_html composer create-project drupal/recommended-project:^9.5 . ``` ## clone this profile into profiles folder ``` cd profiles git clone -o figli https://figureslibres.io/gogs/bachir/drupal-starterkit-profile.git ``` ## include the profile's composer file to the main drupal's composer file install composer-merge-plugin ``` composer require wikimedia/composer-merge-plugin ``` then in main drupal's composer.js file add this in extra ``` "extra": { ... "merge-plugin": { "include": [ "web/profiles/d8-starterkit-profile/composer.json" ], "recurse": true, "replace": false, "merge-extra": true } ... } ``` ## install the profile's merged dependencies with composer cd ../ composer update ### sites/default setup ``` mkdir -p web/sites/default/files cp web/sites/default/default.settings.php web/sites/default/settings.php ``` in docker exit container php and re-log as root in php container ``` docker exec -u 0 -it training-php-1 bash ``` then aply changes ``` chgrp -R www-data web/sites/default/files chgrp -R www-data web/sites/default/settings.php chmod g+r web/sites/default/files chmod g+r web/sites/default/settings.php ``` exit container php as root ```ctrl + D``` ### install database with install drupal on navigator choose profile figli starter kit for set up database use info in .env file (for work localserver only passwords very basic, be carefull if on line) advanced options : hosts : mysql in dump databse there will be files but also modules config ### git the drupal (src folder) ``` git init ``` create a .gitignore file ``` # Ignore directories generated by Composer /drush/contrib/ /vendor/ /web/core/ /web/modules/contrib/ /web/themes/contrib/ /web/profiles/contrib/ /web/libraries/ composer.lock # Ignore sensitive information /web/sites/*/settings.php /web/sites/*/settings.local.php /web/sites/*/services*.yml # Ignore Drupal's file directory /web/sites/*/files/ # Ignore SimpleTest multi-site environment. /web/sites/simpletest # Ignore files generated by PhpStorm /.idea/ # Ignore .env files as they are personal /.env # npm node_modules/ *.patch /.csslintrc /.eslintrc.json /.ht.router.php /.htaccess /INSTALL.txt /README.txt /autoload.php /example.gitignore /index.php /robots.txt /update.php /web.config /web/.vscode/* ``` ``` git status git add . ``` remove file D8-starterit-profile from the git index in order to add it as a submodule. ```git reset web/profiles/d8-starterkit-profile``` add submodule ``` git submodule add https://figureslibres.io/gogs/bachir/d8-starterkit-profile.git web/profiles/d8-starterkit-profile ``` ``` git commit -m "first drupal instal working" ``` Create new repository on gogs, for durpal then ``` git remote add origin https://figureslibres.io/gogs/ouidade/drupal-training.git ``` ``` git push origin master ```