# contao-docker-test #Installation: - Go to root folder and create new image named 'spt-docker-contao' via console: `docker build -t spt-docker-contao .` - After image creation create docker containers: `docker-compose up -d` - Create a database for contao in database container: - An easy way to do so is to open up the "Database"-Tab of PhpStorm - Click on "+" -> Data Source -> MariaDB - Add a name to configuration e.g. contao-db - Host: localhost - Port: 3306 - User: root (according to database-service in docker-compose.yml) - Password: root (according to database-service in docker-compose.yml) - Once you're connected go to Query Console (icon at the top "QL") and create the database for contao - Enter the following line into the console and press the "play"-button to execute the query: - `CREATE DATABASE contao CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;` - The database name is free to chose but in this example the database name 'contao' is being used - Open [contao manager](http://localhost/contao/install) in browser after database creation in order to install contao - Step through the installation process until you get to enter the database credentials - NOTE: the 'host' isn't 'localhost' here, use the name of the database service 'database' from the docker-compose.yml - Finish the installation and have fun :) - Contao will be available here: [http://localhost/contao](http://localhost/contao) # Some important information - The database content is stored in a container which is bind-mounted to the 'db'-folder of the project - If you should renew your containers, make sure you don't delete this folder, since all database data is contained in there - Even if the container will be removed, the database data still exists in this folder and the data will be provided for the database container through the bind-mounting if you create a new database container - To enter a container e.g. the contao container run `docker exec -it contao /bin/bash`. - After this you're directly within the container and can browse through it's content via console. - If you did changes e.g. in the composer.json on your host machine (your computer - not within a container) to install or update bundles, then run e.g. `composer install` within the container - If you do changes on you host machine, these changes will be also available for the container via bind-mounting - To exit the container, simply run `exit` and you'll get back to the console of your host machine ;) # Links: - https://raphaelstaebler.medium.com/run-contao-4-inside-a-docker-container-96422278ea02 - https://github.com/wsargent/docker-cheat-sheet/blob/master/README.md