TUTO_INSTAL_DOCKER_NEW_PROJECT.md 5.2 KB

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 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 ```