From bffeb6e9f42fbf59a63f7acc1d997ee14261cbbb Mon Sep 17 00:00:00 2001 From: Jose Pablo Domingo Aramburo Sanchez Date: Tue, 7 Aug 2018 17:31:02 -0600 Subject: [PATCH 1/9] [add] Dockerfile --- api-payroll/Dockerfile | 43 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 api-payroll/Dockerfile diff --git a/api-payroll/Dockerfile b/api-payroll/Dockerfile new file mode 100644 index 0000000..d4fdc8f --- /dev/null +++ b/api-payroll/Dockerfile @@ -0,0 +1,43 @@ +FROM ubuntu:16.04 + +# Updating +RUN apt-get -y update && apt-get -y upgrade + +# Installing php, apache and supplementary software +RUN apt-get -y install apache2 php7.0 libapache2-mod-php7.0 php7.0-cli php7.0-common php7.0-mbstring php7.0-gd php7.0-intl php7.0-xml php7.0-mysql php7.0-mcrypt php7.0-zip curl git unzip composer + +# Enable apache mods +RUN a2enmod php7.0 +RUN a2enmod rewrite + +# Update the PHP.ini file, enable tags and quieten logging +RUN sed -i "s/short_open_tag = Off/short_open_tag = On/" /etc/php/7.0/apache2/php.ini +RUN sed -i "s/error_reporting = .*$/error_reporting = E_ERROR | E_WARNING | E_PARSE/" /etc/php/7.0/apache2/php.ini + +# Manually set up the apache environment variables +ENV APACHE_RUN_USER www-data +ENV APACHE_RUN_GROUP www-data +ENV APACHE_LOG_DIR /var/log/apache2 +ENV APACHE_LOCK_DIR /var/lock/apache2 + +# Expose apache +EXPOSE 80 + +# Copy this repo into place. +ADD . /var/www/site +WORKDIR /var/www/site + +# Testing permisions +RUN chmod 777 -R . + +# Installing dependencies +RUN composer install + +# Unit tests +RUN composer test + +# Update the default apache site with the config we created. +ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf + +# By default start up apache in the foreground, override with /bin/bash for interative +CMD /usr/sbin/apache2ctl -D FOREGROUND From 058e19a49a12ab9a913ff7d63daaf591c020d811 Mon Sep 17 00:00:00 2001 From: Jose Pablo Domingo Aramburo Sanchez Date: Tue, 7 Aug 2018 17:32:32 -0600 Subject: [PATCH 2/9] [add] Apache conf for the docker container --- api-payroll/apache-config.conf | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 api-payroll/apache-config.conf diff --git a/api-payroll/apache-config.conf b/api-payroll/apache-config.conf new file mode 100644 index 0000000..f89e608 --- /dev/null +++ b/api-payroll/apache-config.conf @@ -0,0 +1,15 @@ + + ServerAdmin me@mydomain.com + DocumentRoot /var/www/site + + + Options Indexes FollowSymLinks MultiViews + AllowOverride All + Order deny,allow + Allow from all + + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + From 97fca1d7d3d4a040a025d7af4fe92bd62fa2c10e Mon Sep 17 00:00:00 2001 From: Jose Pablo Domingo Aramburo Sanchez Date: Tue, 7 Aug 2018 17:33:21 -0600 Subject: [PATCH 3/9] [add] Docker compose --- docker-compose.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..4f4c709 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3' +services: + v1: + build: api-payroll/ + ports: + - "8080:80" + volumes: + - .:/var/www/site From 7fc9ca8c755abec176e8c67f1d885d7d4a355798 Mon Sep 17 00:00:00 2001 From: Jose Pablo Domingo Aramburo Sanchez Date: Tue, 7 Aug 2018 19:25:20 -0600 Subject: [PATCH 4/9] [add] Mysql container --- docker-compose.yml | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 4f4c709..4438f07 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,8 +1,25 @@ version: '3' services: - v1: + api: + container_name: payroll_api build: api-payroll/ ports: - - "8080:80" + - "8085:80" volumes: - .:/var/www/site + depends_on: + - mysql + mysql: + container_name: payroll_mysql + restart: always + image: mysql:8.0.12 + ports: + - "3307:3306" + environment: + MYSQL_ROOT_PASSWORD: '12345678' + MYSQL_USER: 'sloth' + MYSQL_PASS: '12345678' + volumes: + - my-datavolume:/var/lib/mysql +volumes: + my-datavolume: From f2237d920928d5cb2a4ea18ab86945c99639fd5f Mon Sep 17 00:00:00 2001 From: Jose Pabl Domingo Aramburo Sanchez Date: Wed, 8 Aug 2018 05:24:02 +0000 Subject: [PATCH 5/9] [add] Connecting to mysql from pdo --- api-payroll/src/settings.php | 2 +- docker-compose.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api-payroll/src/settings.php b/api-payroll/src/settings.php index 435f286..af5995f 100644 --- a/api-payroll/src/settings.php +++ b/api-payroll/src/settings.php @@ -26,7 +26,7 @@ return [ // Datanase settings 'mysql' => [ - 'host' => 'localhost', + 'host' => 'mysql', 'database' => 'payroll', 'user' => 'root', 'password' => '12345678', diff --git a/docker-compose.yml b/docker-compose.yml index 4438f07..531b127 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,9 +12,9 @@ services: mysql: container_name: payroll_mysql restart: always - image: mysql:8.0.12 + image: mysql:5.7 ports: - - "3307:3306" + - "3306:3306" environment: MYSQL_ROOT_PASSWORD: '12345678' MYSQL_USER: 'sloth' From b25346e3d55e4951a4b20ab1fcc91983da67a22d Mon Sep 17 00:00:00 2001 From: Jose Pabl Domingo Aramburo Sanchez Date: Wed, 8 Aug 2018 07:14:22 +0000 Subject: [PATCH 6/9] [add] Database initiated along with container --- database/.dockerignore | 1 + database/Dockerfile | 3 +++ docker-compose.yml | 9 +++++---- 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 database/.dockerignore create mode 100644 database/Dockerfile diff --git a/database/.dockerignore b/database/.dockerignore new file mode 100644 index 0000000..9414382 --- /dev/null +++ b/database/.dockerignore @@ -0,0 +1 @@ +Dockerfile diff --git a/database/Dockerfile b/database/Dockerfile new file mode 100644 index 0000000..c96c19f --- /dev/null +++ b/database/Dockerfile @@ -0,0 +1,3 @@ +FROM mysql:5.7 + +ADD . /docker-entrypoint-initdb.d diff --git a/docker-compose.yml b/docker-compose.yml index 531b127..5d802d7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,20 +6,21 @@ services: ports: - "8085:80" volumes: - - .:/var/www/site + - api-payroll:/var/www/site depends_on: - mysql mysql: container_name: payroll_mysql restart: always - image: mysql:5.7 + build: database ports: - "3306:3306" + volumes: + - my-datavolume:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: '12345678' MYSQL_USER: 'sloth' MYSQL_PASS: '12345678' - volumes: - - my-datavolume:/var/lib/mysql volumes: + api-payroll: my-datavolume: From 24f1ce1ed7d1ac7a18918692f9a42426fda848af Mon Sep 17 00:00:00 2001 From: Jose Pabl Domingo Aramburo Sanchez Date: Wed, 8 Aug 2018 07:32:54 +0000 Subject: [PATCH 7/9] [add] Docker ignore for php --- api-payroll/.dockerignore | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 api-payroll/.dockerignore diff --git a/api-payroll/.dockerignore b/api-payroll/.dockerignore new file mode 100644 index 0000000..a78e94f --- /dev/null +++ b/api-payroll/.dockerignore @@ -0,0 +1,5 @@ +Dockerfile +README.md +buildspec.yml +CONTRIBUTING.md +docker-compose.yml From f93b41f14e07c087ec6de4c796a4f58f74e18db6 Mon Sep 17 00:00:00 2001 From: Jose Pabl Domingo Aramburo Sanchez Date: Wed, 8 Aug 2018 07:37:27 +0000 Subject: [PATCH 8/9] [add] Index protection --- api-payroll/.htaccess | 1 + 1 file changed, 1 insertion(+) create mode 100644 api-payroll/.htaccess diff --git a/api-payroll/.htaccess b/api-payroll/.htaccess new file mode 100644 index 0000000..5a928f6 --- /dev/null +++ b/api-payroll/.htaccess @@ -0,0 +1 @@ +Options -Indexes From 663ea7cc3ef517927b42e6f2d6f74cf4594b1c8e Mon Sep 17 00:00:00 2001 From: Jose Pabl Domingo Aramburo Sanchez Date: Wed, 8 Aug 2018 07:41:29 +0000 Subject: [PATCH 9/9] [add] Testing the docker build in CI --- api-payroll/buildspec.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api-payroll/buildspec.yml b/api-payroll/buildspec.yml index 55bbfa4..8723797 100644 --- a/api-payroll/buildspec.yml +++ b/api-payroll/buildspec.yml @@ -14,8 +14,9 @@ phases: - echo Entered the build phase... - echo Build started on `date` - composer test + - sudo docker-compose up --build -d post_build: commands: - echo Entered the post_build phase... + - sudo docker-compose down --rmi all -v - echo Build completed on `date` -