From f7ea4734a8e918e33c62f32f170490176f3f9609 Mon Sep 17 00:00:00 2001 From: Adrien Gallou Date: Mon, 26 Dec 2016 17:26:11 +0100 Subject: [PATCH] adds docker configuration --- .gitignore | 3 ++ README.md | 36 ++++++++++++++++++++++++ app/config.php.dist | 10 +++---- docker-compose.override.yml-dist | 11 ++++++++ docker-compose.yml | 29 +++++++++++++++++++ docker/bin/bash | 2 ++ docker/bin/mysql | 3 ++ docker/dockerfiles/apachephp/Dockerfile | 12 ++++++++ docker/dockerfiles/apachephp/apache.conf | 8 ++++++ docker/dockerfiles/mysql/Dockerfile | 3 ++ docker/dockerfiles/mysql/my.cnf | 4 +++ docker/dockerfiles/mysql/mysql | 2 ++ 12 files changed, 118 insertions(+), 5 deletions(-) create mode 100644 docker-compose.override.yml-dist create mode 100644 docker-compose.yml create mode 100755 docker/bin/bash create mode 100755 docker/bin/mysql create mode 100644 docker/dockerfiles/apachephp/Dockerfile create mode 100644 docker/dockerfiles/apachephp/apache.conf create mode 100644 docker/dockerfiles/mysql/Dockerfile create mode 100644 docker/dockerfiles/mysql/my.cnf create mode 100755 docker/dockerfiles/mysql/mysql diff --git a/.gitignore b/.gitignore index bd9135f..698af18 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,6 @@ nbproject/ # Vagrant Vagrantfile .vagrant + +/docker-compose.override.yml +/data diff --git a/README.md b/README.md index b9a2e8e..43a8999 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,42 @@ Vhost example + +Install with docker +=================== + +Requirements +------------ + +* docker +* docker-compose + +Installation +------------ + +* Copier la configuration de docker-compose: +``` +cp docker-compose.override.yml-dist docker-compose.override.yml +``` +* Au besoin, modifier le fichier `docker-compose.override.yml` avec les ports que vous souhaitez utiliser. +* Copier la configuration de l'application: +``` +cp app/config.php.dist app/config.php +``` +* executer un `docker-compose up` pour lancer l'application. + +Utilisation +----------- + +* Executer des commandes: +``` +./docker/bin/bash +``` +* Accès à mysql +``` +./docker/bin/mysql +``` + Comment participer ================== diff --git a/app/config.php.dist b/app/config.php.dist index 34a135a..14ae427 100644 --- a/app/config.php.dist +++ b/app/config.php.dist @@ -21,10 +21,10 @@ $app['secret'] = 'change_me_im_not_secret'; // MySQL $app['db.options'] = array( 'driver' => 'pdo_mysql', - 'host' => 'localhost', + 'host' => 'db', 'dbname' => 'aperophp', - 'user' => '', - 'password' => '', + 'user' => 'afup', + 'password' => 'afup', ); // ******* @@ -35,8 +35,8 @@ $app['db.options'] = array( // @see http://silex.sensiolabs.org/doc/providers/swiftmailer.html#parameters // SMTP Transport $app['mail.options'] = array( - 'host' => 'localhost', - 'port' => '25', + 'host' => 'mailcatcher', + 'port' => '1025', 'username' => '', 'password' => '', 'encryption' => null, diff --git a/docker-compose.override.yml-dist b/docker-compose.override.yml-dist new file mode 100644 index 0000000..cf2c3f8 --- /dev/null +++ b/docker-compose.override.yml-dist @@ -0,0 +1,11 @@ +db: + ports: + - "3406:3306" + +apachephp: + ports: + - "9105:80" + +mailcatcher: + ports: + - "1081:1080" diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ac0b6f8 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,29 @@ +db: + build: ./docker/dockerfiles/mysql + environment: + MYSQL_ROOT_PASSWORD: root + MYSQL_USER: afup + MYSQL_PASSWORD: afup + MYSQL_DATABASE: aperophp + volumes: + - ./data/mysql:/var/lib/mysql + +apachephp: + build: ./docker/dockerfiles/apachephp + volumes: + - ./:/var/www/html + links: + - db + - mailcatcher + +cliphp: + build: ./docker/dockerfiles/apachephp + volumes: + - ./:/var/www/html + links: + - db + - mailcatcher + command: "false" + +mailcatcher: + image: schickling/mailcatcher diff --git a/docker/bin/bash b/docker/bin/bash new file mode 100755 index 0000000..9105f4f --- /dev/null +++ b/docker/bin/bash @@ -0,0 +1,2 @@ +#!/bin/bash +docker-compose run --rm cliphp /bin/bash diff --git a/docker/bin/mysql b/docker/bin/mysql new file mode 100755 index 0000000..2ef006d --- /dev/null +++ b/docker/bin/mysql @@ -0,0 +1,3 @@ +#!/bin/bash +docker-compose run --rm db /opt/mysql + diff --git a/docker/dockerfiles/apachephp/Dockerfile b/docker/dockerfiles/apachephp/Dockerfile new file mode 100644 index 0000000..0ad3539 --- /dev/null +++ b/docker/dockerfiles/apachephp/Dockerfile @@ -0,0 +1,12 @@ +FROM php:5.4-apache + +RUN echo "date.timezone=Europe/Paris" >> "/usr/local/etc/php/php.ini" +RUN docker-php-ext-install pdo_mysql +RUN docker-php-ext-install mbstring +RUN a2enmod rewrite + +RUN echo "Include sites-enabled/" >> /etc/apache2/apache2.conf +COPY apache.conf /etc/apache2/sites-available/000-default.conf +RUN ln -s /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-enabled/000-default.conf + + diff --git a/docker/dockerfiles/apachephp/apache.conf b/docker/dockerfiles/apachephp/apache.conf new file mode 100644 index 0000000..5bb334e --- /dev/null +++ b/docker/dockerfiles/apachephp/apache.conf @@ -0,0 +1,8 @@ + + DocumentRoot /var/www/html/web + + RewriteEngine On + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^(.*)$ index.php [QSA,L] + + diff --git a/docker/dockerfiles/mysql/Dockerfile b/docker/dockerfiles/mysql/Dockerfile new file mode 100644 index 0000000..b40bf38 --- /dev/null +++ b/docker/dockerfiles/mysql/Dockerfile @@ -0,0 +1,3 @@ +FROM mysql:5.6.21 +COPY my.cnf /etc/mysql/my.cnf +COPY mysql /opt/mysql diff --git a/docker/dockerfiles/mysql/my.cnf b/docker/dockerfiles/mysql/my.cnf new file mode 100644 index 0000000..74833b9 --- /dev/null +++ b/docker/dockerfiles/mysql/my.cnf @@ -0,0 +1,4 @@ +[mysqld] +skip-host-cache +skip-name-resolve +innodb_file_per_table=1 diff --git a/docker/dockerfiles/mysql/mysql b/docker/dockerfiles/mysql/mysql new file mode 100755 index 0000000..c7a6a6f --- /dev/null +++ b/docker/dockerfiles/mysql/mysql @@ -0,0 +1,2 @@ +#!/bin/bash +mysql --host=db --port=3306 -uroot -p$MYSQL_ROOT_PASSWORD --protocol=TCP $MYSQL_DATABASE -A