From 0a8b103bbf7327d3c4e25c56e5f68ddc5e99af8f Mon Sep 17 00:00:00 2001 From: Ingo Pfennigstorf Date: Wed, 21 Oct 2015 10:46:12 +0200 Subject: [PATCH 001/120] Add MySQL hostname and port to environment variables --- CHANGELOG.md | 1 + docker-env.yml | 2 ++ docker/main/provision/roles/mysql/templates/my.cnf.j2 | 11 +++++++---- docker/main/provision/variables.yml | 2 ++ docker/web/bin/httpd/entrypoint.sh | 2 ++ docker/web/bin/nginx/entrypoint.sh | 2 ++ docker/web/conf/httpd/vhost.conf | 2 ++ docker/web/conf/nginx/vhost.conf | 4 ++++ documentation/DOCKER-INFO.md | 2 ++ 9 files changed, 24 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24fb1fc..d964308 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ PHP Docker Boilerplate Changelog - Improved documentation - Splitted MySQL Dockerfiles (with version and fork - MySQL, MariaDB and Percona) - Fixed slow shutdown of storage (thanks to Stephan Ferraro) +- Added MySQL host and port as environment variables 4.0.0 - 2015-08-17 ------------------ diff --git a/docker-env.yml b/docker-env.yml index 66e43d2..3d5ba33 100644 --- a/docker-env.yml +++ b/docker-env.yml @@ -67,6 +67,8 @@ MYSQL_ROOT_PASSWORD=dev MYSQL_USER=dev MYSQL_PASSWORD=dev MYSQL_DATABASE=database +MYSQL_HOST=mysql +MYSQL_PORT=3306 ####################################### # PostgreSQL settings diff --git a/docker/main/provision/roles/mysql/templates/my.cnf.j2 b/docker/main/provision/roles/mysql/templates/my.cnf.j2 index c0aaee8..fdcc819 100644 --- a/docker/main/provision/roles/mysql/templates/my.cnf.j2 +++ b/docker/main/provision/roles/mysql/templates/my.cnf.j2 @@ -1,10 +1,12 @@ [client] -host=mysql +host="{{ DOCKER.MYSQL_HOST }}" +port="{{ DOCKER.MYSQL_PORT }}" user="root" password="{{ DOCKER.MYSQL_ROOT_PASSWORD }}" [mysql] -host=mysql +host="{{ DOCKER.MYSQL_HOST }}" +port="{{ DOCKER.MYSQL_PORT }}" user="root" password="{{ DOCKER.MYSQL_ROOT_PASSWORD }}" database="{{ DOCKER.MYSQL_DATABASE }}" @@ -16,6 +18,7 @@ sigint-ignore reconnect [mysqldump] -host=mysql +host="{{ DOCKER.MYSQL_HOST }}" +port="{{ DOCKER.MYSQL_PORT }}" user="root" -password="{{ DOCKER.MYSQL_ROOT_PASSWORD }}" \ No newline at end of file +password="{{ DOCKER.MYSQL_ROOT_PASSWORD }}" diff --git a/docker/main/provision/variables.yml b/docker/main/provision/variables.yml index f84b206..8ae2e6a 100644 --- a/docker/main/provision/variables.yml +++ b/docker/main/provision/variables.yml @@ -29,6 +29,8 @@ DOCKER: MYSQL_USER: "{{ lookup('env','MYSQL_USER') }}" MYSQL_PASSWORD: "{{ lookup('env','MYSQL_PASSWORD') }}" MYSQL_DATABASE: "{{ lookup('env','MYSQL_DATABASE') }}" + MYSQL_HOST: "{{ lookup('env','MYSQL_HOST') }}" + MYSQL_PORT: "{{ lookup('env','MYSQL_PORT') }}" # PostgreSQL POSTGRES_USER: "{{ lookup('env','POSTGRES_USER') }}" diff --git a/docker/web/bin/httpd/entrypoint.sh b/docker/web/bin/httpd/entrypoint.sh index 0f3ff2a..ec22b1d 100755 --- a/docker/web/bin/httpd/entrypoint.sh +++ b/docker/web/bin/httpd/entrypoint.sh @@ -49,6 +49,8 @@ cp /usr/local/apache2/conf/.docker-vhost.conf.original /usr/local/apache /bin/sed -i "s@@${MYSQL_PASSWORD}@" /usr/local/apache2/conf/docker-vhost.conf /bin/sed -i "s@@${MYSQL_ROOT_PASSWORD}@" /usr/local/apache2/conf/docker-vhost.conf /bin/sed -i "s@@${MYSQL_DATABASE}@" /usr/local/apache2/conf/docker-vhost.conf +/bin/sed -i "s@@${MYSQL_HOST}@" /usr/local/apache2/conf/docker-vhost.conf +/bin/sed -i "s@@${MYSQL_PORT}@" /usr/local/apache2/conf/docker-vhost.conf /bin/sed -i "s@@${POSTGRES_USER}@" /usr/local/apache2/conf/docker-vhost.conf /bin/sed -i "s@@${POSTGRES_PASSWORD}@" /usr/local/apache2/conf/docker-vhost.conf diff --git a/docker/web/bin/nginx/entrypoint.sh b/docker/web/bin/nginx/entrypoint.sh index 983a8a6..50f654f 100755 --- a/docker/web/bin/nginx/entrypoint.sh +++ b/docker/web/bin/nginx/entrypoint.sh @@ -33,6 +33,8 @@ cp /opt/docker/vhost.conf /etc/nginx/conf.d/vhost.conf /bin/sed -i "s@@${MYSQL_PASSWORD}@" /etc/nginx/conf.d/vhost.conf /bin/sed -i "s@@${MYSQL_ROOT_PASSWORD}@" /etc/nginx/conf.d/vhost.conf /bin/sed -i "s@@${MYSQL_DATABASE}@" /etc/nginx/conf.d/vhost.conf +/bin/sed -i "s@@${MYSQL_HOST}@" /etc/nginx/conf.d/vhost.conf +/bin/sed -i "s@@${MYSQL_PORT}@" /etc/nginx/conf.d/vhost.conf /bin/sed -i "s@@${POSTGRES_USER}@" /etc/nginx/conf.d/vhost.conf /bin/sed -i "s@@${POSTGRES_PASSWORD}@" /etc/nginx/conf.d/vhost.conf diff --git a/docker/web/conf/httpd/vhost.conf b/docker/web/conf/httpd/vhost.conf index 8715921..184776a 100644 --- a/docker/web/conf/httpd/vhost.conf +++ b/docker/web/conf/httpd/vhost.conf @@ -30,6 +30,8 @@ SetEnv MYSQL_PASSWORD "" SetEnv MYSQL_ROOT_USER "root" SetEnv MYSQL_ROOT_PASSWORD "" SetEnv MYSQL_DATABASE "" +SetEnv MYSQL_HOST "" +SetEnv MYSQL_PORT "" SetEnv POSTGRES_USER "" SetEnv POSTGRES_PASSWORD "" diff --git a/docker/web/conf/nginx/vhost.conf b/docker/web/conf/nginx/vhost.conf index 396c5dc..8359063 100644 --- a/docker/web/conf/nginx/vhost.conf +++ b/docker/web/conf/nginx/vhost.conf @@ -27,6 +27,8 @@ server { fastcgi_param MYSQL_ROOT_USER "root"; fastcgi_param MYSQL_ROOT_PASSWORD ""; fastcgi_param MYSQL_DATABASE ""; + fastcgi_param MYSQL_HOST ""; + fastcgi_param MYSQL_PORT ""; fastcgi_param POSTGRES_USER ""; fastcgi_param POSTGRES_PASSWORD ""; @@ -76,6 +78,8 @@ server { fastcgi_param MYSQL_ROOT_USER "root"; fastcgi_param MYSQL_ROOT_PASSWORD ""; fastcgi_param MYSQL_DATABASE ""; + fastcgi_param MYSQL_HOST ""; + fastcgi_param MYSQL_PORT ""; fastcgi_param POSTGRES_USER ""; fastcgi_param POSTGRES_PASSWORD ""; diff --git a/documentation/DOCKER-INFO.md b/documentation/DOCKER-INFO.md index 0b28614..56efda4 100644 --- a/documentation/DOCKER-INFO.md +++ b/documentation/DOCKER-INFO.md @@ -75,6 +75,8 @@ MYSQL_ROOT_PASSWORD | Password for MySQL user "root" MYSQL_USER | Initial created MySQL user MYSQL_PASSWORD | Password for initial MySQL user MYSQL_DATABASE | Initial created MySQL database +MYSQL_HOST | MySQL Hostname +MYSQL_PORT | Port that the MySQL instance is using
| PHP_TIMEZONE | Timezone (date.timezone) setting for PHP (cli and fpm) EFFECTIVE_UID | Effective UID for php, fpm und webserver From 2da6ea79fbb4b8db02f89126434acb91c4f43140 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 8 Dec 2015 00:49:01 +0100 Subject: [PATCH 002/120] Updated documentation --- documentation/CUSTOMIZE.md | 2 +- documentation/DOCKER-INFO.md | 3 +-- documentation/DOCKER-QUICKSTART.md | 6 ++++-- documentation/DOCKER-STARTUP.md | 4 ++++ documentation/INSTALL.md | 6 +++--- documentation/PROJECT-EXISTING.md | 2 +- documentation/PROJECT-SYMFONY.md | 2 +- documentation/SERVICES.md | 2 +- documentation/TROUBLESHOOTING.md | 6 +++--- documentation/UPDATE.md | 2 +- 10 files changed, 20 insertions(+), 15 deletions(-) diff --git a/documentation/CUSTOMIZE.md b/documentation/CUSTOMIZE.md index e7b7344..264b8ed 100644 --- a/documentation/CUSTOMIZE.md +++ b/documentation/CUSTOMIZE.md @@ -9,7 +9,7 @@ You can add custom shell commands in `docker/main/{DISTRIBUTION}/bin/customizati ## Custom php.ini directives -Modify the `docker/main/{DISTRIBUTION}/conf/php.ini`, it will be added on top of the default php.ini so +Modify the `etc/php/development.ini` or `etc/php/production.ini`, it will be added on top of the default php.ini so you can overwrite any directives. After modification rebuild your `main` container: diff --git a/documentation/DOCKER-INFO.md b/documentation/DOCKER-INFO.md index 56efda4..a0e5b2b 100644 --- a/documentation/DOCKER-INFO.md +++ b/documentation/DOCKER-INFO.md @@ -6,9 +6,8 @@ Container | Description ------------------------- | ------------------------------- -main | Main container with PHP-FPM and tools (your entrypoint for bash, php and other stuff) +main | Main container with nginx/apache and PHP-FPM and tools (your entrypoint for bash, php and other stuff) storage | Storage container, eg. for Solr data -web | Apache HTTPD or Nginx webserver mysql | MySQL database postgres (optional) | PostgreSQL database solr (optional) | Apache Solr server diff --git a/documentation/DOCKER-QUICKSTART.md b/documentation/DOCKER-QUICKSTART.md index f14b967..4691501 100644 --- a/documentation/DOCKER-QUICKSTART.md +++ b/documentation/DOCKER-QUICKSTART.md @@ -7,6 +7,8 @@ Create and start containers (eg. first start): ```bash +# copy favorite docker-compose.*.yml to docker-compose.yml +cp docker-compose.development.yml docker-compose.yml docker-compose up -d ``` @@ -52,8 +54,8 @@ docker-compose logs # ... or only php docker-compose logs main -# ... or only php and webserver -docker-compose logs main web +# ... or only main and mysql +docker-compose logs main mysql ``` CLI script (defined in docker-env.yml) diff --git a/documentation/DOCKER-STARTUP.md b/documentation/DOCKER-STARTUP.md index 1fa4583..e5d3cf9 100644 --- a/documentation/DOCKER-STARTUP.md +++ b/documentation/DOCKER-STARTUP.md @@ -9,6 +9,10 @@ Checkout this project and create and run the Docker containers using [docker-com ```bash git clone https://github.com/webdevops/php-docker-boilerplate.git projectname cd projectname + +# copy favorite docker-compose.*.yml to docker-compose.yml +cp docker-compose.development.yml docker-compose.yml + docker-compose up -d ``` diff --git a/documentation/INSTALL.md b/documentation/INSTALL.md index a88fcdd..a720cf4 100644 --- a/documentation/INSTALL.md +++ b/documentation/INSTALL.md @@ -12,7 +12,7 @@ If you want to run a Docker VM make sure you're using VMware or Parallels Desktop because of the much faster virtualisation (networking, disk access, shared folders) compared to VirtualBox. -There is also a [Vagrant VM for VirtualBox, VMware and Parallels](https://github.com/webdevops/vagrant-development) +There is also a [Vagrant VM for VirtualBox, VMware and Parallels](https://github.com/webdevops/vagrant-docker-vm) with a mailcatcher (Postfix with Dovecot, catches all outgoing mails). _Warning:_ Boot2docker ist not recommended because of slow/buggy file sharing between host and guest and there is no @@ -29,8 +29,8 @@ git clone --recursive https://github.com/webdevops/php-docker-boilerplate.git pr cd projectname -# for local development (shared volumes) -cp docker-compose-development.yml docker-compose.yml +# copy favorite docker-compose.*.yml to docker-compose.yml +cp docker-compose.development.yml docker-compose.yml docker-compose up -d ``` diff --git a/documentation/PROJECT-EXISTING.md b/documentation/PROJECT-EXISTING.md index c068d1a..e3e0612 100644 --- a/documentation/PROJECT-EXISTING.md +++ b/documentation/PROJECT-EXISTING.md @@ -15,7 +15,7 @@ or manually git clone --recursive https://github..../ code/ ``` -Check `DOCUMENT_ROOT` and `DOCUMENT_INDEX` in `docker-env.yml` +Check `DOCUMENT_ROOT` and `DOCUMENT_INDEX` in `docker-environment.yml` ## Cli runner diff --git a/documentation/PROJECT-SYMFONY.md b/documentation/PROJECT-SYMFONY.md index 8c258ba..10f513d 100644 --- a/documentation/PROJECT-SYMFONY.md +++ b/documentation/PROJECT-SYMFONY.md @@ -8,7 +8,7 @@ make create symfony ``` -And change `DOCUMENT_ROOT` and `DOCUMENT_ROOT` in `docker-env.yml`: +And change `DOCUMENT_ROOT` and `DOCUMENT_ROOT` in `docker-environment.yml`: DOCUMENT_ROOT=code/web/ DOCUMENT_INDEX=app_dev.php diff --git a/documentation/SERVICES.md b/documentation/SERVICES.md index eed775e..e62a6a7 100644 --- a/documentation/SERVICES.md +++ b/documentation/SERVICES.md @@ -2,7 +2,7 @@ # Services -### Web (Nginx or Apache HTTPd) +### Main (Nginx or Apache HTTPd) Setting | Value ------------- | ------------- diff --git a/documentation/TROUBLESHOOTING.md b/documentation/TROUBLESHOOTING.md index 0dd8e4b..50aa22f 100644 --- a/documentation/TROUBLESHOOTING.md +++ b/documentation/TROUBLESHOOTING.md @@ -4,13 +4,13 @@ ## Startup or (docker) linking errors (safe reset) -If you got any startup issues you can try to rebuild `main` and `web` containers. +If you got any startup issues you can try to rebuild `main` containers. You won't lose any data with this way - it's a safe reset. ```bash docker-compose stop -docker-compose rm --force main web -docker-compose build --no-cache main web +docker-compose rm --force main +docker-compose build --no-cache main docker-compose up -d ``` diff --git a/documentation/UPDATE.md b/documentation/UPDATE.md index a766686..7a4c12a 100644 --- a/documentation/UPDATE.md +++ b/documentation/UPDATE.md @@ -7,7 +7,7 @@ If you have cloned the git repository it's safe to pull the new version. If you have used a zip file make sure to replace the `docker/` directory and also -update `docker-compose.yml` and `docker-env.yml`. +update `docker-compose.yml` and `docker-environment.yml`. For [changes see CHANGELOG.md](/CHANGELOG.md) From 836cfb7e4890945c978c1989905391b45a3aab2c Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 8 Dec 2015 00:49:59 +0100 Subject: [PATCH 003/120] Fixed typo --- etc/application.production.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/application.production.yml b/etc/application.production.yml index 0111e5e..ccc2994 100644 --- a/etc/application.production.yml +++ b/etc/application.production.yml @@ -26,7 +26,7 @@ PHP: conf: # PM - { variable: "pm.max_children", value: "30" } - - { variable: "pm.start_servers", value: "10 } + - { variable: "pm.start_servers", value: "10" } - { variable: "pm.min_spare_servers", value: "5" } - { variable: "pm.max_spare_servers", value: "10" } # Misc From db74b1ddcba84836ecbb5903904b8b86b0b9251a Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 8 Dec 2015 00:55:31 +0100 Subject: [PATCH 004/120] Cleanup --- Dockerfile.production | 5 ----- Makefile | 19 ++++--------------- bin/backup.sh | 2 ++ bin/entrypoint.sh | 19 ------------------- bin/restore.sh | 2 ++ 5 files changed, 8 insertions(+), 39 deletions(-) delete mode 100755 bin/entrypoint.sh diff --git a/Dockerfile.production b/Dockerfile.production index 034c389..392ec14 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -29,11 +29,6 @@ # #++++++++++++++++++++++++++++++++++++++ - - -FROM webdevops/php-apache:ubuntu-14.04 -FROM webdevops/php-apache:ubuntu-14.04 -FROM webdevops/php-apache:ubuntu-14.04 FROM webdevops/php-apache:ubuntu-14.04 ENV PROVISION_CONTEXT "production" diff --git a/Makefile b/Makefile index 1a14bb1..d72d56e 100644 --- a/Makefile +++ b/Makefile @@ -32,26 +32,15 @@ rebuild: docker-compose rm --force main web docker-compose build --no-cache -############################# -# Docker cloud -############################# - -cloud-build: - docker-compose --file docker-compose-cloud.yml build - docker-compose --file docker-compose-cloud.yml build --no-cache sourcecode - docker-compose --file docker-compose-cloud.yml stop - docker-compose --file docker-compose-cloud.yml rm --force sourcecode - docker-compose --file docker-compose-cloud.yml up -d --force-recreate - ############################# # MySQL ############################# mysql-backup: - docker-compose run --rm --no-deps main root bash /docker/bin/backup.sh mysql + docker-compose run --rm --no-deps main root bash /application/bin/backup.sh mysql mysql-restore: - docker-compose run --rm --no-deps main root bash /docker/bin/restore.sh mysql + docker-compose run --rm --no-deps main root bash /application/bin/restore.sh mysql ############################# # Solr @@ -59,12 +48,12 @@ mysql-restore: solr-backup: docker-compose stop solr - docker-compose run --rm --no-deps main root bash /docker/bin/backup.sh solr + docker-compose run --rm --no-deps main root bash /application/bin/backup.sh solr docker-compose start solr solr-restore: docker-compose stop solr - docker-compose run --rm --no-deps main root bash /docker/bin/restore.sh solr + docker-compose run --rm --no-deps main root bash /application/bin/restore.sh solr docker-compose start solr ############################# diff --git a/bin/backup.sh b/bin/backup.sh index 7b104e4..5f25cbd 100755 --- a/bin/backup.sh +++ b/bin/backup.sh @@ -26,6 +26,7 @@ case "$1" in logMsg "Starting MySQL backup..." mysqldump --opt --single-transaction --events --all-databases --routines --comments | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" + logMsg "Finished" ;; ################################### @@ -39,5 +40,6 @@ case "$1" in logMsg "Starting Solr backup..." tar jcPf "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" /data/solr/ + logMsg "Finished" ;; esac diff --git a/bin/entrypoint.sh b/bin/entrypoint.sh deleted file mode 100755 index 43ef07d..0000000 --- a/bin/entrypoint.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -trap 'echo sigterm ; exit' SIGTERM -trap 'echo sigkill ; exit' SIGKILL - -# Fix code rights -chown -R "$EFFECTIVE_UID":"$EFFECTIVE_GID" /docker/code/ - -############################# -## COMMAND -############################# - -if [ "$1" = 'noop' ]; then - while true; do - sleep 1 - done -fi - -exec "$@" diff --git a/bin/restore.sh b/bin/restore.sh index ef1feb5..e26bddd 100755 --- a/bin/restore.sh +++ b/bin/restore.sh @@ -22,6 +22,7 @@ case "$1" in if [ -f "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" ]; then logMsg "Starting MySQL restore..." bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | mysql + logMsg "Finished" else errorMsg "MySQL backup file not found" exit 1 @@ -37,6 +38,7 @@ case "$1" in rm -rf /data/solr/* && mkdir -p /data/solr/ chmod 777 /data/solr/ tar jxPf "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" -C / + logMsg "Finished" else errorMsg "Solr backup file not found" exit 1 From 6452440fe0cb31f96d82494e82df90d8ae8f0720 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 13 Dec 2015 17:41:45 +0100 Subject: [PATCH 005/120] Moved docker environment to etc/environment*.yml --- docker-compose.cloud.yml | 40 +++++++++---------- docker-compose.development.yml | 36 ++++++++--------- docker-compose.production.yml | 36 ++++++++--------- documentation/DOCKER-QUICKSTART.md | 4 +- documentation/PROJECT-EXISTING.md | 2 +- documentation/PROJECT-OTHER.md | 2 +- documentation/PROJECT-SYMFONY.md | 2 +- .../environment.development.yml | 0 .../environment.production.yml | 0 docker-environment.yml => etc/environment.yml | 0 10 files changed, 61 insertions(+), 61 deletions(-) rename docker-environment.development.yml => etc/environment.development.yml (100%) rename docker-environment.production.yml => etc/environment.production.yml (100%) rename docker-environment.yml => etc/environment.yml (100%) diff --git a/docker-compose.cloud.yml b/docker-compose.cloud.yml index 7e940bb..e93ce47 100644 --- a/docker-compose.cloud.yml +++ b/docker-compose.cloud.yml @@ -21,8 +21,8 @@ main: - sourcecode - storage env_file: - - docker-environment.yml - - docker-environment.production.yml + - etc/environment.yml + - etc/environment.production.yml ####################################### # MySQL server @@ -39,8 +39,8 @@ mysql: volumes_from: - storage env_file: - - docker-environment.yml - - docker-environment.production.yml + - etc/environment.yml + - etc/environment.production.yml ####################################### # PostgreSQL server @@ -50,8 +50,8 @@ mysql: # volumes_from: # - storage # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # Solr server @@ -63,8 +63,8 @@ mysql: # environment: # - SOLR_STORAGE=/data/solr/server-master/ # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # Elasticsearch @@ -74,8 +74,8 @@ mysql: # volumes_from: # - storage # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # Redis @@ -85,8 +85,8 @@ mysql: # volumes_from: # - storage # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # Memcached @@ -96,8 +96,8 @@ mysql: # volumes_from: # - storage # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # Mailcatcher @@ -105,8 +105,8 @@ mysql: #mail: # build: docker/mail/ # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # FTP (vsftpd) @@ -117,8 +117,8 @@ mysql: # - sourcecode # - storage # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # sourcecode @@ -129,8 +129,8 @@ sourcecode: volumes: - /docker/code/ env_file: - - docker-environment.yml - - docker-environment.production.yml + - etc/environment.yml + - etc/environment.production.yml ####################################### # Storage diff --git a/docker-compose.development.yml b/docker-compose.development.yml index 1659e17..cdbec12 100644 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -27,8 +27,8 @@ main: - SYS_PTRACE privileged: true env_file: - - docker-environment.yml - - docker-environment.development.yml + - etc/environment.yml + - etc/environment.development.yml ####################################### # MySQL server @@ -49,8 +49,8 @@ mysql: volumes: - /tmp/debug/:/tmp/debug/ env_file: - - docker-environment.yml - - docker-environment.development.yml + - etc/environment.yml + - etc/environment.development.yml ####################################### # PostgreSQL server @@ -62,8 +62,8 @@ mysql: # volumes_from: # - storage # env_file: -# - docker-environment.yml -# - docker-environment.development.yml +# - etc/environment.yml +# - etc/environment.development.yml ####################################### # Solr server @@ -77,8 +77,8 @@ mysql: # environment: # - SOLR_STORAGE=/data/solr/server-master/ # env_file: -# - docker-environment.yml -# - docker-environment.development.yml +# - etc/environment.yml +# - etc/environment.development.yml ####################################### # Elasticsearch @@ -91,8 +91,8 @@ mysql: # volumes_from: # - storage # env_file: -# - docker-environment.yml -# - docker-environment.development.yml +# - etc/environment.yml +# - etc/environment.development.yml ####################################### # Redis @@ -102,8 +102,8 @@ mysql: # volumes_from: # - storage # env_file: -# - docker-environment.yml -# - docker-environment.development.yml +# - etc/environment.yml +# - etc/environment.development.yml ####################################### # Memcached @@ -113,8 +113,8 @@ mysql: # volumes_from: # - storage # env_file: -# - docker-environment.yml -# - docker-environment.development.yml +# - etc/environment.yml +# - etc/environment.development.yml ####################################### # Mailcatcher @@ -124,8 +124,8 @@ mysql: # ports: # - 1080:1080 # env_file: -# - docker-environment.yml -# - docker-environment.development.yml +# - etc/environment.yml +# - etc/environment.development.yml ####################################### # FTP (vsftpd) @@ -138,8 +138,8 @@ mysql: # - ./:/docker/ # - /tmp/debug/:/tmp/debug/ # env_file: -# - docker-environment.yml -# - docker-environment.development.yml +# - etc/environment.yml +# - etc/environment.development.yml ####################################### # Storage diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 2b8b000..06ae7a6 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -22,8 +22,8 @@ main: volumes_from: - storage env_file: - - docker-environment.yml - - docker-environment.production.yml + - etc/environment.yml + - etc/environment.production.yml ####################################### # MySQL server @@ -42,8 +42,8 @@ mysql: volumes: - /tmp/debug/:/tmp/debug/ env_file: - - docker-environment.yml - - docker-environment.production.yml + - etc/environment.yml + - etc/environment.production.yml ####################################### # PostgreSQL server @@ -55,8 +55,8 @@ mysql: # volumes_from: # - storage # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # Solr server @@ -70,8 +70,8 @@ mysql: # environment: # - SOLR_STORAGE=/data/solr/server-master/ # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # Elasticsearch @@ -84,8 +84,8 @@ mysql: # volumes_from: # - storage # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # Redis @@ -95,8 +95,8 @@ mysql: # volumes_from: # - storage # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # Memcached @@ -106,8 +106,8 @@ mysql: # volumes_from: # - storage # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # Mailcatcher @@ -117,8 +117,8 @@ mysql: # ports: # - 1080:1080 # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # FTP (vsftpd) @@ -131,8 +131,8 @@ mysql: # - ./:/docker/ # - /tmp/debug/:/tmp/debug/ # env_file: -# - docker-environment.yml -# - docker-environment.production.yml +# - etc/environment.yml +# - etc/environment.production.yml ####################################### # Storage diff --git a/documentation/DOCKER-QUICKSTART.md b/documentation/DOCKER-QUICKSTART.md index 4691501..9c0f1ef 100644 --- a/documentation/DOCKER-QUICKSTART.md +++ b/documentation/DOCKER-QUICKSTART.md @@ -58,8 +58,8 @@ docker-compose logs main docker-compose logs main mysql ``` -CLI script (defined in docker-env.yml) +CLI script (defined in etc/environment*.yml) ```bash docker-compose run --rm main cli help -``` \ No newline at end of file +``` diff --git a/documentation/PROJECT-EXISTING.md b/documentation/PROJECT-EXISTING.md index e3e0612..c94d42e 100644 --- a/documentation/PROJECT-EXISTING.md +++ b/documentation/PROJECT-EXISTING.md @@ -15,7 +15,7 @@ or manually git clone --recursive https://github..../ code/ ``` -Check `DOCUMENT_ROOT` and `DOCUMENT_INDEX` in `docker-environment.yml` +Check `DOCUMENT_ROOT` and `DOCUMENT_INDEX` in `etc/environment*.yml` ## Cli runner diff --git a/documentation/PROJECT-OTHER.md b/documentation/PROJECT-OTHER.md index 4e49c81..8613d58 100644 --- a/documentation/PROJECT-OTHER.md +++ b/documentation/PROJECT-OTHER.md @@ -5,7 +5,7 @@ ## Create project - Put your project files into `code/` -- If needed modify `DOCUMENT_ROOT` and `DOCUMENT_INDEX` in `docker-env.yml` +- If needed modify `DOCUMENT_ROOT` and `DOCUMENT_INDEX` in `etc/environment*.yml` - You're done - really ## Cli runner diff --git a/documentation/PROJECT-SYMFONY.md b/documentation/PROJECT-SYMFONY.md index 10f513d..df147b3 100644 --- a/documentation/PROJECT-SYMFONY.md +++ b/documentation/PROJECT-SYMFONY.md @@ -8,7 +8,7 @@ make create symfony ``` -And change `DOCUMENT_ROOT` and `DOCUMENT_ROOT` in `docker-environment.yml`: +And change `DOCUMENT_ROOT` and `DOCUMENT_ROOT` in `etc/environment*.yml`: DOCUMENT_ROOT=code/web/ DOCUMENT_INDEX=app_dev.php diff --git a/docker-environment.development.yml b/etc/environment.development.yml similarity index 100% rename from docker-environment.development.yml rename to etc/environment.development.yml diff --git a/docker-environment.production.yml b/etc/environment.production.yml similarity index 100% rename from docker-environment.production.yml rename to etc/environment.production.yml diff --git a/docker-environment.yml b/etc/environment.yml similarity index 100% rename from docker-environment.yml rename to etc/environment.yml From 543057608fb4837eb44074f2c07002e872090ef3 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 15 Dec 2015 17:52:23 +0100 Subject: [PATCH 006/120] Added debian version Fixed #16 --- Dockerfile.cloud | 8 +++++++- Dockerfile.development | 8 +++++++- Dockerfile.production | 8 +++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Dockerfile.cloud b/Dockerfile.cloud index 90d6f1c..a3e2648 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -15,6 +15,9 @@ # webdevops/php-apache:ubuntu-15.04 # webdevops/php-apache:ubuntu-15.10 # webdevops/php-apache:centos-7 +# webdevops/php-apache:debian-7 +# webdevops/php-apache:debian-8 +# webdevops/php-apache:debian-8-php7 # # Nginx: # webdevops/php-nginx:ubuntu-12.04 @@ -22,6 +25,9 @@ # webdevops/php-nginx:ubuntu-15.04 # webdevops/php-nginx:ubuntu-15.10 # webdevops/php-nginx:centos-7 +# webdevops/php-nginx:debian-7 +# webdevops/php-nginx:debian-8 +# webdevops/php-nginx:debian-8-php7 # # HHVM: # webdevops/hhvm-apache @@ -48,4 +54,4 @@ RUN /opt/docker/bin/control.sh provision.role.startup boilerplate-main \ # Configure volume/workdir RUN mkdir -p /application/code/ VOLUME /application/ -WORKDIR /application/code/ \ No newline at end of file +WORKDIR /application/code/ diff --git a/Dockerfile.development b/Dockerfile.development index 634a608..6f4e479 100644 --- a/Dockerfile.development +++ b/Dockerfile.development @@ -15,6 +15,9 @@ # webdevops/php-apache:ubuntu-15.04 # webdevops/php-apache:ubuntu-15.10 # webdevops/php-apache:centos-7 +# webdevops/php-apache:debian-7 +# webdevops/php-apache:debian-8 +# webdevops/php-apache:debian-8-php7 # # Nginx: # webdevops/php-nginx:ubuntu-12.04 @@ -22,6 +25,9 @@ # webdevops/php-nginx:ubuntu-15.04 # webdevops/php-nginx:ubuntu-15.10 # webdevops/php-nginx:centos-7 +# webdevops/php-nginx:debian-7 +# webdevops/php-nginx:debian-8 +# webdevops/php-nginx:debian-8-php7 # # HHVM: # webdevops/hhvm-apache @@ -47,4 +53,4 @@ RUN /opt/docker/bin/control.sh provision.role boilerplate-main \ # Configure volume/workdir RUN mkdir -p /application/code/ -WORKDIR /application/code/ \ No newline at end of file +WORKDIR /application/code/ diff --git a/Dockerfile.production b/Dockerfile.production index 392ec14..2d3d2b6 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -15,6 +15,9 @@ # webdevops/php-apache:ubuntu-15.04 # webdevops/php-apache:ubuntu-15.10 # webdevops/php-apache:centos-7 +# webdevops/php-apache:debian-7 +# webdevops/php-apache:debian-8 +# webdevops/php-apache:debian-8-php7 # # Nginx: # webdevops/php-nginx:ubuntu-12.04 @@ -22,6 +25,9 @@ # webdevops/php-nginx:ubuntu-15.04 # webdevops/php-nginx:ubuntu-15.10 # webdevops/php-nginx:centos-7 +# webdevops/php-nginx:debian-7 +# webdevops/php-nginx:debian-8 +# webdevops/php-nginx:debian-8-php7 # # HHVM: # webdevops/hhvm-apache @@ -46,4 +52,4 @@ RUN /opt/docker/bin/control.sh provision.role boilerplate-main \ # Configure volume/workdir RUN mkdir -p /application/code/ -WORKDIR /application/code/ \ No newline at end of file +WORKDIR /application/code/ From dec092aaf1414ad93141ef718fdb70400de58c13 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 15 Dec 2015 19:24:33 +0100 Subject: [PATCH 007/120] Fixed debian support --- .../roles/boilerplate-main-development/tasks/bootstrap.yml | 4 ++-- provision/roles/boilerplate-main/tasks/bootstrap.yml | 2 +- provision/roles/boilerplate-main/tasks/bootstrap/php.yml | 2 +- provision/roles/boilerplate-main/tasks/entrypoint/php.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap.yml index ef2c3fa..f787b8d 100644 --- a/provision/roles/boilerplate-main-development/tasks/bootstrap.yml +++ b/provision/roles/boilerplate-main-development/tasks/bootstrap.yml @@ -8,8 +8,8 @@ - include: bootstrap/php-blackfire/ubuntu.yml - when: ansible_distribution == 'Ubuntu' and PROVISION.install.phpBlackfire + when: ( ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' ) and PROVISION.install.phpBlackfire - include: bootstrap/php-xdebug/ubuntu.yml - when: ansible_distribution == 'Ubuntu' and PROVISION.install.phpXdebug + when: ( ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' ) and PROVISION.install.phpXdebug diff --git a/provision/roles/boilerplate-main/tasks/bootstrap.yml b/provision/roles/boilerplate-main/tasks/bootstrap.yml index ab72df1..1aefa8f 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap.yml @@ -20,7 +20,7 @@ when: ansible_distribution == 'CentOS' - include: bootstrap/php.ubuntu.yml - when: ansible_distribution == 'Ubuntu' + when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' - include: bootstrap/php.yml diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/php.yml b/provision/roles/boilerplate-main/tasks/bootstrap/php.yml index fbcfea2..8eb9a43 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/php.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/php.yml @@ -10,7 +10,7 @@ - name: Fact - php pool on ubuntu set_fact: php_pool_conf: /etc/php5/fpm/pool.d/www.conf - when: ansible_distribution == 'Ubuntu' + when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' - name: Configure php-fpm (pool www.conf) lineinfile: diff --git a/provision/roles/boilerplate-main/tasks/entrypoint/php.yml b/provision/roles/boilerplate-main/tasks/entrypoint/php.yml index 8362409..eff5e27 100644 --- a/provision/roles/boilerplate-main/tasks/entrypoint/php.yml +++ b/provision/roles/boilerplate-main/tasks/entrypoint/php.yml @@ -11,7 +11,7 @@ - name: Fact - php pool on ubuntu set_fact: php_pool_conf: /etc/php5/fpm/pool.d/www.conf - when: ansible_distribution == 'Ubuntu' + when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' - name: Configure environment variables from DOCKER_ENVIRONMENT for php-fpm (pool www.conf) lineinfile: From 2b39f1a55ef02a5893e4664ab0d2fe9cda92e332 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 17 Dec 2015 18:27:28 +0100 Subject: [PATCH 008/120] Simplified provisioning Fixed also php7 support --- .../boilerplate-main/tasks/bootstrap.yml | 37 ++++++++++++++++--- .../{php.ubuntu.yml => php.debian.yml} | 6 +-- .../{php.centos.yml => php.redhat.yml} | 0 .../boilerplate-main/tasks/bootstrap/php.yml | 10 ----- .../boilerplate-main/tasks/entrypoint.yml | 28 +++++++++++++- .../boilerplate-main/tasks/entrypoint/php.yml | 10 ----- 6 files changed, 62 insertions(+), 29 deletions(-) rename provision/roles/boilerplate-main/tasks/bootstrap/{php.ubuntu.yml => php.debian.yml} (82%) rename provision/roles/boilerplate-main/tasks/bootstrap/{php.centos.yml => php.redhat.yml} (100%) diff --git a/provision/roles/boilerplate-main/tasks/bootstrap.yml b/provision/roles/boilerplate-main/tasks/bootstrap.yml index 1aefa8f..483b686 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap.yml @@ -1,7 +1,34 @@ --- +############################# +# Gather environment stuff +############################# - include_vars: "/opt/docker/etc/application.{{ PROVISION_CONTEXT }}.yml" +- stat: path=/usr/sbin/php-fpm7.0 + register: php7_debian + +- name: Fact - php5 pool [RedHat family] + set_fact: + php_pool_conf: /etc/php-fpm.d/www.conf + when: ansible_os_family == 'RedHat' + +- name: Fact - php5 pool [Debian family] + set_fact: + php_pool_conf: /etc/php5/fpm/pool.d/www.conf + php_base_path: /etc/php5 + when: ansible_os_family == 'Debian' + +- name: Fact - php7 pool [Debian family] + set_fact: + php_pool_conf: /etc/php/7.0/fpm/pool.d/www.conf + php_base_path: /etc/php/7.0 + when: ansible_os_family == 'Debian' and php7_debian.stat.exists is defined and php7_debian.stat.exists + +############################# +# Run tasks +############################# + - include: bootstrap/systemUpdate.centos.yml when: PROVISION.systemUpdate is defined and PROVISION.systemUpdate and ansible_distribution == 'CentOS' @@ -16,13 +43,13 @@ - include: bootstrap/postfix.yml when: MAIL is defined -- include: bootstrap/php.centos.yml - when: ansible_distribution == 'CentOS' +- include: bootstrap/php.redhat.yml + when: ansible_os_family == 'RedHat' -- include: bootstrap/php.ubuntu.yml - when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' +- include: bootstrap/php.debian.yml php_base_path="{{ php_base_path }}" + when: ansible_os_family == 'Debian' -- include: bootstrap/php.yml +- include: bootstrap/php.yml php_pool_conf="{{ php_pool_conf }}" - include: bootstrap/web.apache.yml - include: bootstrap/web.nginx.yml diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/php.ubuntu.yml b/provision/roles/boilerplate-main/tasks/bootstrap/php.debian.yml similarity index 82% rename from provision/roles/boilerplate-main/tasks/bootstrap/php.ubuntu.yml rename to provision/roles/boilerplate-main/tasks/bootstrap/php.debian.yml index c9f165b..831c01e 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/php.ubuntu.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/php.debian.yml @@ -2,14 +2,14 @@ - name: Create /etc/php5/mods-available/ file: - path: /etc/php5/mods-available/ + path: "{{ php_base_path }}/mods-available/" state: directory mode: 0755 - name: Link php.ini for cli and fpm file: src: '{{ item.file }}' - dest: '/etc/php5/{{ item.category }}/conf.d/{{ item.target }}' + dest: '{{ php_base_path }}/{{ item.category }}/conf.d/{{ item.target }}' force: yes state: link with_items: @@ -22,7 +22,7 @@ - name: Configure php-fpm (php-fpm.conf) lineinfile: - dest: /etc/php5/fpm/php-fpm.conf + dest: "{{ php_base_path }}/fpm/php-fpm.conf" regexp: '^[\s;]*{{ item.key }}[\s]*=' line: '{{ item.key }} = {{ item.value }}' with_items: diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/php.centos.yml b/provision/roles/boilerplate-main/tasks/bootstrap/php.redhat.yml similarity index 100% rename from provision/roles/boilerplate-main/tasks/bootstrap/php.centos.yml rename to provision/roles/boilerplate-main/tasks/bootstrap/php.redhat.yml diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/php.yml b/provision/roles/boilerplate-main/tasks/bootstrap/php.yml index 8eb9a43..f050689 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/php.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/php.yml @@ -2,16 +2,6 @@ - include_vars: "/opt/docker/etc/application.{{ PROVISION_CONTEXT }}.yml" -- name: Fact - php pool on centos - set_fact: - php_pool_conf: /etc/php-fpm.d/www.conf - when: ansible_distribution == 'CentOS' - -- name: Fact - php pool on ubuntu - set_fact: - php_pool_conf: /etc/php5/fpm/pool.d/www.conf - when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' - - name: Configure php-fpm (pool www.conf) lineinfile: dest: "{{ php_pool_conf }}" diff --git a/provision/roles/boilerplate-main/tasks/entrypoint.yml b/provision/roles/boilerplate-main/tasks/entrypoint.yml index e0224ca..2b98a06 100644 --- a/provision/roles/boilerplate-main/tasks/entrypoint.yml +++ b/provision/roles/boilerplate-main/tasks/entrypoint.yml @@ -1,4 +1,30 @@ --- +############################# +# Gather environment stuff +############################# + +- stat: path=/usr/sbin/php-fpm7.0 + register: php7_debian + +- name: Fact - php5 pool [RedHat family] + set_fact: + php_pool_conf: /etc/php-fpm.d/www.conf + when: ansible_os_family == 'RedHat' + +- name: Fact - php5 pool [Debian family] + set_fact: + php_pool_conf: /etc/php5/fpm/pool.d/www.conf + when: ansible_os_family == 'Debian' + +- name: Fact - php7 pool [Debian family] + set_fact: + php_pool_conf: /etc/php/7.0/fpm/pool.d/www.conf + when: ansible_os_family == 'Debian' and php7_debian.stat.exists is defined and php7_debian.stat.exists + +############################# +# Run tasks +############################# + - include: entrypoint/mysql.yml -- include: entrypoint/php.yml +- include: entrypoint/php.yml php_pool_conf="{{ php_pool_conf }}" diff --git a/provision/roles/boilerplate-main/tasks/entrypoint/php.yml b/provision/roles/boilerplate-main/tasks/entrypoint/php.yml index eff5e27..925a9ed 100644 --- a/provision/roles/boilerplate-main/tasks/entrypoint/php.yml +++ b/provision/roles/boilerplate-main/tasks/entrypoint/php.yml @@ -3,16 +3,6 @@ - include_vars: "/opt/docker/etc/application.{{ PROVISION_CONTEXT }}.yml" - include_vars: "/opt/docker/etc/application.environment.yml" -- name: Fact - php pool on centos - set_fact: - php_pool_conf: /etc/php-fpm.d/www.conf - when: ansible_distribution == 'CentOS' - -- name: Fact - php pool on ubuntu - set_fact: - php_pool_conf: /etc/php5/fpm/pool.d/www.conf - when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' - - name: Configure environment variables from DOCKER_ENVIRONMENT for php-fpm (pool www.conf) lineinfile: dest: "{{ php_pool_conf }}" From 791c195d0016a5765e75a1dc9ef908dfc485e39e Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 17 Dec 2015 18:28:14 +0100 Subject: [PATCH 009/120] Added php.ini comment header --- etc/php/development.ini | 4 ++++ etc/php/production.ini | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/etc/php/development.ini b/etc/php/development.ini index d823fcf..a0d9ff2 100644 --- a/etc/php/development.ini +++ b/etc/php/development.ini @@ -1,3 +1,7 @@ +; ------------------------------------- +; DEVELOPMENT configuration +; ------------------------------------- + ; this file will overwrite default php.ini settings display_errors = 1 diff --git a/etc/php/production.ini b/etc/php/production.ini index d457fab..1267427 100644 --- a/etc/php/production.ini +++ b/etc/php/production.ini @@ -1,3 +1,7 @@ +; ------------------------------------- +; PRODUCTION configuration +; ------------------------------------- + ; this file will overwrite default php.ini settings display_errors = 0 From 5a01e47175fb5e74057e1fc98a6d6c0db18fb7a2 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 17 Dec 2015 18:28:21 +0100 Subject: [PATCH 010/120] Updated dockerignore --- .dockerignore | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.dockerignore b/.dockerignore index d4882a7..b3720ec 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,7 +1,7 @@ *.md .git* -/backup/ -/bin/ -/documentation/ -/docker/ -/code/ +backup/* +bin/* +code/* +docker/* +documentation/* From c338fdac7e180cc4b60cb587a6e3addba1887274 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 17 Dec 2015 19:39:56 +0100 Subject: [PATCH 011/120] Added mail aliases handling Fixed #17 --- etc/application.development.yml | 2 ++ etc/application.production.yml | 2 ++ provision/roles/boilerplate-main/handlers/main.yml | 3 +++ .../boilerplate-main/tasks/bootstrap/postfix.yml | 11 ++++++++++- 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 provision/roles/boilerplate-main/handlers/main.yml diff --git a/etc/application.development.yml b/etc/application.development.yml index c3cd898..95431c9 100644 --- a/etc/application.development.yml +++ b/etc/application.development.yml @@ -17,6 +17,8 @@ DNS: - { domain: ".vm", address: "127.0.0.1" } MAIL: + aliases: + - { user: "root", destination: "root@example.com" } conf: - { variable: "inet_interfaces", value: "loopback-only" } # - { variable: "relayhost", value: "foobar" } diff --git a/etc/application.production.yml b/etc/application.production.yml index ccc2994..4805bc5 100644 --- a/etc/application.production.yml +++ b/etc/application.production.yml @@ -17,6 +17,8 @@ DNS: - { domain: ".vm", address: "127.0.0.1" } MAIL: + aliases: + - { user: "root", destination: "root@example.com" } conf: - { variable: "inet_interfaces", value: "loopback-only" } # - { variable: "relayhost", value: "foobar" } diff --git a/provision/roles/boilerplate-main/handlers/main.yml b/provision/roles/boilerplate-main/handlers/main.yml new file mode 100644 index 0000000..19664dd --- /dev/null +++ b/provision/roles/boilerplate-main/handlers/main.yml @@ -0,0 +1,3 @@ +--- +- name: update aliases + command: newaliases diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/postfix.yml b/provision/roles/boilerplate-main/tasks/bootstrap/postfix.yml index 974d45f..b15abbe 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/postfix.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/postfix.yml @@ -6,4 +6,13 @@ regexp: '^[\s;]*{{ item.variable }}[\s]*=' line: '{{ item.variable }} = {{ item.value }}' with_items: "{{ MAIL.conf }}" - when: MAIL.conf is defined and item.value != "" \ No newline at end of file + when: MAIL.conf is defined and item.value != "" + +- name: Configure aliases + lineinfile: + dest: /etc/aliases + regexp: '^[\s;]*{{ item.user }}[\s]*:' + line: '{{ item.user }}: {{ item.destination }}' + with_items: "{{ MAIL.aliases }}" + when: MAIL.aliases is defined and item.destination != "" + notify: update aliases From 8298a88e12eddab1abfab20681ba76c7e562fca4 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 17 Dec 2015 19:46:21 +0100 Subject: [PATCH 012/120] Added comment for cloud container --- docker-compose.cloud.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docker-compose.cloud.yml b/docker-compose.cloud.yml index e93ce47..d7cf467 100644 --- a/docker-compose.cloud.yml +++ b/docker-compose.cloud.yml @@ -1,5 +1,13 @@ ####################################### # Main php container +# +# for this container you have to remove +# following entries from .dockerignore: +# +# etc/* +# provision/* +# code/* +# ####################################### main: build: . From 3b42b0bab63ec4326e1eef00cea59c37223cc837 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 20 Dec 2015 17:57:19 +0100 Subject: [PATCH 013/120] Improved composer update/install --- .../roles/boilerplate-main/tasks/bootstrap/composer.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/composer.yml b/provision/roles/boilerplate-main/tasks/bootstrap/composer.yml index 3b6c09e..eef0267 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/composer.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/composer.yml @@ -1,4 +1,13 @@ --- +- stat: path=/usr/local/bin/composer + register: composer_bin + +- name: Update composer (phar) + command: 'composer self-update' + when: composer_bin.stat.exists is defined and composer_bin.stat.exists + - name: Install composer (phar) raw: 'curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer' + when: composer_bin.stat.exists is defined and not composer_bin.stat.exists + From 929581c5222c4aab20b572dd05d2566372ef147a Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 20 Dec 2015 19:22:16 +0100 Subject: [PATCH 014/120] Removed composer option from application.*.yml --- etc/application.development.yml | 1 - etc/application.production.yml | 1 - .../php-blackfire/{ubuntu.yml => debian.yml} | 0 .../php-blackfire/{centos.yml => redhat.yml} | 0 .../tasks/bootstrap/php-xdebug/centos.yml | 33 ------------------- .../tasks/bootstrap/php-xdebug/ubuntu.yml | 24 -------------- 6 files changed, 59 deletions(-) rename provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/{ubuntu.yml => debian.yml} (100%) rename provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/{centos.yml => redhat.yml} (100%) delete mode 100644 provision/roles/boilerplate-main-development/tasks/bootstrap/php-xdebug/centos.yml delete mode 100644 provision/roles/boilerplate-main-development/tasks/bootstrap/php-xdebug/ubuntu.yml diff --git a/etc/application.development.yml b/etc/application.development.yml index 95431c9..b2d95e8 100644 --- a/etc/application.development.yml +++ b/etc/application.development.yml @@ -4,7 +4,6 @@ PROVISION: systemUpdate: false install: - phpComposer: true phpBlackfire: false phpXdebug: false diff --git a/etc/application.production.yml b/etc/application.production.yml index 4805bc5..b6c1c16 100644 --- a/etc/application.production.yml +++ b/etc/application.production.yml @@ -4,7 +4,6 @@ PROVISION: systemUpdate: true install: - phpComposer: true phpBlackfire: false phpXdebug: false diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/ubuntu.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/debian.yml similarity index 100% rename from provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/ubuntu.yml rename to provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/debian.yml diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/centos.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/redhat.yml similarity index 100% rename from provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/centos.yml rename to provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/redhat.yml diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap/php-xdebug/centos.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap/php-xdebug/centos.yml deleted file mode 100644 index d5a44c0..0000000 --- a/provision/roles/boilerplate-main-development/tasks/bootstrap/php-xdebug/centos.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- - -- name: Add blackfire.io key - rpm_key: - key: https://packagecloud.io/gpg.key - state: present - -- name: Add blackfire.io repository - get_url: - url: http://packages.blackfire.io/fedora/blackfire.repo - dest: /etc/yum.repos.d/blackfire.repo - mode: 0644 - -- name: Disable gpg check for blackfire (CentOS 7 workaround) - lineinfile: - dest: /etc/yum.repos.d/blackfire.repo - regexp: '^repo_gpgcheck=1' - line: 'repo_gpgcheck=0' - when: ansible_distribution == 'CentOS' and ansible_distribution_major_version == '7' - -- name: Install blackfire-php - yum: - name: '{{ item }}' - state: present - with_items: - - blackfire-php - -- name: Install xdebug - yum: - name: '{{ item }}' - state: present - with_items: - - php-xdebug diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap/php-xdebug/ubuntu.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap/php-xdebug/ubuntu.yml deleted file mode 100644 index e0a1217..0000000 --- a/provision/roles/boilerplate-main-development/tasks/bootstrap/php-xdebug/ubuntu.yml +++ /dev/null @@ -1,24 +0,0 @@ ---- - -- name: Add blackfire.io key - apt_key: - url: https://packagecloud.io/gpg.key - state: present - -- name: Add blackfire.io repository - apt_repository: - repo: 'deb http://packages.blackfire.io/debian any main' - state: present - update_cache: yes - -- name: Install blackfire-php - apt: - name: '{{ item }}' - state: present - with_items: - - blackfire-php - -- name: Install xdebug - apt: - name: php5-xdebug - update_cache: yes From f207525f12a3745319ecd8e8d353cb48a0f84816 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 20 Dec 2015 19:22:36 +0100 Subject: [PATCH 015/120] Fixed centos/redhat provisioning --- provision/roles/boilerplate-main/tasks/bootstrap.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/provision/roles/boilerplate-main/tasks/bootstrap.yml b/provision/roles/boilerplate-main/tasks/bootstrap.yml index 483b686..58237cc 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap.yml @@ -8,18 +8,19 @@ - stat: path=/usr/sbin/php-fpm7.0 register: php7_debian -- name: Fact - php5 pool [RedHat family] +- name: Fact - php5 [RedHat family] set_fact: php_pool_conf: /etc/php-fpm.d/www.conf + php_base_path: false when: ansible_os_family == 'RedHat' -- name: Fact - php5 pool [Debian family] +- name: Fact - php5 [Debian family] set_fact: php_pool_conf: /etc/php5/fpm/pool.d/www.conf php_base_path: /etc/php5 when: ansible_os_family == 'Debian' -- name: Fact - php7 pool [Debian family] +- name: Fact - php7 [Debian family] set_fact: php_pool_conf: /etc/php/7.0/fpm/pool.d/www.conf php_base_path: /etc/php/7.0 @@ -43,7 +44,7 @@ - include: bootstrap/postfix.yml when: MAIL is defined -- include: bootstrap/php.redhat.yml +- include: bootstrap/php.redhat.yml php_base_path="{{ php_base_path }}" when: ansible_os_family == 'RedHat' - include: bootstrap/php.debian.yml php_base_path="{{ php_base_path }}" From 8bdb40cdbaeaf5a4f3c13c3489a789178ec379e5 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 20 Dec 2015 19:23:20 +0100 Subject: [PATCH 016/120] Fixed php provision (blackfire/xdebug) --- .../tasks/bootstrap.yml | 16 +++++------- .../tasks/bootstrap/php.xdebug.yml | 25 +++++++++++++++++++ 2 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 provision/roles/boilerplate-main-development/tasks/bootstrap/php.xdebug.yml diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap.yml index f787b8d..f39fcf3 100644 --- a/provision/roles/boilerplate-main-development/tasks/bootstrap.yml +++ b/provision/roles/boilerplate-main-development/tasks/bootstrap.yml @@ -1,15 +1,11 @@ --- -- include: bootstrap/php-blackfire/centos.yml - when: ansible_distribution == 'CentOS' and PROVISION.install.phpBlackfire +- include: bootstrap/php-blackfire/debian.yml + when: ansible_distribution == 'CentOS' and PROVISION.install.phpBlackfire is defined and PROVISION.install.phpBlackfire -- include: bootstrap/php-xdebug/centos.yml - when: ansible_distribution == 'CentOS' and PROVISION.install.phpXdebug +- include: bootstrap/php-blackfire/redhat.yml + when: ansible_os_family == 'Debian' and PROVISION.install.phpBlackfire is defined and PROVISION.install.phpBlackfire - -- include: bootstrap/php-blackfire/ubuntu.yml - when: ( ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' ) and PROVISION.install.phpBlackfire - -- include: bootstrap/php-xdebug/ubuntu.yml - when: ( ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian' ) and PROVISION.install.phpXdebug +- include: bootstrap/php.xdebug.yml + when: PROVISION.install.phpXdebug is defined and PROVISION.install.phpXdebug diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap/php.xdebug.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap/php.xdebug.yml new file mode 100644 index 0000000..c4471b4 --- /dev/null +++ b/provision/roles/boilerplate-main-development/tasks/bootstrap/php.xdebug.yml @@ -0,0 +1,25 @@ +--- + +- name: Set php xdebug file [RedHat family] + set_fact: + php_xdebug_conf: /etc/php.d/xdebug.ini + when: ansible_os_family == 'RedHat' + +- name: Set php xdebug file [Debian family] + set_fact: + php_xdebug_conf: /etc/php5/mods-available/xdebug.ini + when: ansible_os_family == 'Debian' + +- name: Set php xdebug file [Ubuntu 12.04] + set_fact: + php_xdebug_conf: /etc/php5/conf.d/xdebug.ini + when: ansible_distribution == 'Ubuntu' and ansible_distribution_version == "12.04" + +- name: Enable xdebug + replace: + dest: '{{ php_xdebug_conf }}' + regexp: '^[\s]*;[\s]*({{ item }}[\s]*=.*)$' + replace: '\1' + with_items: + - 'zend_extension' + - 'extension' From 56ad35912f1956611e66fdb82a7109cdf805158c Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 20 Dec 2015 19:23:32 +0100 Subject: [PATCH 017/120] Add ignore error when composer self-update fails --- provision/roles/boilerplate-main/tasks/bootstrap/composer.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/composer.yml b/provision/roles/boilerplate-main/tasks/bootstrap/composer.yml index eef0267..df8da1e 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/composer.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/composer.yml @@ -6,6 +6,7 @@ - name: Update composer (phar) command: 'composer self-update' when: composer_bin.stat.exists is defined and composer_bin.stat.exists + ignore_errors: yes - name: Install composer (phar) raw: 'curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer' From f5587709e7a058ab1356c6140a098dc7152b3815 Mon Sep 17 00:00:00 2001 From: Pascal Borreli Date: Sun, 3 Jan 2016 12:57:43 +0000 Subject: [PATCH 018/120] Fixed typo --- documentation/INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/INSTALL.md b/documentation/INSTALL.md index d613294..af065e6 100644 --- a/documentation/INSTALL.md +++ b/documentation/INSTALL.md @@ -17,7 +17,7 @@ with a mailcatcher (Postfix with Dovecot, catches all outgoing mails). _Warning:_ Boot2docker ist not recommended because of slow/buggy file sharing between host and guest and there is no convienient way to access the box with Samba or SSH. -This Docker boilerplate tries to avoid common anti-pattners like a Samba/SSH container because Boot2docker +This Docker boilerplate tries to avoid common anti-patterns like a Samba/SSH container because Boot2docker isn't able to handle such tasks. For more convenience use [CliTools.phar](https://github.com/webdevops/clitools) (will also run on native Linux, not only inside a Vagrant box) From 049b91904839de220265443065e8f238cd204ec9 Mon Sep 17 00:00:00 2001 From: Pascal Borreli Date: Sun, 3 Jan 2016 12:57:43 +0000 Subject: [PATCH 019/120] Fixed typo --- documentation/INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/INSTALL.md b/documentation/INSTALL.md index a720cf4..21b2911 100644 --- a/documentation/INSTALL.md +++ b/documentation/INSTALL.md @@ -17,7 +17,7 @@ with a mailcatcher (Postfix with Dovecot, catches all outgoing mails). _Warning:_ Boot2docker ist not recommended because of slow/buggy file sharing between host and guest and there is no convienient way to access the box with Samba or SSH. -This Docker boilerplate tries to avoid common anti-pattners like a Samba/SSH container because Boot2docker +This Docker boilerplate tries to avoid common anti-patterns like a Samba/SSH container because Boot2docker isn't able to handle such tasks. For more convenience use [CliTools.phar](https://github.com/webdevops/clitools) (will also run on native Linux, not only inside a Vagrant box) From 03f4947592a699fb050f04c474182e7b70231d4f Mon Sep 17 00:00:00 2001 From: Pascal Borreli Date: Sun, 3 Jan 2016 13:32:21 +0000 Subject: [PATCH 020/120] Fixed typos --- documentation/DOCKER-INFO.md | 2 +- documentation/DOCKER-STARTUP.md | 4 ++-- documentation/INSTALL.md | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/documentation/DOCKER-INFO.md b/documentation/DOCKER-INFO.md index a0e5b2b..a948d1c 100644 --- a/documentation/DOCKER-INFO.md +++ b/documentation/DOCKER-INFO.md @@ -106,4 +106,4 @@ Save, set a break point and test the debugger. ## Application cache Symlink your application cache (eg. typo3temp/) to `/data/cache/` and it will be stored inside the `storage` container -so it will be accessable within all containers (eg. web or main). +so it will be accessible within all containers (eg. web or main). diff --git a/documentation/DOCKER-STARTUP.md b/documentation/DOCKER-STARTUP.md index e5d3cf9..7a07c3e 100644 --- a/documentation/DOCKER-STARTUP.md +++ b/documentation/DOCKER-STARTUP.md @@ -27,10 +27,10 @@ For an existing project just put your files into `code/` folder or use git to cl ## Advanced usage (git) Use this boilerplate as template and customize it for each project. Put this Docker -configuration for each project into seperate git repositories. +configuration for each project into separate git repositories. Now set your existing project repository to be a git submodule in `code/`. Every developer now needs only to clone the Docker repository with `--recursive` option to get both, the Docker configuration and the TYPO3 installation. -For better useability track a whole branch (eg. develop or master) as submodule and not just a single commit. +For better usability track a whole branch (eg. develop or master) as submodule and not just a single commit. diff --git a/documentation/INSTALL.md b/documentation/INSTALL.md index 21b2911..4727980 100644 --- a/documentation/INSTALL.md +++ b/documentation/INSTALL.md @@ -2,7 +2,7 @@ # Installation -## Reqirements +## Requirements - GNU/Linux with Docker (recommendation: [Vagrant](https://www.vagrantup.com/downloads.html) VM with Docker or [native Linux with Docker](http://docs.docker.com/linux/step_one/) - make @@ -15,8 +15,8 @@ the much faster virtualisation (networking, disk access, shared folders) compare There is also a [Vagrant VM for VirtualBox, VMware and Parallels](https://github.com/webdevops/vagrant-docker-vm) with a mailcatcher (Postfix with Dovecot, catches all outgoing mails). -_Warning:_ Boot2docker ist not recommended because of slow/buggy file sharing between host and guest and there is no -convienient way to access the box with Samba or SSH. +_Warning:_ Boot2docker is not recommended because of slow/buggy file sharing between host and guest and there is no +convenient way to access the box with Samba or SSH. This Docker boilerplate tries to avoid common anti-patterns like a Samba/SSH container because Boot2docker isn't able to handle such tasks. From 764e740ce1e03d5e7efa922c359a0e9c5c173b24 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Mon, 11 Jan 2016 20:51:22 +0100 Subject: [PATCH 021/120] Fixed wrong paths in docker-compose --- docker-compose.development.yml | 3 +-- docker-compose.production.yml | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index cdbec12..1569c06 100644 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -135,8 +135,7 @@ mysql: # volumes_from: # - storage # volumes: -# - ./:/docker/ -# - /tmp/debug/:/tmp/debug/ +# - ./:/application/ # env_file: # - etc/environment.yml # - etc/environment.development.yml diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 06ae7a6..15831f9 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -128,8 +128,7 @@ mysql: # volumes_from: # - storage # volumes: -# - ./:/docker/ -# - /tmp/debug/:/tmp/debug/ +# - ./:/application/ # env_file: # - etc/environment.yml # - etc/environment.production.yml From bd7bddf1b76f4c97f3eed9f726c4f54da1e24404 Mon Sep 17 00:00:00 2001 From: Rizzi Date: Tue, 12 Jan 2016 01:24:42 +0100 Subject: [PATCH 022/120] Update .config.sh prevent dirname error: "usage: dirname path" --- bin/.config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/.config.sh b/bin/.config.sh index a32434d..da55fc0 100755 --- a/bin/.config.sh +++ b/bin/.config.sh @@ -23,7 +23,7 @@ if [ -z "`which $READLINK`" ]; then exit 1 fi -SCRIPT_DIR=$(dirname $($READLINK -f "$0")) +SCRIPT_DIR=$(dirname "$($READLINK -f "$0")") ROOT_DIR=$($READLINK -f "$SCRIPT_DIR/../") CODE_DIR=$($READLINK -f "$ROOT_DIR/code") From 055e6769b191e8932dac1211794139490fd9f4cb Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 12 Jan 2016 22:27:07 +0100 Subject: [PATCH 023/120] Ansible 2.0 compatiblity Update your docker images if provisioning fails! --- .../roles/boilerplate-main/tasks/bootstrap/web.apache.yml | 2 +- .../roles/boilerplate-main/tasks/bootstrap/web.nginx.yml | 2 +- provision/roles/boilerplate-main/tasks/entrypoint/mysql.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.yml b/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.yml index a165a19..a8c806c 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.yml @@ -6,7 +6,7 @@ - name: Deploy dynamic apache vhost template: - src: ../../templates/apache/vhost.conf.j2 + src: templates/apache/vhost.conf.j2 dest: /opt/docker/etc/httpd/vhost.conf owner: root group: root diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/web.nginx.yml b/provision/roles/boilerplate-main/tasks/bootstrap/web.nginx.yml index 39646e1..de750da 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/web.nginx.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/web.nginx.yml @@ -6,7 +6,7 @@ - name: Deploy dynamic nginx vhost template: - src: ../../templates/nginx/vhost.conf.j2 + src: templates/nginx/vhost.conf.j2 dest: /opt/docker/etc/nginx/vhost.conf owner: root group: root diff --git a/provision/roles/boilerplate-main/tasks/entrypoint/mysql.yml b/provision/roles/boilerplate-main/tasks/entrypoint/mysql.yml index 5422f0e..7072644 100644 --- a/provision/roles/boilerplate-main/tasks/entrypoint/mysql.yml +++ b/provision/roles/boilerplate-main/tasks/entrypoint/mysql.yml @@ -2,7 +2,7 @@ - name: Deploy root my.cnf template: - src: ../../templates/my.cnf.j2 + src: templates/my.cnf.j2 dest: /root/.my.cnf owner: root group: root @@ -10,7 +10,7 @@ - name: Deploy user my.cnf template: - src: ../../templates/my.cnf.j2 + src: templates/my.cnf.j2 dest: /home/.my.cnf owner: "{{ lookup('env','APPLICATION_USER') }}" group: "{{ lookup('env','APPLICATION_USER') }}" From 937fbf1d6b2d4775ddfaa105fc6d672bc0f544c5 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Mon, 18 Jan 2016 22:41:09 +0100 Subject: [PATCH 024/120] Fixed wrong php fpm access log format --- etc/application.development.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/application.development.yml b/etc/application.development.yml index b2d95e8..e1b9b48 100644 --- a/etc/application.development.yml +++ b/etc/application.development.yml @@ -33,6 +33,6 @@ PHP: # Misc - { variable: "catch_workers_output", value: "yes" } # Logs - - { variable: "access.format", value: "%R - %u %t \"%m %r%Q%q\" %s %f cpu:%C%% mem:%{megabytes}M reqTime:%d" } + - { variable: "access.format", value: '"%R - %u %t \"%m %r%Q%q\" %s %f cpu:%C%% mem:%{megabytes}M reqTime:%d"' } - { variable: "request_slowlog_timeout", value: "10s" } - { variable: "php_admin_flag[log_errors]", value: "on" } From 4781a8f502107f7380d75e7ede14cb975825bea3 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Mon, 18 Jan 2016 23:00:38 +0100 Subject: [PATCH 025/120] Added mod_pagespeed Fixed #23 --- etc/application.development.yml | 5 +++-- etc/application.production.yml | 5 +++-- .../roles/boilerplate-main/tasks/bootstrap.yml | 2 ++ .../tasks/bootstrap/web.apache.pagespeed.yml | 18 ++++++++++++++++++ 4 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/web.apache.pagespeed.yml diff --git a/etc/application.development.yml b/etc/application.development.yml index e1b9b48..c4659e2 100644 --- a/etc/application.development.yml +++ b/etc/application.development.yml @@ -4,8 +4,9 @@ PROVISION: systemUpdate: false install: - phpBlackfire: false - phpXdebug: false + phpBlackfire: false + phpXdebug: false + apacheModPagespeed: true WEB: vhost: diff --git a/etc/application.production.yml b/etc/application.production.yml index b6c1c16..333d632 100644 --- a/etc/application.production.yml +++ b/etc/application.production.yml @@ -4,8 +4,9 @@ PROVISION: systemUpdate: true install: - phpBlackfire: false - phpXdebug: false + phpBlackfire: false + phpXdebug: false + apacheModPagespeed: false WEB: vhost: diff --git a/provision/roles/boilerplate-main/tasks/bootstrap.yml b/provision/roles/boilerplate-main/tasks/bootstrap.yml index 58237cc..c5c4588 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap.yml @@ -53,4 +53,6 @@ - include: bootstrap/php.yml php_pool_conf="{{ php_pool_conf }}" - include: bootstrap/web.apache.yml +- include: bootstrap/web.apache.pagespeed.yml + when: PROVISION.install.apacheModPagespeed is defined and PROVISION.install.apacheModPagespeed - include: bootstrap/web.nginx.yml diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.pagespeed.yml b/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.pagespeed.yml new file mode 100644 index 0000000..210457a --- /dev/null +++ b/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.pagespeed.yml @@ -0,0 +1,18 @@ +--- + +- name: Download apache mod_pagespeed [Debian family] + get_url: + url: https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb + dest: /tmp/mod-pagespeed.deb + when: ansible_os_family == 'Debian' + +- name: Install apache mod_pagespeed [Debian family] + apt: + deb: /tmp/mod-pagespeed.deb + when: ansible_os_family == 'Debian' + +- name: Install apache mod_pagespeed [RedHat family] + yum: + name: https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm + state: present + when: ansible_os_family == 'RedHat' From 9756867a923bdafef272c0fc66d0a9ef1fefcd19 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 19 Jan 2016 10:15:23 +0100 Subject: [PATCH 026/120] Disabled pagespeed by default --- etc/application.development.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/application.development.yml b/etc/application.development.yml index c4659e2..af698c3 100644 --- a/etc/application.development.yml +++ b/etc/application.development.yml @@ -6,7 +6,7 @@ PROVISION: install: phpBlackfire: false phpXdebug: false - apacheModPagespeed: true + apacheModPagespeed: false WEB: vhost: From 1aed00a7f011d984c7a7ff5d7cdc865a18a1e2b1 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 24 Jan 2016 23:27:07 +0100 Subject: [PATCH 027/120] Simplified provisioning Needs VERSION 4 docker images --- .../defaults/main.yml | 3 +- .../roles/boilerplate-main/defaults/main.yml | 3 +- .../boilerplate-main/tasks/bootstrap.yml | 34 ++++--------------- .../tasks/bootstrap/dnsmasq.yml | 2 +- .../tasks/bootstrap/php.debian.yml | 29 ---------------- .../tasks/bootstrap/php.redhat.yml | 8 ----- .../boilerplate-main/tasks/bootstrap/php.yml | 26 +++++++++++++- .../boilerplate-main/tasks/entrypoint.yml | 28 +-------------- .../boilerplate-main/tasks/entrypoint/php.yml | 18 +--------- 9 files changed, 38 insertions(+), 113 deletions(-) delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/php.debian.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/php.redhat.yml diff --git a/provision/roles/boilerplate-main-development/defaults/main.yml b/provision/roles/boilerplate-main-development/defaults/main.yml index 88d1b8a..6b531af 100644 --- a/provision/roles/boilerplate-main-development/defaults/main.yml +++ b/provision/roles/boilerplate-main-development/defaults/main.yml @@ -1,2 +1,3 @@ --- - PROVISION_CONTEXT: "{{ lookup('env','PROVISION_CONTEXT') }}" + +PROVISION_CONTEXT: "{{ lookup('env','PROVISION_CONTEXT') }}" diff --git a/provision/roles/boilerplate-main/defaults/main.yml b/provision/roles/boilerplate-main/defaults/main.yml index 88d1b8a..6b531af 100644 --- a/provision/roles/boilerplate-main/defaults/main.yml +++ b/provision/roles/boilerplate-main/defaults/main.yml @@ -1,2 +1,3 @@ --- - PROVISION_CONTEXT: "{{ lookup('env','PROVISION_CONTEXT') }}" + +PROVISION_CONTEXT: "{{ lookup('env','PROVISION_CONTEXT') }}" diff --git a/provision/roles/boilerplate-main/tasks/bootstrap.yml b/provision/roles/boilerplate-main/tasks/bootstrap.yml index c5c4588..ff5ed21 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap.yml @@ -5,27 +5,6 @@ - include_vars: "/opt/docker/etc/application.{{ PROVISION_CONTEXT }}.yml" -- stat: path=/usr/sbin/php-fpm7.0 - register: php7_debian - -- name: Fact - php5 [RedHat family] - set_fact: - php_pool_conf: /etc/php-fpm.d/www.conf - php_base_path: false - when: ansible_os_family == 'RedHat' - -- name: Fact - php5 [Debian family] - set_fact: - php_pool_conf: /etc/php5/fpm/pool.d/www.conf - php_base_path: /etc/php5 - when: ansible_os_family == 'Debian' - -- name: Fact - php7 [Debian family] - set_fact: - php_pool_conf: /etc/php/7.0/fpm/pool.d/www.conf - php_base_path: /etc/php/7.0 - when: ansible_os_family == 'Debian' and php7_debian.stat.exists is defined and php7_debian.stat.exists - ############################# # Run tasks ############################# @@ -38,21 +17,20 @@ - include: bootstrap/composer.yml when: PROVISION.install.phpComposer is defined and PROVISION.install.phpComposer + - include: bootstrap/cron.yml + - include: bootstrap/dnsmasq.yml when: DNS is defined + - include: bootstrap/postfix.yml when: MAIL is defined -- include: bootstrap/php.redhat.yml php_base_path="{{ php_base_path }}" - when: ansible_os_family == 'RedHat' - -- include: bootstrap/php.debian.yml php_base_path="{{ php_base_path }}" - when: ansible_os_family == 'Debian' - -- include: bootstrap/php.yml php_pool_conf="{{ php_pool_conf }}" +- include: bootstrap/php.yml - include: bootstrap/web.apache.yml + - include: bootstrap/web.apache.pagespeed.yml when: PROVISION.install.apacheModPagespeed is defined and PROVISION.install.apacheModPagespeed + - include: bootstrap/web.nginx.yml diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/dnsmasq.yml b/provision/roles/boilerplate-main/tasks/bootstrap/dnsmasq.yml index 65fed23..4996ec2 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/dnsmasq.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/dnsmasq.yml @@ -9,4 +9,4 @@ line: 'address=/{{ item.domain }}/{{ item.address }}' create: yes with_items: "{{ DNS.domain }}" - when: DNS.domain is defined + when: DNS.domain is defined diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/php.debian.yml b/provision/roles/boilerplate-main/tasks/bootstrap/php.debian.yml deleted file mode 100644 index 831c01e..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/php.debian.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- - -- name: Create /etc/php5/mods-available/ - file: - path: "{{ php_base_path }}/mods-available/" - state: directory - mode: 0755 - -- name: Link php.ini for cli and fpm - file: - src: '{{ item.file }}' - dest: '{{ php_base_path }}/{{ item.category }}/conf.d/{{ item.target }}' - force: yes - state: link - with_items: - # PHP cli - - { category: 'cli', file: '/etc/php5/mods-available/mcrypt.ini', target: '20-mcrypt.ini' } - - { category: 'cli', file: '/opt/docker/etc/php/php.ini', target: '99-docker-boilerplate.ini' } - # PHP fpm - - { category: 'fpm', file: '/etc/php5/mods-available/mcrypt.ini', target: '20-mcrypt.ini' } - - { category: 'fpm', file: '/opt/docker/etc/php/php.ini', target: '99-docker-boilerplate.ini' } - -- name: Configure php-fpm (php-fpm.conf) - lineinfile: - dest: "{{ php_base_path }}/fpm/php-fpm.conf" - regexp: '^[\s;]*{{ item.key }}[\s]*=' - line: '{{ item.key }} = {{ item.value }}' - with_items: - - { key: 'daemonize', value: 'no' } diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/php.redhat.yml b/provision/roles/boilerplate-main/tasks/bootstrap/php.redhat.yml deleted file mode 100644 index 67728cc..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/php.redhat.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- - -- name: Create link for additional php.ini - file: - src: '/opt/docker/etc/php/php.ini' - dest: '/etc/php.d/zzz-docker-boilerplate.ini' - state: link - force: yes diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/php.yml b/provision/roles/boilerplate-main/tasks/bootstrap/php.yml index f050689..e0c09b9 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/php.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/php.yml @@ -4,8 +4,32 @@ - name: Configure php-fpm (pool www.conf) lineinfile: - dest: "{{ php_pool_conf }}" + dest: "/opt/docker/etc/php/fpm/pool.d/application.conf" regexp: '^[\s;]*{{ item.variable }}[\s]*=' line: '{{ item.variable }} = {{ item.value }}' with_items: "{{ PHP.fpm.conf }}" when: PHP.fpm.conf is defined and item.value != "" + +- name: Configure php-fpm (php-fpm.conf) + lineinfile: + dest: "/opt/docker/etc/php/fpm/php-fpm.conf" + regexp: '^[\s;]*{{ item.key }}[\s]*=' + line: '{{ item.key }} = {{ item.value }}' + with_items: + - { key: 'daemonize', value: 'no' } + +- name: Set development environment php.ini + file: + src: '/opt/docker/etc/php/development.ini' + dest: '/opt/docker/etc/php/php.ini' + state: link + force: yes + when: PROVISION_CONTEXT == "development" + +- name: Enable production environment php.ini + file: + src: '/opt/docker/etc/php/production.ini' + dest: '/opt/docker/etc/php/php.ini' + state: link + force: yes + when: PROVISION_CONTEXT == "production" or PROVISION_CONTEXT == "" diff --git a/provision/roles/boilerplate-main/tasks/entrypoint.yml b/provision/roles/boilerplate-main/tasks/entrypoint.yml index 2b98a06..e0224ca 100644 --- a/provision/roles/boilerplate-main/tasks/entrypoint.yml +++ b/provision/roles/boilerplate-main/tasks/entrypoint.yml @@ -1,30 +1,4 @@ --- -############################# -# Gather environment stuff -############################# - -- stat: path=/usr/sbin/php-fpm7.0 - register: php7_debian - -- name: Fact - php5 pool [RedHat family] - set_fact: - php_pool_conf: /etc/php-fpm.d/www.conf - when: ansible_os_family == 'RedHat' - -- name: Fact - php5 pool [Debian family] - set_fact: - php_pool_conf: /etc/php5/fpm/pool.d/www.conf - when: ansible_os_family == 'Debian' - -- name: Fact - php7 pool [Debian family] - set_fact: - php_pool_conf: /etc/php/7.0/fpm/pool.d/www.conf - when: ansible_os_family == 'Debian' and php7_debian.stat.exists is defined and php7_debian.stat.exists - -############################# -# Run tasks -############################# - - include: entrypoint/mysql.yml -- include: entrypoint/php.yml php_pool_conf="{{ php_pool_conf }}" +- include: entrypoint/php.yml diff --git a/provision/roles/boilerplate-main/tasks/entrypoint/php.yml b/provision/roles/boilerplate-main/tasks/entrypoint/php.yml index 925a9ed..b841d2c 100644 --- a/provision/roles/boilerplate-main/tasks/entrypoint/php.yml +++ b/provision/roles/boilerplate-main/tasks/entrypoint/php.yml @@ -5,24 +5,8 @@ - name: Configure environment variables from DOCKER_ENVIRONMENT for php-fpm (pool www.conf) lineinfile: - dest: "{{ php_pool_conf }}" + dest: "/opt/docker/etc/php/fpm/pool.d/application.conf" regexp: '^env\[{{ item.key }}\][\s]*=' line: 'env[{{ item.key }}] = "{{ item.value }}"' with_dict: "{{ DOCKER_ENVIRONMENT }}" when: DOCKER_ENVIRONMENT is defined and item.value != '' - -- name: Set development environment php.ini - file: - src: '/opt/docker/etc/php/development.ini' - dest: '/opt/docker/etc/php/php.ini' - state: link - force: yes - when: PROVISION_CONTEXT == "development" or PROVISION_CONTEXT == "" - -- name: Enable production environment php.ini - file: - src: '/opt/docker/etc/php/production.ini' - dest: '/opt/docker/etc/php/php.ini' - state: link - force: yes - when: PROVISION_CONTEXT == "production" From a675331c9aa31662adf58d3c365261a9918d4406 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 24 Jan 2016 23:27:14 +0100 Subject: [PATCH 028/120] Added crontab example --- etc/cron/crontab | 1 + 1 file changed, 1 insertion(+) diff --git a/etc/cron/crontab b/etc/cron/crontab index e69de29..3036fe8 100644 --- a/etc/cron/crontab +++ b/etc/cron/crontab @@ -0,0 +1 @@ +# m h dom mon dow user command From 1bbd281f41f7faa4f7f1b97caf5d570f9567dafa Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 2 Feb 2016 22:59:12 +0100 Subject: [PATCH 029/120] Disabled expose_php --- etc/php/development.ini | 2 ++ etc/php/production.ini | 2 ++ 2 files changed, 4 insertions(+) diff --git a/etc/php/development.ini b/etc/php/development.ini index a0d9ff2..f4802d2 100644 --- a/etc/php/development.ini +++ b/etc/php/development.ini @@ -20,6 +20,8 @@ post_max_size = 50M upload_max_filesize = 50M max_input_vars = 5000 +expose_php = Off + date.timezone = Europe/Berlin mysql.default_host = mysql diff --git a/etc/php/production.ini b/etc/php/production.ini index 1267427..616e470 100644 --- a/etc/php/production.ini +++ b/etc/php/production.ini @@ -20,6 +20,8 @@ post_max_size = 50M upload_max_filesize = 50M max_input_vars = 5000 +expose_php = Off + date.timezone = Europe/Berlin mysql.default_host = mysql From 975acc6e651c8ac536efea0191048fbd683acd8f Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 2 Feb 2016 22:59:20 +0100 Subject: [PATCH 030/120] Switch to default MySQL 5.6 --- docker-compose.cloud.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.cloud.yml b/docker-compose.cloud.yml index d7cf467..4d20475 100644 --- a/docker-compose.cloud.yml +++ b/docker-compose.cloud.yml @@ -37,8 +37,8 @@ main: ####################################### mysql: build: docker/mysql - dockerfile: MySQL-5.5 - #dockerfile: MySQL-5.6 + #dockerfile: MySQL-5.5 + dockerfile: MySQL-5.6 #dockerfile: MySQL-5.7 #dockerfile: MariaDB-5.5 #dockerfile: MariaDB-10 From d399b7042bb2e79e9250d0c2fbb5ae53040179b7 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 3 Feb 2016 22:55:07 +0100 Subject: [PATCH 031/120] Moved /data/ to /storage/ --- bin/backup.sh | 2 +- bin/restore.sh | 4 ++-- docker-compose.cloud.yml | 2 +- docker-compose.development.yml | 2 +- docker-compose.production.yml | 2 +- docker/solr/Dockerfile | 4 ++-- documentation/DOCKER-INFO.md | 2 +- documentation/SERVICES.md | 2 +- etc/environment.yml | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bin/backup.sh b/bin/backup.sh index 5f25cbd..9d5c3c0 100755 --- a/bin/backup.sh +++ b/bin/backup.sh @@ -39,7 +39,7 @@ case "$1" in fi logMsg "Starting Solr backup..." - tar jcPf "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" /data/solr/ + tar jcPf "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" /storage/solr/ logMsg "Finished" ;; esac diff --git a/bin/restore.sh b/bin/restore.sh index e26bddd..71de559 100755 --- a/bin/restore.sh +++ b/bin/restore.sh @@ -35,8 +35,8 @@ case "$1" in "solr") if [ -f "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" ]; then logMsg "Starting Solr restore..." - rm -rf /data/solr/* && mkdir -p /data/solr/ - chmod 777 /data/solr/ + rm -rf /storage/solr/* && mkdir -p /storage/solr/ + chmod 777 /storage/solr/ tar jxPf "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" -C / logMsg "Finished" else diff --git a/docker-compose.cloud.yml b/docker-compose.cloud.yml index 4d20475..61c7424 100644 --- a/docker-compose.cloud.yml +++ b/docker-compose.cloud.yml @@ -69,7 +69,7 @@ mysql: # volumes_from: # - storage # environment: -# - SOLR_STORAGE=/data/solr/server-master/ +# - SOLR_STORAGE=/storage/solr/server-master/ # env_file: # - etc/environment.yml # - etc/environment.production.yml diff --git a/docker-compose.development.yml b/docker-compose.development.yml index 1569c06..44b8f92 100644 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -75,7 +75,7 @@ mysql: # volumes_from: # - storage # environment: -# - SOLR_STORAGE=/data/solr/server-master/ +# - SOLR_STORAGE=/storage/solr/server-master/ # env_file: # - etc/environment.yml # - etc/environment.development.yml diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 15831f9..b32ad07 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -68,7 +68,7 @@ mysql: # volumes_from: # - storage # environment: -# - SOLR_STORAGE=/data/solr/server-master/ +# - SOLR_STORAGE=/storage/solr/server-master/ # env_file: # - etc/environment.yml # - etc/environment.production.yml diff --git a/docker/solr/Dockerfile b/docker/solr/Dockerfile index 2195cfc..516dd5c 100644 --- a/docker/solr/Dockerfile +++ b/docker/solr/Dockerfile @@ -31,7 +31,7 @@ RUN ln -s /opt/solr/contrib /opt/solr/example/solr/contrib # Fix rights RUN chown solr:solr -R /opt/solr/example/solr/ -VOLUME "/data" +VOLUME "/storage" ENTRYPOINT ["/entrypoint.sh"] -CMD ["solr"] \ No newline at end of file +CMD ["solr"] diff --git a/documentation/DOCKER-INFO.md b/documentation/DOCKER-INFO.md index a948d1c..6f74597 100644 --- a/documentation/DOCKER-INFO.md +++ b/documentation/DOCKER-INFO.md @@ -105,5 +105,5 @@ Save, set a break point and test the debugger. ## Application cache -Symlink your application cache (eg. typo3temp/) to `/data/cache/` and it will be stored inside the `storage` container +Symlink your application cache (eg. typo3temp/) to `/storage/cache/` and it will be stored inside the `storage` container so it will be accessible within all containers (eg. web or main). diff --git a/documentation/SERVICES.md b/documentation/SERVICES.md index e62a6a7..8623949 100644 --- a/documentation/SERVICES.md +++ b/documentation/SERVICES.md @@ -80,4 +80,4 @@ Host | ftp Ports | 20,21 User | dev (if not changed in env) Password | dev (if not changed in env) -Path | /data/ftp (if not changed in env) +Path | /storage/ftp (if not changed in env) diff --git a/etc/environment.yml b/etc/environment.yml index fbd5ce5..dd31fe8 100644 --- a/etc/environment.yml +++ b/etc/environment.yml @@ -44,5 +44,5 @@ POSTGRES_PASSWORD=dev # FTP settings FTP_USER=dev FTP_PASSWORD=dev -FTP_PATH=/data/ftp/ +FTP_PATH=/storage/ftp/ #FTP_PATH=/docker/code/ From 6232879411b76173d12cedfb86809663ff2da5dd Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 14 Feb 2016 23:11:52 +0100 Subject: [PATCH 032/120] Added enabling/disabling of services via provision --- Dockerfile.cloud | 4 +--- Dockerfile.development | 3 --- Dockerfile.production | 3 --- etc/application.development.yml | 6 ++++++ etc/application.production.yml | 6 ++++++ provision/roles/boilerplate-main/tasks/bootstrap.yml | 2 ++ .../boilerplate-main/tasks/bootstrap/services.yml | 11 +++++++++++ 7 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/services.yml diff --git a/Dockerfile.cloud b/Dockerfile.cloud index a3e2648..4183c9f 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -47,11 +47,9 @@ COPY code/ /application/code/ RUN /opt/docker/bin/control.sh provision.role.startup boilerplate-main \ && /opt/docker/bin/control.sh provision.role.startup boilerplate-deployment \ - && /opt/docker/bin/control.sh service.enable cron \ - && /opt/docker/bin/control.sh service.enable dnsmasq \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir -RUN mkdir -p /application/code/ + RUN mkdir -p /application/code/ VOLUME /application/ WORKDIR /application/code/ diff --git a/Dockerfile.development b/Dockerfile.development index 6f4e479..0271850 100644 --- a/Dockerfile.development +++ b/Dockerfile.development @@ -46,9 +46,6 @@ COPY provision/ /opt/docker/provision/ RUN /opt/docker/bin/control.sh provision.role boilerplate-main \ && /opt/docker/bin/control.sh provision.role boilerplate-main-development \ && /opt/docker/bin/control.sh provision.role.startup boilerplate-deployment \ - && /opt/docker/bin/control.sh service.enable cron \ - && /opt/docker/bin/control.sh service.enable dnsmasq \ - && /opt/docker/bin/control.sh service.enable postfix \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir diff --git a/Dockerfile.production b/Dockerfile.production index 2d3d2b6..a706e15 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -45,9 +45,6 @@ COPY provision/ /opt/docker/provision/ RUN /opt/docker/bin/control.sh provision.role boilerplate-main \ && /opt/docker/bin/control.sh provision.role.startup boilerplate-deployment \ - && /opt/docker/bin/control.sh service.enable cron \ - && /opt/docker/bin/control.sh service.enable dnsmasq \ - && /opt/docker/bin/control.sh service.enable postfix \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir diff --git a/etc/application.development.yml b/etc/application.development.yml index af698c3..fe2c56b 100644 --- a/etc/application.development.yml +++ b/etc/application.development.yml @@ -8,6 +8,12 @@ PROVISION: phpXdebug: false apacheModPagespeed: false + service: + # set "enabled" or "disabled" to controll startup of services + - { service: "cron", status: "enabled" } + - { service: "dnsmasq", status: "enabled" } + - { service: "postfix", status: "enabled" } + WEB: vhost: - { serverName: "docker.vm", serverAlias: "*.vm" } diff --git a/etc/application.production.yml b/etc/application.production.yml index 333d632..ba8ae21 100644 --- a/etc/application.production.yml +++ b/etc/application.production.yml @@ -8,6 +8,12 @@ PROVISION: phpXdebug: false apacheModPagespeed: false + service: + # set "enabled" or "disabled" to controll startup of services + - { service: "cron", status: "disabled" } + - { service: "dnsmasq", status: "enabled" } + - { service: "postfix", status: "enabled" } + WEB: vhost: - { serverName: "docker.vm", serverAlias: "*.vm" } diff --git a/provision/roles/boilerplate-main/tasks/bootstrap.yml b/provision/roles/boilerplate-main/tasks/bootstrap.yml index ff5ed21..eb3f70a 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap.yml @@ -18,6 +18,8 @@ - include: bootstrap/composer.yml when: PROVISION.install.phpComposer is defined and PROVISION.install.phpComposer +- include: bootstrap/services.yml + - include: bootstrap/cron.yml - include: bootstrap/dnsmasq.yml diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/services.yml b/provision/roles/boilerplate-main/tasks/bootstrap/services.yml new file mode 100644 index 0000000..2f3388d --- /dev/null +++ b/provision/roles/boilerplate-main/tasks/bootstrap/services.yml @@ -0,0 +1,11 @@ +--- + +- name: Enable services + command: /opt/docker/bin/control.sh service.enable {{ item.service }} + with_items: PROVISION.service + when: PROVISION.service is defined and item.status == 'enabled' + +- name: Disable services + command: /opt/docker/bin/control.sh service.disable {{ item.service }} + with_items: PROVISION.service + when: PROVISION.service is defined and item.status == 'disabled' From 24f81ece331f5c85302e3af82a9b6990ae5f21ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulrik=20H=C3=B8yer=20Kold?= Date: Fri, 12 Feb 2016 20:59:57 +0100 Subject: [PATCH 033/120] Updated DOCKER-STARTUP.md A notice about the need for a specific git version to be able to track branches in submodules. --- documentation/DOCKER-STARTUP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/DOCKER-STARTUP.md b/documentation/DOCKER-STARTUP.md index 7a07c3e..c85581f 100644 --- a/documentation/DOCKER-STARTUP.md +++ b/documentation/DOCKER-STARTUP.md @@ -33,4 +33,4 @@ Now set your existing project repository to be a git submodule in `code/`. Every developer now needs only to clone the Docker repository with `--recursive` option to get both, the Docker configuration and the TYPO3 installation. -For better usability track a whole branch (eg. develop or master) as submodule and not just a single commit. +For better usability track a whole branch (eg. develop or master) as submodule and not just a single commit. [This requires git v1.8.2+](https://git.kernel.org/cgit/git/git.git/tree/Documentation/RelNotes/1.8.2.txt?id=v1.8.2#n186). From f358ecce6b50eaa6704472f9b9015d8e6cbf735c Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 14 Feb 2016 23:22:22 +0100 Subject: [PATCH 034/120] Fixed wrong ident --- Dockerfile.cloud | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.cloud b/Dockerfile.cloud index 4183c9f..7d934db 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -50,6 +50,6 @@ RUN /opt/docker/bin/control.sh provision.role.startup boilerplate-main \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir - RUN mkdir -p /application/code/ +RUN mkdir -p /application/code/ VOLUME /application/ WORKDIR /application/code/ From 302c5116e1ee98901c097bf620ff4cb717b57d3c Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 23 Feb 2016 23:16:58 +0100 Subject: [PATCH 035/120] Moved code/ to app/ --- CHANGELOG.md | 1 + Dockerfile.cloud | 29 ++++++++++++++++++++--------- Dockerfile.development | 26 +++++++++++++++++++------- Dockerfile.production | 26 +++++++++++++++++++------- Makefile | 8 ++++---- {code => app}/.gitkeep | 0 app/index.php | 3 +++ docker-compose.development.yml | 3 ++- docker-compose.production.yml | 2 +- documentation/DOCKER-INFO.md | 2 +- documentation/DOCKER-STARTUP.md | 4 ++-- documentation/INSTALL.md | 5 ----- documentation/PROJECT-EXISTING.md | 2 +- documentation/PROJECT-OTHER.md | 2 +- documentation/PROJECT-SYMFONY.md | 4 ++-- documentation/TROUBLESHOOTING.md | 2 +- etc/environment.yml | 4 ++-- 17 files changed, 79 insertions(+), 44 deletions(-) rename {code => app}/.gitkeep (100%) create mode 100644 app/index.php diff --git a/CHANGELOG.md b/CHANGELOG.md index aa29c66..faac797 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ PHP Docker Boilerplate Changelog - Ansible provisioning - Real production and development provisioning - Added cloud support (without host mounted volumes) +- Moved `code/` to `app/` (Moved `/application/code` to `/app` inside Docker container) 4.1.0 - canceled ------------------ diff --git a/Dockerfile.cloud b/Dockerfile.cloud index 7d934db..c65ac13 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -3,31 +3,43 @@ #++++++++++++++++++++++++++++++++++++++ # # PHP-Versions: -# ubuntu-12.04 -> PHP 5.3, LTS (precise) -# ubuntu-14.04 -> PHP 5.5, LTS (trusty) -# ubuntu-15.04 -> PHP 5.6 (vivid) -# ubuntu-15.10 -> PHP 5.6 (wily) -# centos-7 -> PHP 5.4 +# ubuntu-12.04 -> PHP 5.3 (precise) LTS +# ubuntu-14.04 -> PHP 5.5 (trusty) LTS +# ubuntu-15.04 -> PHP 5.6 (vivid) +# ubuntu-15.10 -> PHP 5.6 (wily) +# ubuntu-16.04 -> PHP 5.6 and 7.0 (xenial) LTS +# centos-7 -> PHP 5.4 +# debian-7 -> PHP 5.4 (wheezy) +# debian-8 -> PHP 5.6 and 7.x (jessie) +# debian-9 -> PHP 5.6 and 7.0 (stretch) # # Apache: # webdevops/php-apache:ubuntu-12.04 # webdevops/php-apache:ubuntu-14.04 # webdevops/php-apache:ubuntu-15.04 # webdevops/php-apache:ubuntu-15.10 +# webdevops/php-apache:ubuntu-16.04 +# webdevops/php-apache:ubuntu-16.04-php7 # webdevops/php-apache:centos-7 # webdevops/php-apache:debian-7 # webdevops/php-apache:debian-8 # webdevops/php-apache:debian-8-php7 +# webdevops/php-apache:debian-9 +# webdevops/php-apache:debian-9-php7 # # Nginx: # webdevops/php-nginx:ubuntu-12.04 # webdevops/php-nginx:ubuntu-14.04 # webdevops/php-nginx:ubuntu-15.04 # webdevops/php-nginx:ubuntu-15.10 +# webdevops/php-nginx:ubuntu-16.04 +# webdevops/php-nginx:ubuntu-16.04-php7 # webdevops/php-nginx:centos-7 # webdevops/php-nginx:debian-7 # webdevops/php-nginx:debian-8 # webdevops/php-nginx:debian-8-php7 +# webdevops/php-nginx:debian-9 +# webdevops/php-nginx:debian-9-php7 # # HHVM: # webdevops/hhvm-apache @@ -43,13 +55,12 @@ ENV PROVISION_CONTEXT "production" COPY etc/ /opt/docker/etc/ COPY provision/ /opt/docker/provision/ -COPY code/ /application/code/ +COPY app/ /app/ RUN /opt/docker/bin/control.sh provision.role.startup boilerplate-main \ && /opt/docker/bin/control.sh provision.role.startup boilerplate-deployment \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir -RUN mkdir -p /application/code/ -VOLUME /application/ -WORKDIR /application/code/ +RUN mkdir -p /app/ +WORKDIR /app/ diff --git a/Dockerfile.development b/Dockerfile.development index 0271850..3a3fd46 100644 --- a/Dockerfile.development +++ b/Dockerfile.development @@ -3,31 +3,43 @@ #++++++++++++++++++++++++++++++++++++++ # # PHP-Versions: -# ubuntu-12.04 -> PHP 5.3, LTS (precise) -# ubuntu-14.04 -> PHP 5.5, LTS (trusty) -# ubuntu-15.04 -> PHP 5.6 (vivid) -# ubuntu-15.10 -> PHP 5.6 (wily) -# centos-7 -> PHP 5.4 +# ubuntu-12.04 -> PHP 5.3 (precise) LTS +# ubuntu-14.04 -> PHP 5.5 (trusty) LTS +# ubuntu-15.04 -> PHP 5.6 (vivid) +# ubuntu-15.10 -> PHP 5.6 (wily) +# ubuntu-16.04 -> PHP 5.6 and 7.0 (xenial) LTS +# centos-7 -> PHP 5.4 +# debian-7 -> PHP 5.4 (wheezy) +# debian-8 -> PHP 5.6 and 7.x (jessie) +# debian-9 -> PHP 5.6 and 7.0 (stretch) # # Apache: # webdevops/php-apache:ubuntu-12.04 # webdevops/php-apache:ubuntu-14.04 # webdevops/php-apache:ubuntu-15.04 # webdevops/php-apache:ubuntu-15.10 +# webdevops/php-apache:ubuntu-16.04 +# webdevops/php-apache:ubuntu-16.04-php7 # webdevops/php-apache:centos-7 # webdevops/php-apache:debian-7 # webdevops/php-apache:debian-8 # webdevops/php-apache:debian-8-php7 +# webdevops/php-apache:debian-9 +# webdevops/php-apache:debian-9-php7 # # Nginx: # webdevops/php-nginx:ubuntu-12.04 # webdevops/php-nginx:ubuntu-14.04 # webdevops/php-nginx:ubuntu-15.04 # webdevops/php-nginx:ubuntu-15.10 +# webdevops/php-nginx:ubuntu-16.04 +# webdevops/php-nginx:ubuntu-16.04-php7 # webdevops/php-nginx:centos-7 # webdevops/php-nginx:debian-7 # webdevops/php-nginx:debian-8 # webdevops/php-nginx:debian-8-php7 +# webdevops/php-nginx:debian-9 +# webdevops/php-nginx:debian-9-php7 # # HHVM: # webdevops/hhvm-apache @@ -49,5 +61,5 @@ RUN /opt/docker/bin/control.sh provision.role boilerplate-main \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir -RUN mkdir -p /application/code/ -WORKDIR /application/code/ +RUN mkdir -p /app/ +WORKDIR /app/ diff --git a/Dockerfile.production b/Dockerfile.production index a706e15..0cb2593 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -3,31 +3,43 @@ #++++++++++++++++++++++++++++++++++++++ # # PHP-Versions: -# ubuntu-12.04 -> PHP 5.3, LTS (precise) -# ubuntu-14.04 -> PHP 5.5, LTS (trusty) -# ubuntu-15.04 -> PHP 5.6 (vivid) -# ubuntu-15.10 -> PHP 5.6 (wily) -# centos-7 -> PHP 5.4 +# ubuntu-12.04 -> PHP 5.3 (precise) LTS +# ubuntu-14.04 -> PHP 5.5 (trusty) LTS +# ubuntu-15.04 -> PHP 5.6 (vivid) +# ubuntu-15.10 -> PHP 5.6 (wily) +# ubuntu-16.04 -> PHP 5.6 and 7.0 (xenial) LTS +# centos-7 -> PHP 5.4 +# debian-7 -> PHP 5.4 (wheezy) +# debian-8 -> PHP 5.6 and 7.x (jessie) +# debian-9 -> PHP 5.6 and 7.0 (stretch) # # Apache: # webdevops/php-apache:ubuntu-12.04 # webdevops/php-apache:ubuntu-14.04 # webdevops/php-apache:ubuntu-15.04 # webdevops/php-apache:ubuntu-15.10 +# webdevops/php-apache:ubuntu-16.04 +# webdevops/php-apache:ubuntu-16.04-php7 # webdevops/php-apache:centos-7 # webdevops/php-apache:debian-7 # webdevops/php-apache:debian-8 # webdevops/php-apache:debian-8-php7 +# webdevops/php-apache:debian-9 +# webdevops/php-apache:debian-9-php7 # # Nginx: # webdevops/php-nginx:ubuntu-12.04 # webdevops/php-nginx:ubuntu-14.04 # webdevops/php-nginx:ubuntu-15.04 # webdevops/php-nginx:ubuntu-15.10 +# webdevops/php-nginx:ubuntu-16.04 +# webdevops/php-nginx:ubuntu-16.04-php7 # webdevops/php-nginx:centos-7 # webdevops/php-nginx:debian-7 # webdevops/php-nginx:debian-8 # webdevops/php-nginx:debian-8-php7 +# webdevops/php-nginx:debian-9 +# webdevops/php-nginx:debian-9-php7 # # HHVM: # webdevops/hhvm-apache @@ -48,5 +60,5 @@ RUN /opt/docker/bin/control.sh provision.role boilerplate-main \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir -RUN mkdir -p /application/code/ -WORKDIR /application/code/ +RUN mkdir -p /app/ +WORKDIR /app/ diff --git a/Makefile b/Makefile index d72d56e..512320c 100644 --- a/Makefile +++ b/Makefile @@ -37,10 +37,10 @@ rebuild: ############################# mysql-backup: - docker-compose run --rm --no-deps main root bash /application/bin/backup.sh mysql + docker-compose run --rm --no-deps main root bash /docker/bin/backup.sh mysql mysql-restore: - docker-compose run --rm --no-deps main root bash /application/bin/restore.sh mysql + docker-compose run --rm --no-deps main root bash /docker/bin/restore.sh mysql ############################# # Solr @@ -48,12 +48,12 @@ mysql-restore: solr-backup: docker-compose stop solr - docker-compose run --rm --no-deps main root bash /application/bin/backup.sh solr + docker-compose run --rm --no-deps main root bash /docker/bin/backup.sh solr docker-compose start solr solr-restore: docker-compose stop solr - docker-compose run --rm --no-deps main root bash /application/bin/restore.sh solr + docker-compose run --rm --no-deps main root bash /docker/bin/restore.sh solr docker-compose start solr ############################# diff --git a/code/.gitkeep b/app/.gitkeep similarity index 100% rename from code/.gitkeep rename to app/.gitkeep diff --git a/app/index.php b/app/index.php new file mode 100644 index 0000000..83f1549 --- /dev/null +++ b/app/index.php @@ -0,0 +1,3 @@ + Edit Configurations... -> Connections) and create a new configuration (PHP Web Application). diff --git a/documentation/DOCKER-STARTUP.md b/documentation/DOCKER-STARTUP.md index c85581f..b57c057 100644 --- a/documentation/DOCKER-STARTUP.md +++ b/documentation/DOCKER-STARTUP.md @@ -22,14 +22,14 @@ Now create your project inside the docker boilerplate: - [Running any other php based project](PROJECT-OTHER.md) - [Running existing project](PROJECT-EXISTING.md) -For an existing project just put your files into `code/` folder or use git to clone your project into `code/`. +For an existing project just put your files into `app/` folder or use git to clone your project into `app/`. ## Advanced usage (git) Use this boilerplate as template and customize it for each project. Put this Docker configuration for each project into separate git repositories. -Now set your existing project repository to be a git submodule in `code/`. +Now set your existing project repository to be a git submodule in `app/`. Every developer now needs only to clone the Docker repository with `--recursive` option to get both, the Docker configuration and the TYPO3 installation. diff --git a/documentation/INSTALL.md b/documentation/INSTALL.md index 4727980..bf9cdb2 100644 --- a/documentation/INSTALL.md +++ b/documentation/INSTALL.md @@ -15,11 +15,6 @@ the much faster virtualisation (networking, disk access, shared folders) compare There is also a [Vagrant VM for VirtualBox, VMware and Parallels](https://github.com/webdevops/vagrant-docker-vm) with a mailcatcher (Postfix with Dovecot, catches all outgoing mails). -_Warning:_ Boot2docker is not recommended because of slow/buggy file sharing between host and guest and there is no -convenient way to access the box with Samba or SSH. -This Docker boilerplate tries to avoid common anti-patterns like a Samba/SSH container because Boot2docker -isn't able to handle such tasks. - For more convenience use [CliTools.phar](https://github.com/webdevops/clitools) (will also run on native Linux, not only inside a Vagrant box) ## First startup diff --git a/documentation/PROJECT-EXISTING.md b/documentation/PROJECT-EXISTING.md index c94d42e..626987c 100644 --- a/documentation/PROJECT-EXISTING.md +++ b/documentation/PROJECT-EXISTING.md @@ -12,7 +12,7 @@ make create git https://github..../ or manually ```bash -git clone --recursive https://github..../ code/ +git clone --recursive https://github..../ app/ ``` Check `DOCUMENT_ROOT` and `DOCUMENT_INDEX` in `etc/environment*.yml` diff --git a/documentation/PROJECT-OTHER.md b/documentation/PROJECT-OTHER.md index 8613d58..802b85b 100644 --- a/documentation/PROJECT-OTHER.md +++ b/documentation/PROJECT-OTHER.md @@ -4,7 +4,7 @@ ## Create project -- Put your project files into `code/` +- Put your project files into `app/` - If needed modify `DOCUMENT_ROOT` and `DOCUMENT_INDEX` in `etc/environment*.yml` - You're done - really diff --git a/documentation/PROJECT-SYMFONY.md b/documentation/PROJECT-SYMFONY.md index df147b3..0611d94 100644 --- a/documentation/PROJECT-SYMFONY.md +++ b/documentation/PROJECT-SYMFONY.md @@ -10,7 +10,7 @@ make create symfony And change `DOCUMENT_ROOT` and `DOCUMENT_ROOT` in `etc/environment*.yml`: - DOCUMENT_ROOT=code/web/ + DOCUMENT_ROOT=/app/web/ DOCUMENT_INDEX=app_dev.php ## SYMFONY cli runner @@ -18,7 +18,7 @@ And change `DOCUMENT_ROOT` and `DOCUMENT_ROOT` in `etc/environment*.yml`: You can run one-shot command inside the `main` service container: ```bash -docker-compose run --rm main php code/app/console +docker-compose run --rm main php /app/console docker-compose run --rm main bash ``` diff --git a/documentation/TROUBLESHOOTING.md b/documentation/TROUBLESHOOTING.md index 50aa22f..479da5d 100644 --- a/documentation/TROUBLESHOOTING.md +++ b/documentation/TROUBLESHOOTING.md @@ -16,7 +16,7 @@ docker-compose up -d ## Complete reset -Reset all containers, delete all data (`mysql`, `solr` ..) but not your project files in `code/`! +Reset all containers, delete all data (`mysql`, `solr` ..) but not your project files in `app/`! ```bash docker-compose stop diff --git a/etc/environment.yml b/etc/environment.yml index dd31fe8..f5bc565 100644 --- a/etc/environment.yml +++ b/etc/environment.yml @@ -10,9 +10,9 @@ # Webserver # General -WEB_DOCUMENT_ROOT=/application/code/ +WEB_DOCUMENT_ROOT=/app/ WEB_DOCUMENT_INDEX=index.php -CLI_SCRIPT=php /application/code/index.php +CLI_SCRIPT=php /app/index.php ####################################### # SSH settings From 044827fb5a3b35618c0a48e7b39c457c84f1808e Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 24 Feb 2016 00:21:02 +0100 Subject: [PATCH 036/120] Fixed dockerignore --- .dockerignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dockerignore b/.dockerignore index b3720ec..afe4378 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,6 +2,6 @@ .git* backup/* bin/* -code/* +app/* docker/* documentation/* From 0dedf95e2ddf1a69a9e4d2ee8dd2c6e2a62d1797 Mon Sep 17 00:00:00 2001 From: Alexander Grein Date: Wed, 24 Feb 2016 16:04:04 +0100 Subject: [PATCH 037/120] Update .gitignore Change code to app --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8dcdd08..d6c105e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,6 @@ .idea nbproject /backup/* -/code/* +/app/* /docker/sourcecode/code/* /docker-compose.yml From 31ec1f1b4e40fff0d4db925a4b5c4b8ed2f65a06 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 28 Feb 2016 19:11:47 +0100 Subject: [PATCH 038/120] Fixed refactored app paths --- .gitignore | 1 - bin/.config.sh | 2 +- docker-compose.cloud.yml | 15 +-------------- etc/environment.yml | 2 +- 4 files changed, 3 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index d6c105e..e0e264c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,4 @@ nbproject /backup/* /app/* -/docker/sourcecode/code/* /docker-compose.yml diff --git a/bin/.config.sh b/bin/.config.sh index da55fc0..4b4cbcf 100755 --- a/bin/.config.sh +++ b/bin/.config.sh @@ -25,7 +25,7 @@ fi SCRIPT_DIR=$(dirname "$($READLINK -f "$0")") ROOT_DIR=$($READLINK -f "$SCRIPT_DIR/../") -CODE_DIR=$($READLINK -f "$ROOT_DIR/code") +CODE_DIR=$($READLINK -f "$ROOT_DIR/app") BACKUP_DIR=$($READLINK -f "$ROOT_DIR/backup") BACKUP_SOLR_FILE='solr.cores.tbz2' diff --git a/docker-compose.cloud.yml b/docker-compose.cloud.yml index 61c7424..e182a17 100644 --- a/docker-compose.cloud.yml +++ b/docker-compose.cloud.yml @@ -6,7 +6,7 @@ # # etc/* # provision/* -# code/* +# app/* # ####################################### main: @@ -26,7 +26,6 @@ main: - "8443:443" - "10022:22" volumes_from: - - sourcecode - storage env_file: - etc/environment.yml @@ -128,18 +127,6 @@ mysql: # - etc/environment.yml # - etc/environment.production.yml -####################################### -# sourcecode -####################################### -sourcecode: - build: . - dockerfile: Dockerfile-Source - volumes: - - /docker/code/ - env_file: - - etc/environment.yml - - etc/environment.production.yml - ####################################### # Storage ####################################### diff --git a/etc/environment.yml b/etc/environment.yml index f5bc565..818aa92 100644 --- a/etc/environment.yml +++ b/etc/environment.yml @@ -45,4 +45,4 @@ POSTGRES_PASSWORD=dev FTP_USER=dev FTP_PASSWORD=dev FTP_PATH=/storage/ftp/ -#FTP_PATH=/docker/code/ +#FTP_PATH=/app/ From d2446c9d623c39861b1cc6476582d9087141a60e Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 3 Mar 2016 21:14:45 +0100 Subject: [PATCH 039/120] Renamed main to app container --- CHANGELOG.md | 1 + Dockerfile.cloud | 2 +- Dockerfile.development | 2 +- Dockerfile.production | 2 +- Makefile | 15 ++++++++------- docker-compose.cloud.yml | 4 ++-- docker-compose.development.yml | 4 ++-- docker-compose.production.yml | 4 ++-- documentation/CUSTOMIZE.md | 9 ++++----- documentation/DOCKER-INFO.md | 10 ++++------ documentation/DOCKER-QUICKSTART.md | 10 +++++----- documentation/PROJECT-EXISTING.md | 6 +++--- documentation/PROJECT-OTHER.md | 6 +++--- documentation/PROJECT-SYMFONY.md | 4 ++-- documentation/SERVICES.md | 4 ++-- documentation/TROUBLESHOOTING.md | 6 +++--- documentation/UPDATE.md | 14 ++++++++++++-- .../boilerplate-main/tasks/bootstrap/services.yml | 8 ++++---- 18 files changed, 60 insertions(+), 51 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index faac797..9db2bd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ PHP Docker Boilerplate Changelog - Real production and development provisioning - Added cloud support (without host mounted volumes) - Moved `code/` to `app/` (Moved `/application/code` to `/app` inside Docker container) +- Renamed `main` to `app` container 4.1.0 - canceled ------------------ diff --git a/Dockerfile.cloud b/Dockerfile.cloud index c65ac13..6e4733b 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -1,5 +1,5 @@ #++++++++++++++++++++++++++++++++++++++ -# Application Docker container +# PHP application Docker container #++++++++++++++++++++++++++++++++++++++ # # PHP-Versions: diff --git a/Dockerfile.development b/Dockerfile.development index 3a3fd46..380caea 100644 --- a/Dockerfile.development +++ b/Dockerfile.development @@ -1,5 +1,5 @@ #++++++++++++++++++++++++++++++++++++++ -# Application Docker container +# PHP application Docker container #++++++++++++++++++++++++++++++++++++++ # # PHP-Versions: diff --git a/Dockerfile.production b/Dockerfile.production index 0cb2593..9af6fb3 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -1,5 +1,5 @@ #++++++++++++++++++++++++++++++++++++++ -# Application Docker container +# PHP application Docker container #++++++++++++++++++++++++++++++++++++++ # # PHP-Versions: diff --git a/Makefile b/Makefile index 512320c..1847647 100644 --- a/Makefile +++ b/Makefile @@ -29,18 +29,19 @@ state: rebuild: docker-compose stop - docker-compose rm --force main web + docker-compose rm --force app docker-compose build --no-cache + docker-compose up -d ############################# # MySQL ############################# mysql-backup: - docker-compose run --rm --no-deps main root bash /docker/bin/backup.sh mysql + docker-compose run --rm --no-deps app root bash /docker/bin/backup.sh mysql mysql-restore: - docker-compose run --rm --no-deps main root bash /docker/bin/restore.sh mysql + docker-compose run --rm --no-deps app root bash /docker/bin/restore.sh mysql ############################# # Solr @@ -48,12 +49,12 @@ mysql-restore: solr-backup: docker-compose stop solr - docker-compose run --rm --no-deps main root bash /docker/bin/backup.sh solr + docker-compose run --rm --no-deps app root bash /docker/bin/backup.sh solr docker-compose start solr solr-restore: docker-compose stop solr - docker-compose run --rm --no-deps main root bash /docker/bin/restore.sh solr + docker-compose run --rm --no-deps app root bash /docker/bin/restore.sh solr docker-compose start solr ############################# @@ -67,10 +68,10 @@ build: bash bin/build.sh bash: - docker-compose run --rm main bash + docker-compose run --rm app bash root: - docker-compose run --rm main root + docker-compose run --rm app root ############################# # Argument fix workaround diff --git a/docker-compose.cloud.yml b/docker-compose.cloud.yml index e182a17..dd05fb1 100644 --- a/docker-compose.cloud.yml +++ b/docker-compose.cloud.yml @@ -1,5 +1,5 @@ ####################################### -# Main php container +# PHP application Docker container # # for this container you have to remove # following entries from .dockerignore: @@ -9,7 +9,7 @@ # app/* # ####################################### -main: +app: build: . dockerfile: Dockerfile.cloud links: diff --git a/docker-compose.development.yml b/docker-compose.development.yml index c6cf140..8fc0258 100644 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -1,7 +1,7 @@ ####################################### -# Main php container +# PHP application Docker container ####################################### -main: +app: build: . dockerfile: Dockerfile.development links: diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 713b845..abd229f 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -1,7 +1,7 @@ ####################################### -# Main php container +# PHP application Docker container ####################################### -main: +app: build: . dockerfile: Dockerfile.production links: diff --git a/documentation/CUSTOMIZE.md b/documentation/CUSTOMIZE.md index 264b8ed..ff15984 100644 --- a/documentation/CUSTOMIZE.md +++ b/documentation/CUSTOMIZE.md @@ -2,20 +2,19 @@ # Customizing -## Custom packages (`main` controller) - -You can add custom shell commands in `docker/main/{DISTRIBUTION}/bin/customization.sh` +## Custom packages (`app` controller) +You can add custom commands in `Dockerfile.*` ## Custom php.ini directives Modify the `etc/php/development.ini` or `etc/php/production.ini`, it will be added on top of the default php.ini so you can overwrite any directives. -After modification rebuild your `main` container: +After modification rebuild your `app` container: ```bash docker-compose stop -docker-compose build main +docker-compose build app docker-compose up -d ``` diff --git a/documentation/DOCKER-INFO.md b/documentation/DOCKER-INFO.md index 36c84ab..794679b 100644 --- a/documentation/DOCKER-INFO.md +++ b/documentation/DOCKER-INFO.md @@ -6,7 +6,7 @@ Container | Description ------------------------- | ------------------------------- -main | Main container with nginx/apache and PHP-FPM and tools (your entrypoint for bash, php and other stuff) +app | PHP application container with nginx/apache and PHP-FPM and tools (your entrypoint for bash, php and other stuff) storage | Storage container, eg. for Solr data mysql | MySQL database postgres (optional) | PostgreSQL database @@ -17,15 +17,13 @@ redis (optional) | Redis server ftps (optional) | FTP server (vsftpd) mailcatcher (optional) | Mailserver with easy web and REST interface for mailing -This directory will be mounted under `/docker` in `main` and `web` container. +The `app/` directory will be mounted under `/app` inside `app` container. ## Docker images Container | Source ------------------------- | ------------------------------- -main/ubuntu | [Ubuntu](https://registry.hub.docker.com/_/ubuntu/) *official* (prebuilt available from https://hub.docker.com/r/webdevops/php-boilerplate/) -main/centos | [CentOS](https://registry.hub.docker.com/_/centos/) *official* (prebuilt available from https://hub.docker.com/r/webdevops/php-boilerplate/) +app | [WebDevOps Images](https://registry.hub.docker.com/u/webdevops/) storage | [Ubuntu](https://registry.hub.docker.com/_/ubuntu/) *official* -web | [Apache](https://registry.hub.docker.com/_/httpd/) *official* or [Nginx](https://registry.hub.docker.com/_/nginx/) *official* mysql | [MySQL](https://registry.hub.docker.com/_/mysql/) *official* postgres | [PostgreSQL](https://registry.hub.docker.com/_/postgres/) *official* solr (optional) | [Solr](https://registry.hub.docker.com/u/guywithnose/solr/) from _guywithnose_ @@ -41,7 +39,7 @@ Customize the [Makefile](Makefile) for your needs. Command | Description ------------------------- | ------------------------------- -make bash | Enter main container with bash (user www-data) +make bash | Enter main container with bash (user application) make root | Enter main container with bash (user root)
| make backup | General backup (run all backup tasks) diff --git a/documentation/DOCKER-QUICKSTART.md b/documentation/DOCKER-QUICKSTART.md index 9c0f1ef..78a7336 100644 --- a/documentation/DOCKER-QUICKSTART.md +++ b/documentation/DOCKER-QUICKSTART.md @@ -51,15 +51,15 @@ Logs (eg. for debugging) # show all logs docker-compose logs -# ... or only php -docker-compose logs main +# ... or only php and webserver +docker-compose logs app -# ... or only main and mysql -docker-compose logs main mysql +# ... or only app and mysql +docker-compose logs app mysql ``` CLI script (defined in etc/environment*.yml) ```bash -docker-compose run --rm main cli help +docker-compose run --rm app cli help ``` diff --git a/documentation/PROJECT-EXISTING.md b/documentation/PROJECT-EXISTING.md index 626987c..fbb4a61 100644 --- a/documentation/PROJECT-EXISTING.md +++ b/documentation/PROJECT-EXISTING.md @@ -19,11 +19,11 @@ Check `DOCUMENT_ROOT` and `DOCUMENT_INDEX` in `etc/environment*.yml` ## Cli runner -You can run one-shot command inside the `main` service container: +You can run one-shot command inside the `app` service container: ```bash -docker-compose run --rm main any-php-file.php argument1 argument2 -docker-compose run --rm main bash +docker-compose run --rm app any-php-file.php argument1 argument2 +docker-compose run --rm app bash ``` Webserver is available at Port 8000 diff --git a/documentation/PROJECT-OTHER.md b/documentation/PROJECT-OTHER.md index 802b85b..93bb229 100644 --- a/documentation/PROJECT-OTHER.md +++ b/documentation/PROJECT-OTHER.md @@ -10,11 +10,11 @@ ## Cli runner -You can run one-shot command inside the `main` service container: +You can run one-shot command inside the `app` service container: ```bash -docker-compose run --rm main any-php-file.php argument1 argument2 -docker-compose run --rm main bash +docker-compose run --rm app any-php-file.php argument1 argument2 +docker-compose run --rm app bash ``` Webserver is available at Port 8000 diff --git a/documentation/PROJECT-SYMFONY.md b/documentation/PROJECT-SYMFONY.md index 0611d94..d88f043 100644 --- a/documentation/PROJECT-SYMFONY.md +++ b/documentation/PROJECT-SYMFONY.md @@ -18,8 +18,8 @@ And change `DOCUMENT_ROOT` and `DOCUMENT_ROOT` in `etc/environment*.yml`: You can run one-shot command inside the `main` service container: ```bash -docker-compose run --rm main php /app/console -docker-compose run --rm main bash +docker-compose run --rm app php /app/console +docker-compose run --rm app bash ``` Webserver is available at Port 8000 diff --git a/documentation/SERVICES.md b/documentation/SERVICES.md index 8623949..6dbc64f 100644 --- a/documentation/SERVICES.md +++ b/documentation/SERVICES.md @@ -2,11 +2,11 @@ # Services -### Main (Nginx or Apache HTTPd) +### App (PHP with Nginx or Apache HTTPd) Setting | Value ------------- | ------------- -Host | web:80 and web:443 (ssl) +Host | app:80 and app:443 (ssl) External Port | 8000 and 8443 (ssl) ### MySQL diff --git a/documentation/TROUBLESHOOTING.md b/documentation/TROUBLESHOOTING.md index 479da5d..6309d32 100644 --- a/documentation/TROUBLESHOOTING.md +++ b/documentation/TROUBLESHOOTING.md @@ -4,13 +4,13 @@ ## Startup or (docker) linking errors (safe reset) -If you got any startup issues you can try to rebuild `main` containers. +If you got any startup issues you can try to rebuild `app` containers. You won't lose any data with this way - it's a safe reset. ```bash docker-compose stop -docker-compose rm --force main -docker-compose build --no-cache main +docker-compose rm --force app +docker-compose build --no-cache app docker-compose up -d ``` diff --git a/documentation/UPDATE.md b/documentation/UPDATE.md index 7a4c12a..5880b8d 100644 --- a/documentation/UPDATE.md +++ b/documentation/UPDATE.md @@ -11,13 +11,23 @@ update `docker-compose.yml` and `docker-environment.yml`. For [changes see CHANGELOG.md](/CHANGELOG.md) +## Upgrade to 5.0.x +Because of a huge refactoring you need to rebuild the `app` container. The `web` container isn't used anymore. + +```bash +docker-compose stop +docker-compose rm --force app +docker-compose build --no-cache web +docker-compose up +``` + ## Update to 3.4.x As `PHP_UID` was replaced with `EFFECTIVE_UID` and `PHP_GID` was replaced with `EFFECTIVE_GID` you have to rebuild all containers with this variables: `main` and `web` ```bash docker-compose stop -docker-compose rm --force main web -docker-compose build --no-cache main web +docker-compose rm --force app +docker-compose build --no-cache web docker-compose up ``` diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/services.yml b/provision/roles/boilerplate-main/tasks/bootstrap/services.yml index 2f3388d..7d9d7df 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/services.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/services.yml @@ -1,11 +1,11 @@ --- - name: Enable services - command: /opt/docker/bin/control.sh service.enable {{ item.service }} - with_items: PROVISION.service + command: "/opt/docker/bin/control.sh service.enable {{ item.service }}" + with_items: "{{ PROVISION.service }}" when: PROVISION.service is defined and item.status == 'enabled' - name: Disable services - command: /opt/docker/bin/control.sh service.disable {{ item.service }} - with_items: PROVISION.service + command: "/opt/docker/bin/control.sh service.disable {{ item.service }}" + with_items: "{{ PROVISION.service }}" when: PROVISION.service is defined and item.status == 'disabled' From d9b8ece505bd8e373ca3026ff1585f731234b2a8 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Mon, 7 Mar 2016 23:23:02 +0100 Subject: [PATCH 040/120] Version bump --- CHANGELOG.md | 5 ++++- README.md | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9db2bd1..6204bc1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,11 @@ PHP Docker Boilerplate Changelog ================================== -5.0.0 - UPCOMING +5.1.0 - UPCOMING ---------------- + +5.0.0 - 2016-03-07 +------------------ - Refactored with new `webdevops/base` images - Faster creation/startup times - Ansible provisioning diff --git a/README.md b/README.md index 73bed7a..b8a54d4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Dockerized PHP web project boilerplate -[![latest v4.0.0](https://img.shields.io/badge/latest-v4.0.0-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/4.0.0) +[![latest v5.0.0](https://img.shields.io/badge/latest-v5.0.0-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.0.0) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat) [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Average time to resolve an issue") [![Percentage of issues still open](http://isitmaintained.com/badge/open/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Percentage of issues still open") From 52635d6e1dcda70be5d794a37e95255c9866801c Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Fri, 18 Mar 2016 18:37:00 +0100 Subject: [PATCH 041/120] Fix solr/storage support --- docker-compose.cloud.yml | 2 +- docker-compose.development.yml | 2 +- docker-compose.production.yml | 2 +- docker/solr/Dockerfile | 10 +++++----- docker/storage/Dockerfile | 7 ++++++- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/docker-compose.cloud.yml b/docker-compose.cloud.yml index dd05fb1..ea71f45 100644 --- a/docker-compose.cloud.yml +++ b/docker-compose.cloud.yml @@ -133,4 +133,4 @@ mysql: storage: build: docker/storage/ volumes: - - /data + - /storage diff --git a/docker-compose.development.yml b/docker-compose.development.yml index 8fc0258..6c01368 100644 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -147,4 +147,4 @@ mysql: storage: build: docker/storage/ volumes: - - /data + - /storage diff --git a/docker-compose.production.yml b/docker-compose.production.yml index abd229f..89398a7 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -139,4 +139,4 @@ mysql: storage: build: docker/storage/ volumes: - - /data + - /storage diff --git a/docker/solr/Dockerfile b/docker/solr/Dockerfile index 516dd5c..5c399e3 100644 --- a/docker/solr/Dockerfile +++ b/docker/solr/Dockerfile @@ -20,13 +20,13 @@ COPY ./conf/ /opt/solr-conf/ RUN curl -sf -o /tmp/solr-typo3-plugin.jar -L http://www.typo3-solr.com/fileadmin/files/solr/solr-typo3-plugin-1.3.0.jar # Init directories -RUN cp -a /opt/solr-conf/* /opt/solr/example/solr/ -RUN mkdir -p /opt/solr/example/solr/typo3cores/data -RUN mkdir -p /opt/solr/example/solr/typo3lib +RUN cp -a /opt/solr-conf/* /opt/solr/example/solr/ \ + && mkdir -p /opt/solr/example/solr/typo3cores/data \ + && mkdir -p /opt/solr/example/solr/typo3lib # Add plugins -RUN mv /tmp/solr-typo3-plugin.jar /opt/solr/example/solr/typo3lib/ -RUN ln -s /opt/solr/contrib /opt/solr/example/solr/contrib +RUN mv /tmp/solr-typo3-plugin.jar /opt/solr/example/solr/typo3lib/ \ + && ln -s /opt/solr/contrib /opt/solr/example/solr/contrib # Fix rights RUN chown solr:solr -R /opt/solr/example/solr/ diff --git a/docker/storage/Dockerfile b/docker/storage/Dockerfile index fafb2b2..b8ef05a 100644 --- a/docker/storage/Dockerfile +++ b/docker/storage/Dockerfile @@ -2,4 +2,9 @@ # Storage Docker container #++++++++++++++++++++++++++++++++++++++ -FROM webdevops/storage +FROM busybox + +RUN mkdir /storage \ + && chmod 1777 /storage + +VOLUME "/storage" From d40742a8fbd499538794f316bfc95e2f532b9025 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Fri, 18 Mar 2016 18:46:09 +0100 Subject: [PATCH 042/120] Refactoring backup/restore and Makefile --- Makefile | 16 ++++++---------- bin/.config.sh | 19 +++++++++++++++++++ bin/backup.sh | 23 +++++++++++++++-------- bin/restore.sh | 28 +++++++++++++++++++--------- 4 files changed, 59 insertions(+), 27 deletions(-) diff --git a/Makefile b/Makefile index 1847647..738bf40 100644 --- a/Makefile +++ b/Makefile @@ -38,24 +38,20 @@ rebuild: ############################# mysql-backup: - docker-compose run --rm --no-deps app root bash /docker/bin/backup.sh mysql + bash ./bin/backup.sh mysql mysql-restore: - docker-compose run --rm --no-deps app root bash /docker/bin/restore.sh mysql + bash ./bin/restore.sh mysql ############################# # Solr ############################# solr-backup: - docker-compose stop solr - docker-compose run --rm --no-deps app root bash /docker/bin/backup.sh solr - docker-compose start solr + bash ./bin/backup.sh solr solr-restore: - docker-compose stop solr - docker-compose run --rm --no-deps app root bash /docker/bin/restore.sh solr - docker-compose start solr + bash ./bin/restore.sh solr ############################# # General @@ -68,10 +64,10 @@ build: bash bin/build.sh bash: - docker-compose run --rm app bash + docker exec -ti "`docker-compose ps -q app`" 'bash' root: - docker-compose run --rm app root + docker exec -ti "`docker-compose ps -q app`" 'root' ############################# # Argument fix workaround diff --git a/bin/.config.sh b/bin/.config.sh index 4b4cbcf..778961d 100755 --- a/bin/.config.sh +++ b/bin/.config.sh @@ -52,3 +52,22 @@ execInDir() { sh -c "cd \"$1\" && $2" } + +dockerContainerId() { + echo "$(docker-compose ps -q "$1" 2> /dev/null || echo "")" +} + +dockerExec() { + docker exec -i "$(docker-compose ps -q app)" $@ +} + +dockerCopyFrom() { + PATH_DOCKER="$1" + PATH_HOST="$2" + docker cp "$(docker-compose ps -q app):${PATH_DOCKER}" "${PATH_HOST}" +} +dockerCopyTo() { + PATH_HOST="$1" + PATH_DOCKER="$2" + docker cp "${PATH_HOST}" "$(docker-compose ps -q app):${PATH_DOCKER}" +} diff --git a/bin/backup.sh b/bin/backup.sh index 9d5c3c0..3afb2b8 100755 --- a/bin/backup.sh +++ b/bin/backup.sh @@ -25,7 +25,7 @@ case "$1" in fi logMsg "Starting MySQL backup..." - mysqldump --opt --single-transaction --events --all-databases --routines --comments | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" + dockerExec mysqldump --opt --single-transaction --events --all-databases --routines --comments | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" logMsg "Finished" ;; @@ -33,13 +33,20 @@ case "$1" in ## Solr ################################### "solr") - if [ -f "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" ]; then - logMsg "Removing old backup file..." - rm -f -- "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" + if [[ -n "$(dockerContainerId solr)" ]]; then + logMsg "Starting Solr backup..." + docker-compose stop solr + + if [ -f "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" ]; then + logMsg "Removing old backup file..." + rm -f -- "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" + fi + dockerExec tar -cP --to-stdout /storage/solr/ | bzip2 > "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" + + docker-compose start solr + logMsg "Finished" + else + echo "[WARNING] Skipping solr backup, no such container" fi - - logMsg "Starting Solr backup..." - tar jcPf "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" /storage/solr/ - logMsg "Finished" ;; esac diff --git a/bin/restore.sh b/bin/restore.sh index 71de559..f9a9764 100755 --- a/bin/restore.sh +++ b/bin/restore.sh @@ -21,7 +21,7 @@ case "$1" in "mysql") if [ -f "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" ]; then logMsg "Starting MySQL restore..." - bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | mysql + bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExec mysql logMsg "Finished" else errorMsg "MySQL backup file not found" @@ -33,15 +33,25 @@ case "$1" in ## Solr ################################### "solr") - if [ -f "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" ]; then - logMsg "Starting Solr restore..." - rm -rf /storage/solr/* && mkdir -p /storage/solr/ - chmod 777 /storage/solr/ - tar jxPf "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" -C / - logMsg "Finished" + if [[ -n "$(dockerContainerId solr)" ]]; then + if [ -f "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" ]; then + logMsg "Starting Solr restore..." + docker-compose stop solr + + dockerExec rm -rf /storage/solr/ + dockerExec mkdir -p /storage/solr/ + dockerExec chmod 777 /storage/solr/ + dockerCopyTo "${BACKUP_DIR}/${BACKUP_SOLR_FILE}" "/tmp/solr-restore.tbz2" + dockerExec tar -jxPf "/tmp/solr-restore.tbz2" -C / + + docker-compose start solr + logMsg "Finished" + else + errorMsg "Solr backup file not found" + exit 1 + fi else - errorMsg "Solr backup file not found" - exit 1 + echo "[WARNING] Skipping solr restore, no such container" fi ;; esac From 80c4f57041db9d39ba96efbf2e185b8517111e45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hans=20Ho=CC=88chtl?= Date: Fri, 11 Mar 2016 22:45:09 +0100 Subject: [PATCH 043/120] Switch to docker exec in Makefile # Conflicts: # Makefile # Conflicts: # Makefile --- Makefile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 738bf40..c52d118 100644 --- a/Makefile +++ b/Makefile @@ -63,11 +63,13 @@ restore: mysql-restore solr-restore build: bash bin/build.sh -bash: - docker exec -ti "`docker-compose ps -q app`" 'bash' +bash: shell + +shell: + docker exec -it -u application $$(docker-compose ps -q app) /bin/bash root: - docker exec -ti "`docker-compose ps -q app`" 'root' + docker exec -it -u root $$(docker-compose ps -q app) /bin/bash ############################# # Argument fix workaround From 4132c8033eaaace3eedd14a49e6ec0cfbcb0bb3f Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Mon, 21 Mar 2016 23:30:17 +0100 Subject: [PATCH 044/120] Add mysql backup only if mysql is available --- bin/backup.sh | 20 ++++++++++++-------- bin/restore.sh | 18 +++++++++++------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/bin/backup.sh b/bin/backup.sh index 3afb2b8..30fc9f6 100755 --- a/bin/backup.sh +++ b/bin/backup.sh @@ -19,14 +19,18 @@ case "$1" in ## MySQL ################################### "mysql") - if [ -f "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" ]; then - logMsg "Removing old backup file..." - rm -f -- "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" - fi + if [[ -n "$(dockerContainerId mysql)" ]]; then + if [ -f "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" ]; then + logMsg "Removing old backup file..." + rm -f -- "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" + fi - logMsg "Starting MySQL backup..." - dockerExec mysqldump --opt --single-transaction --events --all-databases --routines --comments | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" - logMsg "Finished" + logMsg "Starting MySQL backup..." + dockerExec mysqldump --opt --single-transaction --events --all-databases --routines --comments | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" + logMsg "Finished" + else + echo " * Skipping mysql backup, no such container" + fi ;; ################################### @@ -46,7 +50,7 @@ case "$1" in docker-compose start solr logMsg "Finished" else - echo "[WARNING] Skipping solr backup, no such container" + echo " * Skipping solr backup, no such container" fi ;; esac diff --git a/bin/restore.sh b/bin/restore.sh index f9a9764..de0bc6b 100755 --- a/bin/restore.sh +++ b/bin/restore.sh @@ -19,13 +19,17 @@ case "$1" in ## MySQL ################################### "mysql") - if [ -f "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" ]; then - logMsg "Starting MySQL restore..." - bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExec mysql - logMsg "Finished" + if [[ -n "$(dockerContainerId mysql)" ]]; then + if [ -f "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" ]; then + logMsg "Starting MySQL restore..." + bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExec mysql + logMsg "Finished" + else + errorMsg "MySQL backup file not found" + exit 1 + fi else - errorMsg "MySQL backup file not found" - exit 1 + echo " * Skipping mysql restore, no such container" fi ;; @@ -51,7 +55,7 @@ case "$1" in exit 1 fi else - echo "[WARNING] Skipping solr restore, no such container" + echo " * Skipping solr restore, no such container" fi ;; esac From 28cd9e23ba57c919dde58c551616df0bc6d3c73c Mon Sep 17 00:00:00 2001 From: Florian Tatzel Date: Mon, 28 Mar 2016 09:49:43 -0700 Subject: [PATCH 045/120] Adds Read the Docs Documentation files and adds rst config to editorconfig. --- .editorconfig | 4 + documentation/docs/Makefile | 216 +++++++++++++ documentation/docs/conf.py | 300 ++++++++++++++++++ .../content/components/ansibleRoles/roles.rst | 5 + .../docs/content/components/dockerCompose.rst | 5 + .../docs/content/components/dockerfiles.rst | 5 + .../docs/content/components/index.rst | 14 + .../docs/content/components/scripts.rst | 12 + .../docs/content/contribute/code.rst | 5 + .../docs/content/contribute/documentation.rst | 5 + .../docs/content/contribute/index.rst | 12 + .../docs/content/gettingStarted/index.rst | 21 ++ documentation/docs/content/introduction.rst | 11 + .../docs/content/usage/dockerCompose.rst | 5 + .../docs/content/usage/dockerImages.rst | 5 + documentation/docs/content/usage/index.rst | 12 + .../docs/content/usage/vagrantDockerVM.rst | 5 + documentation/docs/index.rst | 30 ++ documentation/docs/make.bat | 263 +++++++++++++++ 19 files changed, 935 insertions(+) create mode 100644 documentation/docs/Makefile create mode 100644 documentation/docs/conf.py create mode 100644 documentation/docs/content/components/ansibleRoles/roles.rst create mode 100644 documentation/docs/content/components/dockerCompose.rst create mode 100644 documentation/docs/content/components/dockerfiles.rst create mode 100644 documentation/docs/content/components/index.rst create mode 100644 documentation/docs/content/components/scripts.rst create mode 100644 documentation/docs/content/contribute/code.rst create mode 100644 documentation/docs/content/contribute/documentation.rst create mode 100644 documentation/docs/content/contribute/index.rst create mode 100644 documentation/docs/content/gettingStarted/index.rst create mode 100644 documentation/docs/content/introduction.rst create mode 100644 documentation/docs/content/usage/dockerCompose.rst create mode 100644 documentation/docs/content/usage/dockerImages.rst create mode 100644 documentation/docs/content/usage/index.rst create mode 100644 documentation/docs/content/usage/vagrantDockerVM.rst create mode 100644 documentation/docs/index.rst create mode 100644 documentation/docs/make.bat diff --git a/.editorconfig b/.editorconfig index ff6fa56..4a62c51 100644 --- a/.editorconfig +++ b/.editorconfig @@ -19,3 +19,7 @@ indent_size = 2 [*.conf] indent_size = 2 + +[*.rst] +indent_style = space +indent_size = 3 diff --git a/documentation/docs/Makefile b/documentation/docs/Makefile new file mode 100644 index 0000000..dcf3199 --- /dev/null +++ b/documentation/docs/Makefile @@ -0,0 +1,216 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# User-friendly check for sphinx-build +ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) +$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) +endif + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " applehelp to make an Apple Help Book" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " xml to make Docutils-native XML files" + @echo " pseudoxml to make pseudoxml-XML files for display purposes" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + @echo " coverage to run coverage check of the documentation (if enabled)" + +.PHONY: clean +clean: + rm -rf $(BUILDDIR)/* + +.PHONY: html +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +.PHONY: dirhtml +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +.PHONY: singlehtml +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +.PHONY: pickle +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +.PHONY: json +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +.PHONY: htmlhelp +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +.PHONY: qthelp +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/WebDevOpsDocumentation.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/WebDevOpsDocumentation.qhc" + +.PHONY: applehelp +applehelp: + $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp + @echo + @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." + @echo "N.B. You won't be able to view it unless you put it in" \ + "~/Library/Documentation/Help or install it in your application" \ + "bundle." + +.PHONY: devhelp +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/WebDevOpsDocumentation" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/WebDevOpsDocumentation" + @echo "# devhelp" + +.PHONY: epub +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +.PHONY: latex +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +.PHONY: latexpdf +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +.PHONY: latexpdfja +latexpdfja: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through platex and dvipdfmx..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +.PHONY: text +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +.PHONY: man +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +.PHONY: texinfo +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +.PHONY: info +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +.PHONY: gettext +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +.PHONY: changes +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +.PHONY: linkcheck +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +.PHONY: doctest +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +.PHONY: coverage +coverage: + $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage + @echo "Testing of coverage in the sources finished, look at the " \ + "results in $(BUILDDIR)/coverage/python.txt." + +.PHONY: xml +xml: + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml + @echo + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." + +.PHONY: pseudoxml +pseudoxml: + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml + @echo + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/documentation/docs/conf.py b/documentation/docs/conf.py new file mode 100644 index 0000000..dacc2c4 --- /dev/null +++ b/documentation/docs/conf.py @@ -0,0 +1,300 @@ +# -*- coding: utf-8 -*- +# +# PHP Docker Boilerplate Documentation build configuration file, created by +# sphinx-quickstart on Sat Mar 19 12:21:05 2016. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys +import os +from recommonmark.parser import CommonMarkParser + +on_rtd = os.environ.get('READTHEDOCS', None) == 'True' + +if not on_rtd: # only import and set the theme if we're building docs locally + import sphinx_rtd_theme + html_theme = 'sphinx_rtd_theme' + html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] + +html_sidebars = { + '**': ['globaltoc.html'], +} +# otherwise, readthedocs.org uses their theme by default, so no need to specify it + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +source_suffix = ['.rst', '.md'] +# source_suffix = '.rst' + +source_parsers = { + '.md': CommonMarkParser, +} + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'PHP Docker Boilerplate Documentation' +copyright = u'2016, Team WebDevOps' +author = u'Team WebDevOps' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +#version = u'0.0.2' +# The full version, including alpha/beta/rc tags. +#release = u'0.0.2' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ['_build'] + +# The reST default role (used for this markup: `text`) to use for all +# documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + +# If true, keep warnings as "system message" paragraphs in the built documents. +#keep_warnings = False + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = False + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +#html_theme = 'alabaster' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (relative to this directory) to use as a favicon of +# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +#html_extra_path = [] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Language to be used for generating the HTML full-text search index. +# Sphinx supports the following languages: +# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' +# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' +#html_search_language = 'en' + +# A dictionary with options for the search language support, empty by default. +# Now only 'ja' uses this config value +#html_search_options = {'type': 'default'} + +# The name of a javascript file (relative to the configuration directory) that +# implements a search results scorer. If empty, the default will be used. +#html_search_scorer = 'scorer.js' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'PhpDockerBoilerplateDocumentationdoc' + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { +# The paper size ('letterpaper' or 'a4paper'). +#'papersize': 'letterpaper', + +# The font size ('10pt', '11pt' or '12pt'). +#'pointsize': '10pt', + +# Additional stuff for the LaTeX preamble. +#'preamble': '', + +# Latex figure (float) alignment +#'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'PhpDockerBoilerplateDocumentation.tex', u'PHP Docker Boilerplate Documentation', + u'Florian Tatzel', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'phpdockerboilerplatedocumentation', u'PHP Docker Boilerplate Documentation', + [author], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'PhpDockerBoilerplateDocumentation', u'PHP Docker Boilerplate Documentation', + author, 'PhpDockerBoilerplateDocumentation', 'One line description of project.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +#texinfo_no_detailmenu = False diff --git a/documentation/docs/content/components/ansibleRoles/roles.rst b/documentation/docs/content/components/ansibleRoles/roles.rst new file mode 100644 index 0000000..658853b --- /dev/null +++ b/documentation/docs/content/components/ansibleRoles/roles.rst @@ -0,0 +1,5 @@ +=========================== +Ansible Roles Configuration +=========================== + +This section is not done yet! diff --git a/documentation/docs/content/components/dockerCompose.rst b/documentation/docs/content/components/dockerCompose.rst new file mode 100644 index 0000000..f5ee7a8 --- /dev/null +++ b/documentation/docs/content/components/dockerCompose.rst @@ -0,0 +1,5 @@ +==================== +Docker Compose Setup +==================== + +This section is not done yet! diff --git a/documentation/docs/content/components/dockerfiles.rst b/documentation/docs/content/components/dockerfiles.rst new file mode 100644 index 0000000..f6da05b --- /dev/null +++ b/documentation/docs/content/components/dockerfiles.rst @@ -0,0 +1,5 @@ +=========== +Dockerfiles +=========== + +This section is not done yet! diff --git a/documentation/docs/content/components/index.rst b/documentation/docs/content/components/index.rst new file mode 100644 index 0000000..b18d888 --- /dev/null +++ b/documentation/docs/content/components/index.rst @@ -0,0 +1,14 @@ +================= +Project Structure +================= + +This section is not done yet! + + +.. toctree:: + :maxdepth: 1 + + dockerfiles + dockerCompose + scripts + ansibleRoles/roles diff --git a/documentation/docs/content/components/scripts.rst b/documentation/docs/content/components/scripts.rst new file mode 100644 index 0000000..ba856ae --- /dev/null +++ b/documentation/docs/content/components/scripts.rst @@ -0,0 +1,12 @@ +======================== +Scripts and Provisioning +======================== + +This section is not done yet! + +------------- +Ansible Roles +------------- + +This section is not done yet! + diff --git a/documentation/docs/content/contribute/code.rst b/documentation/docs/content/contribute/code.rst new file mode 100644 index 0000000..b558f21 --- /dev/null +++ b/documentation/docs/content/contribute/code.rst @@ -0,0 +1,5 @@ +================= +Contributing Code +================= + +How to contribute Code diff --git a/documentation/docs/content/contribute/documentation.rst b/documentation/docs/content/contribute/documentation.rst new file mode 100644 index 0000000..84a7b91 --- /dev/null +++ b/documentation/docs/content/contribute/documentation.rst @@ -0,0 +1,5 @@ +======================== +Contribute Documentation +======================== + +How to contribute Documentation diff --git a/documentation/docs/content/contribute/index.rst b/documentation/docs/content/contribute/index.rst new file mode 100644 index 0000000..dea2e5f --- /dev/null +++ b/documentation/docs/content/contribute/index.rst @@ -0,0 +1,12 @@ +================= +How to Contribute +================= + +This section is not done yet! + + +.. toctree:: + :maxdepth: 1 + + code + documentation diff --git a/documentation/docs/content/gettingStarted/index.rst b/documentation/docs/content/gettingStarted/index.rst new file mode 100644 index 0000000..47322f6 --- /dev/null +++ b/documentation/docs/content/gettingStarted/index.rst @@ -0,0 +1,21 @@ +=============== +Getting Started +=============== + +------------ +Requirements +------------ + +This section is not done yet! + +------------ +Installation +------------ + +This section is not done yet! + +----- +Usage +----- + +This section is not done yet! diff --git a/documentation/docs/content/introduction.rst b/documentation/docs/content/introduction.rst new file mode 100644 index 0000000..a4a54bc --- /dev/null +++ b/documentation/docs/content/introduction.rst @@ -0,0 +1,11 @@ +============ +Introduction +============ + +Introduction Content + +--------------------------------------- +What is the PHP Docker Boilerplate for? +--------------------------------------- + +This section is not done yet! diff --git a/documentation/docs/content/usage/dockerCompose.rst b/documentation/docs/content/usage/dockerCompose.rst new file mode 100644 index 0000000..788101b --- /dev/null +++ b/documentation/docs/content/usage/dockerCompose.rst @@ -0,0 +1,5 @@ +============================ +Docker Compose Configuration +============================ + +This section is not done yet! diff --git a/documentation/docs/content/usage/dockerImages.rst b/documentation/docs/content/usage/dockerImages.rst new file mode 100644 index 0000000..45c15a6 --- /dev/null +++ b/documentation/docs/content/usage/dockerImages.rst @@ -0,0 +1,5 @@ +====================== +Altering Docker Images +====================== + +This section is not done yet! diff --git a/documentation/docs/content/usage/index.rst b/documentation/docs/content/usage/index.rst new file mode 100644 index 0000000..d059bbb --- /dev/null +++ b/documentation/docs/content/usage/index.rst @@ -0,0 +1,12 @@ +===== +Usage +===== + +This section is not done yet! + +.. toctree:: + :maxdepth: 1 + + dockerCompose + dockerImages + vagrantDockerVM diff --git a/documentation/docs/content/usage/vagrantDockerVM.rst b/documentation/docs/content/usage/vagrantDockerVM.rst new file mode 100644 index 0000000..a7f7284 --- /dev/null +++ b/documentation/docs/content/usage/vagrantDockerVM.rst @@ -0,0 +1,5 @@ +============================== +Synergy with Vagrant Docker VM +============================== + +This section is not done yet! diff --git a/documentation/docs/index.rst b/documentation/docs/index.rst new file mode 100644 index 0000000..23a4371 --- /dev/null +++ b/documentation/docs/index.rst @@ -0,0 +1,30 @@ +.. WebDevOps Documentation documentation master file, created by + sphinx-quickstart on Sat Mar 19 12:21:05 2016. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +:orphan: true + +======== +Overview +======== + +| Welcome to the documentation pages for the WebDevOps PHP Docker Boilerplate. +| +| Here you will find informations about the usage of the PHP Docker Boilerplate, as well as informations about the components we used to compose it. +| This documentation is work in progess and we appeciate every help we can get, so feel free to contribute. +| +| + +.. toctree:: + + Back to Project Overview + content/introduction + +.. toctree:: + :caption: Documentation + + content/gettingStarted/index + content/usage/index + content/components/index + content/contribute/index diff --git a/documentation/docs/make.bat b/documentation/docs/make.bat new file mode 100644 index 0000000..86bd9f2 --- /dev/null +++ b/documentation/docs/make.bat @@ -0,0 +1,263 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set BUILDDIR=_build +set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . +set I18NSPHINXOPTS=%SPHINXOPTS% . +if NOT "%PAPER%" == "" ( + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% + set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% +) + +if "%1" == "" goto help + +if "%1" == "help" ( + :help + echo.Please use `make ^` where ^ is one of + echo. html to make standalone HTML files + echo. dirhtml to make HTML files named index.html in directories + echo. singlehtml to make a single large HTML file + echo. pickle to make pickle files + echo. json to make JSON files + echo. htmlhelp to make HTML files and a HTML help project + echo. qthelp to make HTML files and a qthelp project + echo. devhelp to make HTML files and a Devhelp project + echo. epub to make an epub + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter + echo. text to make text files + echo. man to make manual pages + echo. texinfo to make Texinfo files + echo. gettext to make PO message catalogs + echo. changes to make an overview over all changed/added/deprecated items + echo. xml to make Docutils-native XML files + echo. pseudoxml to make pseudoxml-XML files for display purposes + echo. linkcheck to check all external links for integrity + echo. doctest to run all doctests embedded in the documentation if enabled + echo. coverage to run coverage check of the documentation if enabled + goto end +) + +if "%1" == "clean" ( + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i + del /q /s %BUILDDIR%\* + goto end +) + + +REM Check if sphinx-build is available and fallback to Python version if any +%SPHINXBUILD% 1>NUL 2>NUL +if errorlevel 9009 goto sphinx_python +goto sphinx_ok + +:sphinx_python + +set SPHINXBUILD=python -m sphinx.__init__ +%SPHINXBUILD% 2> nul +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +:sphinx_ok + + +if "%1" == "html" ( + %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/html. + goto end +) + +if "%1" == "dirhtml" ( + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. + goto end +) + +if "%1" == "singlehtml" ( + %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. + goto end +) + +if "%1" == "pickle" ( + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the pickle files. + goto end +) + +if "%1" == "json" ( + %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the JSON files. + goto end +) + +if "%1" == "htmlhelp" ( + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run HTML Help Workshop with the ^ +.hhp project file in %BUILDDIR%/htmlhelp. + goto end +) + +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in %BUILDDIR%/qthelp, like this: + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\WebDevOpsDocumentation.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\WebDevOpsDocumentation.ghc + goto end +) + +if "%1" == "devhelp" ( + %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. + goto end +) + +if "%1" == "epub" ( + %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The epub file is in %BUILDDIR%/epub. + goto end +) + +if "%1" == "latex" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdf" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf + cd %~dp0 + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdfja" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf-ja + cd %~dp0 + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "text" ( + %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The text files are in %BUILDDIR%/text. + goto end +) + +if "%1" == "man" ( + %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The manual pages are in %BUILDDIR%/man. + goto end +) + +if "%1" == "texinfo" ( + %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. + goto end +) + +if "%1" == "gettext" ( + %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The message catalogs are in %BUILDDIR%/locale. + goto end +) + +if "%1" == "changes" ( + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes + if errorlevel 1 exit /b 1 + echo. + echo.The overview file is in %BUILDDIR%/changes. + goto end +) + +if "%1" == "linkcheck" ( + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck + if errorlevel 1 exit /b 1 + echo. + echo.Link check complete; look for any errors in the above output ^ +or in %BUILDDIR%/linkcheck/output.txt. + goto end +) + +if "%1" == "doctest" ( + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest + if errorlevel 1 exit /b 1 + echo. + echo.Testing of doctests in the sources finished, look at the ^ +results in %BUILDDIR%/doctest/output.txt. + goto end +) + +if "%1" == "coverage" ( + %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage + if errorlevel 1 exit /b 1 + echo. + echo.Testing of coverage in the sources finished, look at the ^ +results in %BUILDDIR%/coverage/python.txt. + goto end +) + +if "%1" == "xml" ( + %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The XML files are in %BUILDDIR%/xml. + goto end +) + +if "%1" == "pseudoxml" ( + %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. + goto end +) + +:end From 74ff48617028c22b41fe45cfc74e602fd0247ed6 Mon Sep 17 00:00:00 2001 From: Marc Henklein Date: Mon, 28 Mar 2016 21:00:18 +0200 Subject: [PATCH 046/120] enable phpXdebug by default for dev environment the php development.ini has xdebug enabled by default, so xdebug should also be installed. alternative: update the docs, that you have to enable phpXdebug first. --- etc/application.development.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/application.development.yml b/etc/application.development.yml index fe2c56b..6457b5a 100644 --- a/etc/application.development.yml +++ b/etc/application.development.yml @@ -5,7 +5,7 @@ PROVISION: install: phpBlackfire: false - phpXdebug: false + phpXdebug: true apacheModPagespeed: false service: From d1746000551099bad9e6ea2a4c4fe3079b0a5a8a Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 6 Apr 2016 21:12:39 +0200 Subject: [PATCH 047/120] Add exit on error in solr entrypoint Fixed #30 --- docker/solr/entrypoint.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docker/solr/entrypoint.sh b/docker/solr/entrypoint.sh index 2fbaa14..4f3ec51 100755 --- a/docker/solr/entrypoint.sh +++ b/docker/solr/entrypoint.sh @@ -1,5 +1,9 @@ #!/bin/bash +set -o pipefail # trace ERR through pipes +set -o errtrace # trace ERR through 'time command' and other functions +set -o nounset ## set -u : exit the script if you try to use an uninitialised variable +set -o errexit ## set -e : exit the script if any statement returns a non-true return value ################### # Move storage to storage container @@ -27,4 +31,4 @@ if [ "$1" = 'solr' ]; then exec java -jar start.jar fi -exec "$@" \ No newline at end of file +exec "$@" From a50ee194e0d23520f018bb8f1e30a51882d932a1 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 6 Apr 2016 21:14:48 +0200 Subject: [PATCH 048/120] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6204bc1..03ef08d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ PHP Docker Boilerplate Changelog 5.1.0 - UPCOMING ---------------- +- Enabled xdebug by default +- Added exit if solr entrypoint is failing inside 5.0.0 - 2016-03-07 ------------------ From 0926461b77d5a9bd04ef0d1a85c55447302bb6cc Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 6 Apr 2016 21:18:34 +0200 Subject: [PATCH 049/120] Add flush privileges for mysql on restore Fixed #10 --- bin/restore.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/restore.sh b/bin/restore.sh index de0bc6b..66a08da 100755 --- a/bin/restore.sh +++ b/bin/restore.sh @@ -23,6 +23,7 @@ case "$1" in if [ -f "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" ]; then logMsg "Starting MySQL restore..." bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExec mysql + echo "FLUSH PRIVILEGES;" | dockerExec mysql logMsg "Finished" else errorMsg "MySQL backup file not found" From 30b376887c786a2c46b36951c76e48e2d1c08e4d Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Mon, 9 May 2016 21:33:23 +0200 Subject: [PATCH 050/120] Revert "enable phpXdebug by default for dev environment" This reverts commit 74ff48617028c22b41fe45cfc74e602fd0247ed6. Will not work with next Dockerimage files --- etc/application.development.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/application.development.yml b/etc/application.development.yml index 6457b5a..fe2c56b 100644 --- a/etc/application.development.yml +++ b/etc/application.development.yml @@ -5,7 +5,7 @@ PROVISION: install: phpBlackfire: false - phpXdebug: true + phpXdebug: false apacheModPagespeed: false service: From aa8f1ec197931262f1e36a44b1ae36544b5b279e Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Mon, 9 May 2016 21:39:36 +0200 Subject: [PATCH 051/120] Version bump --- CHANGELOG.md | 11 ++++++++--- README.md | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03ef08d..c6e23b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,14 @@ PHP Docker Boilerplate Changelog ================================== 5.1.0 - UPCOMING ----------------- -- Enabled xdebug by default -- Added exit if solr entrypoint is failing inside +----------------- + +5.0.2 - 2016-05-09 +------------------ +- Added exit if solr entrypoint is failing inside +- Fix solr storage +- Add `make shell` and `make root` (Makefile targets) +- Refactored backup and restore (solr and mysql, see Makefile) 5.0.0 - 2016-03-07 ------------------ diff --git a/README.md b/README.md index b8a54d4..59e98a4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Dockerized PHP web project boilerplate -[![latest v5.0.0](https://img.shields.io/badge/latest-v5.0.0-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.0.0) +[![latest v5.0.2](https://img.shields.io/badge/latest-v5.0.2-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.0.2) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat) [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Average time to resolve an issue") [![Percentage of issues still open](http://isitmaintained.com/badge/open/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Percentage of issues still open") From bd2827b95625020c16fd5cb18ada163faabc893e Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 11 May 2016 20:39:04 +0200 Subject: [PATCH 052/120] Implement new provison system --- Dockerfile.cloud | 3 +-- Dockerfile.development | 4 +--- Dockerfile.production | 3 +-- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/Dockerfile.cloud b/Dockerfile.cloud index 6e4733b..78291b9 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -57,8 +57,7 @@ COPY provision/ /opt/docker/provision/ COPY app/ /app/ -RUN /opt/docker/bin/control.sh provision.role.startup boilerplate-main \ - && /opt/docker/bin/control.sh provision.role.startup boilerplate-deployment \ +RUN /opt/docker/bin/provision add --tag bootstrap --tag entrypoint boilerplate-main boilerplate-deployment \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir diff --git a/Dockerfile.development b/Dockerfile.development index 380caea..22910b1 100644 --- a/Dockerfile.development +++ b/Dockerfile.development @@ -55,9 +55,7 @@ ENV PROVISION_CONTEXT "development" COPY etc/ /opt/docker/etc/ COPY provision/ /opt/docker/provision/ -RUN /opt/docker/bin/control.sh provision.role boilerplate-main \ - && /opt/docker/bin/control.sh provision.role boilerplate-main-development \ - && /opt/docker/bin/control.sh provision.role.startup boilerplate-deployment \ +RUN /opt/docker/bin/provision add --tag bootstrap --tag entrypoint boilerplate-main boilerplate-main-development boilerplate-deployment \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir diff --git a/Dockerfile.production b/Dockerfile.production index 9af6fb3..00af3a3 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -55,8 +55,7 @@ ENV PROVISION_CONTEXT "production" COPY etc/ /opt/docker/etc/ COPY provision/ /opt/docker/provision/ -RUN /opt/docker/bin/control.sh provision.role boilerplate-main \ - && /opt/docker/bin/control.sh provision.role.startup boilerplate-deployment \ +RUN /opt/docker/bin/provision add --tag bootstrap --tag entrypoint boilerplate-main boilerplate-deployment \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir From 4bb9c94414f9f130bffa5b2acb59cb1b829bfce2 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 4 May 2016 22:20:43 +0200 Subject: [PATCH 053/120] Switch to new dev images --- Dockerfile.development | 50 +++++++++---------- etc/application.development.yml | 2 - etc/application.production.yml | 2 - .../tasks/bootstrap.yml | 4 -- .../tasks/bootstrap/php.xdebug.yml | 25 ---------- 5 files changed, 25 insertions(+), 58 deletions(-) delete mode 100644 provision/roles/boilerplate-main-development/tasks/bootstrap/php.xdebug.yml diff --git a/Dockerfile.development b/Dockerfile.development index 22910b1..fe6454f 100644 --- a/Dockerfile.development +++ b/Dockerfile.development @@ -14,32 +14,32 @@ # debian-9 -> PHP 5.6 and 7.0 (stretch) # # Apache: -# webdevops/php-apache:ubuntu-12.04 -# webdevops/php-apache:ubuntu-14.04 -# webdevops/php-apache:ubuntu-15.04 -# webdevops/php-apache:ubuntu-15.10 -# webdevops/php-apache:ubuntu-16.04 -# webdevops/php-apache:ubuntu-16.04-php7 -# webdevops/php-apache:centos-7 -# webdevops/php-apache:debian-7 -# webdevops/php-apache:debian-8 -# webdevops/php-apache:debian-8-php7 -# webdevops/php-apache:debian-9 -# webdevops/php-apache:debian-9-php7 +# webdevops/php-apache-dev:ubuntu-12.04 +# webdevops/php-apache-dev:ubuntu-14.04 +# webdevops/php-apache-dev:ubuntu-15.04 +# webdevops/php-apache-dev:ubuntu-15.10 +# webdevops/php-apache-dev:ubuntu-16.04 +# webdevops/php-apache-dev:ubuntu-16.04-php7 +# webdevops/php-apache-dev:centos-7 +# webdevops/php-apache-dev:debian-7 +# webdevops/php-apache-dev:debian-8 +# webdevops/php-apache-dev:debian-8-php7 +# webdevops/php-apache-dev:debian-9 +# webdevops/php-apache-dev:debian-9-php7 # # Nginx: -# webdevops/php-nginx:ubuntu-12.04 -# webdevops/php-nginx:ubuntu-14.04 -# webdevops/php-nginx:ubuntu-15.04 -# webdevops/php-nginx:ubuntu-15.10 -# webdevops/php-nginx:ubuntu-16.04 -# webdevops/php-nginx:ubuntu-16.04-php7 -# webdevops/php-nginx:centos-7 -# webdevops/php-nginx:debian-7 -# webdevops/php-nginx:debian-8 -# webdevops/php-nginx:debian-8-php7 -# webdevops/php-nginx:debian-9 -# webdevops/php-nginx:debian-9-php7 +# webdevops/php-nginx-dev-dev:ubuntu-12.04 +# webdevops/php-nginx-dev-dev:ubuntu-14.04 +# webdevops/php-nginx-dev-dev:ubuntu-15.04 +# webdevops/php-nginx-dev-dev:ubuntu-15.10 +# webdevops/php-nginx-dev-dev:ubuntu-16.04 +# webdevops/php-nginx-dev-dev:ubuntu-16.04-php7 +# webdevops/php-nginx-dev-dev:centos-7 +# webdevops/php-nginx-dev-dev:debian-7 +# webdevops/php-nginx-dev-dev:debian-8 +# webdevops/php-nginx-dev-dev:debian-8-php7 +# webdevops/php-nginx-dev-dev:debian-9 +# webdevops/php-nginx-dev-dev:debian-9-php7 # # HHVM: # webdevops/hhvm-apache @@ -47,7 +47,7 @@ # #++++++++++++++++++++++++++++++++++++++ -FROM webdevops/php-apache:ubuntu-14.04 +FROM webdevops/php-apache-dev:ubuntu-14.04 ENV PROVISION_CONTEXT "development" diff --git a/etc/application.development.yml b/etc/application.development.yml index fe2c56b..20f6f47 100644 --- a/etc/application.development.yml +++ b/etc/application.development.yml @@ -4,8 +4,6 @@ PROVISION: systemUpdate: false install: - phpBlackfire: false - phpXdebug: false apacheModPagespeed: false service: diff --git a/etc/application.production.yml b/etc/application.production.yml index ba8ae21..00e29bd 100644 --- a/etc/application.production.yml +++ b/etc/application.production.yml @@ -4,8 +4,6 @@ PROVISION: systemUpdate: true install: - phpBlackfire: false - phpXdebug: false apacheModPagespeed: false service: diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap.yml index f39fcf3..eb4bee1 100644 --- a/provision/roles/boilerplate-main-development/tasks/bootstrap.yml +++ b/provision/roles/boilerplate-main-development/tasks/bootstrap.yml @@ -5,7 +5,3 @@ - include: bootstrap/php-blackfire/redhat.yml when: ansible_os_family == 'Debian' and PROVISION.install.phpBlackfire is defined and PROVISION.install.phpBlackfire - -- include: bootstrap/php.xdebug.yml - when: PROVISION.install.phpXdebug is defined and PROVISION.install.phpXdebug - diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap/php.xdebug.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap/php.xdebug.yml deleted file mode 100644 index c4471b4..0000000 --- a/provision/roles/boilerplate-main-development/tasks/bootstrap/php.xdebug.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- - -- name: Set php xdebug file [RedHat family] - set_fact: - php_xdebug_conf: /etc/php.d/xdebug.ini - when: ansible_os_family == 'RedHat' - -- name: Set php xdebug file [Debian family] - set_fact: - php_xdebug_conf: /etc/php5/mods-available/xdebug.ini - when: ansible_os_family == 'Debian' - -- name: Set php xdebug file [Ubuntu 12.04] - set_fact: - php_xdebug_conf: /etc/php5/conf.d/xdebug.ini - when: ansible_distribution == 'Ubuntu' and ansible_distribution_version == "12.04" - -- name: Enable xdebug - replace: - dest: '{{ php_xdebug_conf }}' - regexp: '^[\s]*;[\s]*({{ item }}[\s]*=.*)$' - replace: '\1' - with_items: - - 'zend_extension' - - 'extension' From 980604c2dafe4dd6319f810a4a48e0c41b53196d Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Mon, 23 May 2016 21:36:16 +0200 Subject: [PATCH 054/120] Version bump --- CHANGELOG.md | 6 ++++-- README.md | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c6e23b4..917d1bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,10 @@ PHP Docker Boilerplate Changelog ================================== -5.1.0 - UPCOMING ------------------ +5.1.0 - 2016-05-23 +------------------ +- Add support for new WebDevOps Docker images 0.5.0 and up +- Removed xdebug and blackfire, for xdebug use php-dev, php-apache-dev, php-nginx-dev images 5.0.2 - 2016-05-09 ------------------ diff --git a/README.md b/README.md index 59e98a4..e0ce44a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Dockerized PHP web project boilerplate -[![latest v5.0.2](https://img.shields.io/badge/latest-v5.0.2-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.0.2) +[![latest v5.1.0](https://img.shields.io/badge/latest-v5.1.0-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.1.0) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat) [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Average time to resolve an issue") [![Percentage of issues still open](http://isitmaintained.com/badge/open/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Percentage of issues still open") From 446abec9df0b89721b725ee2c6e7b326a666813e Mon Sep 17 00:00:00 2001 From: Alexander Grein Date: Tue, 24 May 2016 15:14:17 +0200 Subject: [PATCH 055/120] Remove no more existing -php7 versions --- Dockerfile.cloud | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Dockerfile.cloud b/Dockerfile.cloud index 78291b9..d036d88 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -7,11 +7,11 @@ # ubuntu-14.04 -> PHP 5.5 (trusty) LTS # ubuntu-15.04 -> PHP 5.6 (vivid) # ubuntu-15.10 -> PHP 5.6 (wily) -# ubuntu-16.04 -> PHP 5.6 and 7.0 (xenial) LTS +# ubuntu-16.04 -> PHP 7.0 (xenial) LTS # centos-7 -> PHP 5.4 # debian-7 -> PHP 5.4 (wheezy) # debian-8 -> PHP 5.6 and 7.x (jessie) -# debian-9 -> PHP 5.6 and 7.0 (stretch) +# debian-9 -> PHP 7.0 (stretch) # # Apache: # webdevops/php-apache:ubuntu-12.04 @@ -19,13 +19,11 @@ # webdevops/php-apache:ubuntu-15.04 # webdevops/php-apache:ubuntu-15.10 # webdevops/php-apache:ubuntu-16.04 -# webdevops/php-apache:ubuntu-16.04-php7 # webdevops/php-apache:centos-7 # webdevops/php-apache:debian-7 # webdevops/php-apache:debian-8 # webdevops/php-apache:debian-8-php7 # webdevops/php-apache:debian-9 -# webdevops/php-apache:debian-9-php7 # # Nginx: # webdevops/php-nginx:ubuntu-12.04 @@ -33,13 +31,11 @@ # webdevops/php-nginx:ubuntu-15.04 # webdevops/php-nginx:ubuntu-15.10 # webdevops/php-nginx:ubuntu-16.04 -# webdevops/php-nginx:ubuntu-16.04-php7 # webdevops/php-nginx:centos-7 # webdevops/php-nginx:debian-7 # webdevops/php-nginx:debian-8 # webdevops/php-nginx:debian-8-php7 # webdevops/php-nginx:debian-9 -# webdevops/php-nginx:debian-9-php7 # # HHVM: # webdevops/hhvm-apache From 10a9aaf61a8480b6104d71f916da7c2dc0ab82fe Mon Sep 17 00:00:00 2001 From: Alexander Grein Date: Tue, 24 May 2016 15:15:26 +0200 Subject: [PATCH 056/120] Remove no more existing -php7 versions --- Dockerfile.development | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Dockerfile.development b/Dockerfile.development index fe6454f..0cc55e8 100644 --- a/Dockerfile.development +++ b/Dockerfile.development @@ -7,11 +7,11 @@ # ubuntu-14.04 -> PHP 5.5 (trusty) LTS # ubuntu-15.04 -> PHP 5.6 (vivid) # ubuntu-15.10 -> PHP 5.6 (wily) -# ubuntu-16.04 -> PHP 5.6 and 7.0 (xenial) LTS +# ubuntu-16.04 -> PHP 7.0 (xenial) LTS # centos-7 -> PHP 5.4 # debian-7 -> PHP 5.4 (wheezy) # debian-8 -> PHP 5.6 and 7.x (jessie) -# debian-9 -> PHP 5.6 and 7.0 (stretch) +# debian-9 -> PHP 7.0 (stretch) # # Apache: # webdevops/php-apache-dev:ubuntu-12.04 @@ -19,13 +19,11 @@ # webdevops/php-apache-dev:ubuntu-15.04 # webdevops/php-apache-dev:ubuntu-15.10 # webdevops/php-apache-dev:ubuntu-16.04 -# webdevops/php-apache-dev:ubuntu-16.04-php7 # webdevops/php-apache-dev:centos-7 # webdevops/php-apache-dev:debian-7 # webdevops/php-apache-dev:debian-8 # webdevops/php-apache-dev:debian-8-php7 # webdevops/php-apache-dev:debian-9 -# webdevops/php-apache-dev:debian-9-php7 # # Nginx: # webdevops/php-nginx-dev-dev:ubuntu-12.04 @@ -33,13 +31,11 @@ # webdevops/php-nginx-dev-dev:ubuntu-15.04 # webdevops/php-nginx-dev-dev:ubuntu-15.10 # webdevops/php-nginx-dev-dev:ubuntu-16.04 -# webdevops/php-nginx-dev-dev:ubuntu-16.04-php7 # webdevops/php-nginx-dev-dev:centos-7 # webdevops/php-nginx-dev-dev:debian-7 # webdevops/php-nginx-dev-dev:debian-8 # webdevops/php-nginx-dev-dev:debian-8-php7 # webdevops/php-nginx-dev-dev:debian-9 -# webdevops/php-nginx-dev-dev:debian-9-php7 # # HHVM: # webdevops/hhvm-apache From 5fcbd0a158d586ac2bd68d8cdad74a2eee190880 Mon Sep 17 00:00:00 2001 From: Alexander Grein Date: Tue, 24 May 2016 15:16:34 +0200 Subject: [PATCH 057/120] Remove no more existing -php7 versions --- Dockerfile.production | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Dockerfile.production b/Dockerfile.production index 00af3a3..271bd3b 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -7,11 +7,11 @@ # ubuntu-14.04 -> PHP 5.5 (trusty) LTS # ubuntu-15.04 -> PHP 5.6 (vivid) # ubuntu-15.10 -> PHP 5.6 (wily) -# ubuntu-16.04 -> PHP 5.6 and 7.0 (xenial) LTS +# ubuntu-16.04 -> PHP 7.0 (xenial) LTS # centos-7 -> PHP 5.4 # debian-7 -> PHP 5.4 (wheezy) # debian-8 -> PHP 5.6 and 7.x (jessie) -# debian-9 -> PHP 5.6 and 7.0 (stretch) +# debian-9 -> PHP 7.0 (stretch) # # Apache: # webdevops/php-apache:ubuntu-12.04 @@ -19,13 +19,11 @@ # webdevops/php-apache:ubuntu-15.04 # webdevops/php-apache:ubuntu-15.10 # webdevops/php-apache:ubuntu-16.04 -# webdevops/php-apache:ubuntu-16.04-php7 # webdevops/php-apache:centos-7 # webdevops/php-apache:debian-7 # webdevops/php-apache:debian-8 # webdevops/php-apache:debian-8-php7 # webdevops/php-apache:debian-9 -# webdevops/php-apache:debian-9-php7 # # Nginx: # webdevops/php-nginx:ubuntu-12.04 @@ -33,13 +31,11 @@ # webdevops/php-nginx:ubuntu-15.04 # webdevops/php-nginx:ubuntu-15.10 # webdevops/php-nginx:ubuntu-16.04 -# webdevops/php-nginx:ubuntu-16.04-php7 # webdevops/php-nginx:centos-7 # webdevops/php-nginx:debian-7 # webdevops/php-nginx:debian-8 # webdevops/php-nginx:debian-8-php7 # webdevops/php-nginx:debian-9 -# webdevops/php-nginx:debian-9-php7 # # HHVM: # webdevops/hhvm-apache From a71e5861a6f55c987c0afa9b64f5bfeefa86dc44 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 24 May 2016 19:48:38 +0200 Subject: [PATCH 058/120] Update vhost configuration New boilerplate layout Fixes #38 --- .../templates/apache/vhost.conf.j2 | 16 ++++++++++++++-- .../templates/nginx/vhost.conf.j2 | 4 ++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/provision/roles/boilerplate-main/templates/apache/vhost.conf.j2 b/provision/roles/boilerplate-main/templates/apache/vhost.conf.j2 index 28346a8..d925d87 100644 --- a/provision/roles/boilerplate-main/templates/apache/vhost.conf.j2 +++ b/provision/roles/boilerplate-main/templates/apache/vhost.conf.j2 @@ -12,7 +12,12 @@ UseCanonicalName Off - Include /opt/docker/etc/httpd/vhost.common.conf + + Include /opt/docker/etc/httpd/vhost.common.d/*.conf + + = 2.4> + IncludeOptional /opt/docker/etc/httpd/vhost.common.d/*.conf + @@ -21,7 +26,14 @@ DocumentRoot "{{ vhost.documentRoot|default('') }}" UseCanonicalName Off - Include /opt/docker/etc/httpd/vhost.common.conf + + + Include /opt/docker/etc/httpd/vhost.common.d/*.conf + + = 2.4> + IncludeOptional /opt/docker/etc/httpd/vhost.common.d/*.conf + + Include /opt/docker/etc/httpd/vhost.ssl.conf diff --git a/provision/roles/boilerplate-main/templates/nginx/vhost.conf.j2 b/provision/roles/boilerplate-main/templates/nginx/vhost.conf.j2 index e2bbdb5..e2fa150 100644 --- a/provision/roles/boilerplate-main/templates/nginx/vhost.conf.j2 +++ b/provision/roles/boilerplate-main/templates/nginx/vhost.conf.j2 @@ -30,7 +30,7 @@ server { fastcgi_read_timeout 1000; } - include /opt/docker/etc/nginx/vhost.common.conf; + include /opt/docker/etc/nginx/vhost.common.d/*.conf; } ############## @@ -62,7 +62,7 @@ server { fastcgi_read_timeout 1000; } - include /opt/docker/etc/nginx/vhost.common.conf; + include /opt/docker/etc/nginx/vhost.common.d/*.conf; include /opt/docker/etc/nginx/vhost.ssl.conf; } From b9ce1f223a55f01046ba13f8949aec6a7f593e3b Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 24 May 2016 23:06:06 +0200 Subject: [PATCH 059/120] Version bump --- CHANGELOG.md | 5 +++++ README.md | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 917d1bd..4bdf1c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ PHP Docker Boilerplate Changelog ================================== +5.1.1 - 2016-05-24 +------------------ +- Fixed Docker image names in Dockerfile.development +- Updated nginx and apache vhost configuration + 5.1.0 - 2016-05-23 ------------------ - Add support for new WebDevOps Docker images 0.5.0 and up diff --git a/README.md b/README.md index e0ce44a..a49f81d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Dockerized PHP web project boilerplate -[![latest v5.1.0](https://img.shields.io/badge/latest-v5.1.0-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.1.0) +[![latest v5.1.1](https://img.shields.io/badge/latest-v5.1.1-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.1.1) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat) [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Average time to resolve an issue") [![Percentage of issues still open](http://isitmaintained.com/badge/open/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Percentage of issues still open") From 0f31e94d5ac8712290acbd529349d4fc73f13ab7 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 25 May 2016 16:07:54 +0200 Subject: [PATCH 060/120] Fix duplicate -dev in docker names --- CHANGELOG.md | 4 ++++ Dockerfile.development | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bdf1c1..477102c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ PHP Docker Boilerplate Changelog ================================== +5.1.2 - 2016-05-25 +------------------ +- Fix typo in Docker image names (duplicate -dev) + 5.1.1 - 2016-05-24 ------------------ - Fixed Docker image names in Dockerfile.development diff --git a/Dockerfile.development b/Dockerfile.development index 0cc55e8..5c1ce6e 100644 --- a/Dockerfile.development +++ b/Dockerfile.development @@ -26,16 +26,16 @@ # webdevops/php-apache-dev:debian-9 # # Nginx: -# webdevops/php-nginx-dev-dev:ubuntu-12.04 -# webdevops/php-nginx-dev-dev:ubuntu-14.04 -# webdevops/php-nginx-dev-dev:ubuntu-15.04 -# webdevops/php-nginx-dev-dev:ubuntu-15.10 -# webdevops/php-nginx-dev-dev:ubuntu-16.04 -# webdevops/php-nginx-dev-dev:centos-7 -# webdevops/php-nginx-dev-dev:debian-7 -# webdevops/php-nginx-dev-dev:debian-8 -# webdevops/php-nginx-dev-dev:debian-8-php7 -# webdevops/php-nginx-dev-dev:debian-9 +# webdevops/php-nginx-dev:ubuntu-12.04 +# webdevops/php-nginx-dev:ubuntu-14.04 +# webdevops/php-nginx-dev:ubuntu-15.04 +# webdevops/php-nginx-dev:ubuntu-15.10 +# webdevops/php-nginx-dev:ubuntu-16.04 +# webdevops/php-nginx-dev:centos-7 +# webdevops/php-nginx-dev:debian-7 +# webdevops/php-nginx-dev:debian-8 +# webdevops/php-nginx-dev:debian-8-php7 +# webdevops/php-nginx-dev:debian-9 # # HHVM: # webdevops/hhvm-apache From ef0a7c45588e8ed3f2a016733d32f65a33714f02 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 25 May 2016 16:08:16 +0200 Subject: [PATCH 061/120] Version bump --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a49f81d..c22e4b5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Dockerized PHP web project boilerplate -[![latest v5.1.1](https://img.shields.io/badge/latest-v5.1.1-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.1.1) +[![latest v5.1.2](https://img.shields.io/badge/latest-v5.1.2-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.1.2) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat) [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Average time to resolve an issue") [![Percentage of issues still open](http://isitmaintained.com/badge/open/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Percentage of issues still open") From 8cf1a1283b7cf19aeb446972a5359ae8c71cafb1 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 25 May 2016 16:22:21 +0200 Subject: [PATCH 062/120] Update and fix nginx vhost configuration file --- CHANGELOG.md | 4 +++ .../templates/nginx/vhost.conf.j2 | 28 ++----------------- 2 files changed, 6 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 477102c..9290a2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ PHP Docker Boilerplate Changelog ================================== +5.1.3 - 2016-05-25 +------------------ +- Fix nginx vhost configuration (modular WebDevOps image design) + 5.1.2 - 2016-05-25 ------------------ - Fix typo in Docker image names (duplicate -dev) diff --git a/provision/roles/boilerplate-main/templates/nginx/vhost.conf.j2 b/provision/roles/boilerplate-main/templates/nginx/vhost.conf.j2 index e2fa150..58340ea 100644 --- a/provision/roles/boilerplate-main/templates/nginx/vhost.conf.j2 +++ b/provision/roles/boilerplate-main/templates/nginx/vhost.conf.j2 @@ -9,6 +9,7 @@ server { listen 80; server_name {{ vhost.serverName }} {{ vhost.serverAlias }}; + access_log /dev/stdout; error_log /dev/stdout info; @@ -17,19 +18,6 @@ server { client_max_body_size 50m; - location / { - try_files $uri $uri/ /{{ vhost.documentIndex|default('') }}?$query_string; - } - - location ~ \.php$ { - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass php; - include fastcgi_params; - - fastcgi_param SCRIPT_FILENAME $request_filename; - fastcgi_read_timeout 1000; - } - include /opt/docker/etc/nginx/vhost.common.d/*.conf; } @@ -41,6 +29,7 @@ server { listen 443; server_name {{ vhost.serverName }} {{ vhost.serverAlias }}; + access_log /dev/stdout; error_log /dev/stdout info; @@ -49,19 +38,6 @@ server { client_max_body_size 50m; - location / { - try_files $uri $uri/ /{{ vhost.documentIndex|default('') }}?$query_string; - } - - location ~ \.php$ { - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass php; - include fastcgi_params; - - fastcgi_param SCRIPT_FILENAME $request_filename; - fastcgi_read_timeout 1000; - } - include /opt/docker/etc/nginx/vhost.common.d/*.conf; include /opt/docker/etc/nginx/vhost.ssl.conf; } From 89f8026ab9ccde532b24c583cef1987a6cac8eda Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 25 May 2016 16:31:34 +0200 Subject: [PATCH 063/120] Version bump --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c22e4b5..37b1c2b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Dockerized PHP web project boilerplate -[![latest v5.1.2](https://img.shields.io/badge/latest-v5.1.2-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.1.2) +[![latest v5.1.3](https://img.shields.io/badge/latest-v5.1.3-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.1.3) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat) [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Average time to resolve an issue") [![Percentage of issues still open](http://isitmaintained.com/badge/open/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Percentage of issues still open") From 531e31c48354fc0b202f9709f674de5e291de468 Mon Sep 17 00:00:00 2001 From: Florian Tatzel Date: Thu, 9 Jun 2016 08:59:19 -0700 Subject: [PATCH 064/120] Adds Backlink to Main Documentation (#40) --- documentation/docs/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/docs/index.rst b/documentation/docs/index.rst index 23a4371..3742049 100644 --- a/documentation/docs/index.rst +++ b/documentation/docs/index.rst @@ -18,7 +18,7 @@ Overview .. toctree:: - Back to Project Overview + Back to Project Overview content/introduction .. toctree:: From bdebde2444efa8ad99f2c7b2675406c52f6f1f4c Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sat, 11 Jun 2016 07:34:48 +0200 Subject: [PATCH 065/120] Add project logo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 37b1c2b..89d4d5f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Dockerized PHP web project boilerplate +![TYPO3 Docker Boilerplate](https://static.webdevops.io/php-docker-boilerplate.svg) [![latest v5.1.3](https://img.shields.io/badge/latest-v5.1.3-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.1.3) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat) From 3c79c2840f75a372f4ef447884acca72b6201dd2 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 30 Jun 2016 23:27:37 +0200 Subject: [PATCH 066/120] [WIP] Feature/cleanup provision (#45) * Cleanup provision files Remove old and deprecated stuff Also fixes hhvm support * Remove blackfire * Revert "Remove blackfire" This reverts commit 9afb7a1e3d2ff8e312c714d981d040ec156694c9. * Add switch for xdebug and blackfire * Add support for preinstalled blackfire Needs updated images * Add vhosts and mailcatcher to development * Switch php debugger to environment variable * Raise docker-compose.yml to version 2 * Switch to ubuntu 16.04 as default Using PHP 7 now as default * Fix logo text * Add Postgres 9.5 * switches Postgres Dockerfiles to a ".Dockerfile" file extension to have better editor support # Conflicts: # docker-compose.cloud.yml # docker-compose.development.yml # docker-compose.production.yml # etc/application.environment.yml * Update mysql docker Add .Dockerfile prefix Add Percona 5.7 * Remove unused badges --- Dockerfile.cloud | 4 +- Dockerfile.development | 4 +- Dockerfile.production | 4 +- README.md | 4 +- docker-compose.cloud.yml | 261 +++++++-------- docker-compose.development.yml | 297 +++++++++--------- docker-compose.production.yml | 271 ++++++++-------- docker/mail/Dockerfile | 12 - .../{MariaDB-10 => MariaDB-10.Dockerfile} | 0 .../{MariaDB-5.5 => MariaDB-5.5.Dockerfile} | 0 .../mysql/{MySQL-5.5 => MySQL-5.5.Dockerfile} | 0 .../mysql/{MySQL-5.6 => MySQL-5.6.Dockerfile} | 0 .../mysql/{MySQL-5.7 => MySQL-5.7.Dockerfile} | 0 .../{Percona-5.5 => Percona-5.5.Dockerfile} | 0 .../{Percona-5.6 => Percona-5.6.Dockerfile} | 0 docker/mysql/Percona-5.7.Dockerfile | 14 + .../{Dockerfile => Postgres-9.4.Dockerfile} | 2 +- docker/postgres/Postgres-9.5.Dockerfile | 12 + etc/application.development.yml | 4 +- etc/application.environment.yml | 31 -- etc/application.production.yml | 2 - etc/environment.development.yml | 6 + etc/environment.yml | 1 + .../tasks/bootstrap.yml | 6 - .../tasks/bootstrap/php-blackfire/debian.yml | 19 -- .../tasks/bootstrap/php-blackfire/redhat.yml | 26 -- .../boilerplate-main/tasks/bootstrap.yml | 9 - .../tasks/bootstrap/composer.yml | 14 - .../boilerplate-main/tasks/bootstrap/php.yml | 20 +- .../tasks/bootstrap/systemUpdate.centos.yml | 4 - .../tasks/bootstrap/systemUpdate.ubuntu.yml | 6 - .../boilerplate-main/tasks/entrypoint.yml | 4 - .../tasks/entrypoint/mysql.yml | 17 - .../boilerplate-main/tasks/entrypoint/php.yml | 12 - .../roles/boilerplate-main/tasks/main.yml | 4 - 35 files changed, 487 insertions(+), 583 deletions(-) delete mode 100644 docker/mail/Dockerfile rename docker/mysql/{MariaDB-10 => MariaDB-10.Dockerfile} (100%) rename docker/mysql/{MariaDB-5.5 => MariaDB-5.5.Dockerfile} (100%) rename docker/mysql/{MySQL-5.5 => MySQL-5.5.Dockerfile} (100%) rename docker/mysql/{MySQL-5.6 => MySQL-5.6.Dockerfile} (100%) rename docker/mysql/{MySQL-5.7 => MySQL-5.7.Dockerfile} (100%) rename docker/mysql/{Percona-5.5 => Percona-5.5.Dockerfile} (100%) rename docker/mysql/{Percona-5.6 => Percona-5.6.Dockerfile} (100%) create mode 100644 docker/mysql/Percona-5.7.Dockerfile rename docker/postgres/{Dockerfile => Postgres-9.4.Dockerfile} (79%) create mode 100644 docker/postgres/Postgres-9.5.Dockerfile delete mode 100644 etc/application.environment.yml delete mode 100644 provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/debian.yml delete mode 100644 provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/redhat.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/composer.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/systemUpdate.centos.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/systemUpdate.ubuntu.yml delete mode 100644 provision/roles/boilerplate-main/tasks/entrypoint.yml delete mode 100644 provision/roles/boilerplate-main/tasks/entrypoint/mysql.yml delete mode 100644 provision/roles/boilerplate-main/tasks/entrypoint/php.yml diff --git a/Dockerfile.cloud b/Dockerfile.cloud index d036d88..c2a7278 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -43,7 +43,7 @@ # #++++++++++++++++++++++++++++++++++++++ -FROM webdevops/php-apache:ubuntu-14.04 +FROM webdevops/php-apache:ubuntu-16.04 ENV PROVISION_CONTEXT "production" @@ -53,7 +53,7 @@ COPY provision/ /opt/docker/provision/ COPY app/ /app/ -RUN /opt/docker/bin/provision add --tag bootstrap --tag entrypoint boilerplate-main boilerplate-deployment \ +RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-deployment \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir diff --git a/Dockerfile.development b/Dockerfile.development index 5c1ce6e..b425475 100644 --- a/Dockerfile.development +++ b/Dockerfile.development @@ -43,7 +43,7 @@ # #++++++++++++++++++++++++++++++++++++++ -FROM webdevops/php-apache-dev:ubuntu-14.04 +FROM webdevops/php-apache-dev:ubuntu-16.04 ENV PROVISION_CONTEXT "development" @@ -51,7 +51,7 @@ ENV PROVISION_CONTEXT "development" COPY etc/ /opt/docker/etc/ COPY provision/ /opt/docker/provision/ -RUN /opt/docker/bin/provision add --tag bootstrap --tag entrypoint boilerplate-main boilerplate-main-development boilerplate-deployment \ +RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-main-development --role boilerplate-deployment \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir diff --git a/Dockerfile.production b/Dockerfile.production index 271bd3b..4f81446 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -43,7 +43,7 @@ # #++++++++++++++++++++++++++++++++++++++ -FROM webdevops/php-apache:ubuntu-14.04 +FROM webdevops/php-apache:ubuntu-16.04 ENV PROVISION_CONTEXT "production" @@ -51,7 +51,7 @@ ENV PROVISION_CONTEXT "production" COPY etc/ /opt/docker/etc/ COPY provision/ /opt/docker/provision/ -RUN /opt/docker/bin/provision add --tag bootstrap --tag entrypoint boilerplate-main boilerplate-deployment \ +RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-deployment \ && /opt/docker/bin/bootstrap.sh # Configure volume/workdir diff --git a/README.md b/README.md index 89d4d5f..9927c9a 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,7 @@ -![TYPO3 Docker Boilerplate](https://static.webdevops.io/php-docker-boilerplate.svg) +![PHP Docker Boilerplate](https://static.webdevops.io/php-docker-boilerplate.svg) [![latest v5.1.3](https://img.shields.io/badge/latest-v5.1.3-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.1.3) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat) -[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Average time to resolve an issue") -[![Percentage of issues still open](http://isitmaintained.com/badge/open/mblaschke/php-docker-boilerplate.svg)](http://isitmaintained.com/project/mblaschke/php-docker-boilerplate "Percentage of issues still open") This is an easy customizable docker boilerplate for any PHP-based projects like _Symfony Framework_, _CakePHP_, _Yii_ and many other frameworks or applications. diff --git a/docker-compose.cloud.yml b/docker-compose.cloud.yml index ea71f45..d01ef63 100644 --- a/docker-compose.cloud.yml +++ b/docker-compose.cloud.yml @@ -1,136 +1,141 @@ -####################################### -# PHP application Docker container -# -# for this container you have to remove -# following entries from .dockerignore: -# -# etc/* -# provision/* -# app/* -# -####################################### -app: - build: . - dockerfile: Dockerfile.cloud - links: - - mysql - #- postgres - #- mail - #- solr - #- elasticsearch - #- redis - #- memcached - #- ftp - ports: - - "8000:80" - - "8443:443" - - "10022:22" - volumes_from: - - storage - env_file: - - etc/environment.yml - - etc/environment.production.yml +version: '2' +services: + ####################################### + # PHP application Docker container + # + # for this container you have to remove + # following entries from .dockerignore: + # + # etc/* + # provision/* + # app/* + # + ####################################### + app: + build: + context: . + dockerfile: Dockerfile.cloud + links: + - mysql + #- postgres + #- mail + #- solr + #- elasticsearch + #- redis + #- memcached + #- ftp + ports: + - "8000:80" + - "8443:443" + - "10022:22" + volumes_from: + - storage + env_file: + - etc/environment.yml + - etc/environment.production.yml -####################################### -# MySQL server -####################################### -mysql: - build: docker/mysql - #dockerfile: MySQL-5.5 - dockerfile: MySQL-5.6 - #dockerfile: MySQL-5.7 - #dockerfile: MariaDB-5.5 - #dockerfile: MariaDB-10 - #dockerfile: Percona-5.5 - #dockerfile: Percona-5.6 - volumes_from: - - storage - env_file: - - etc/environment.yml - - etc/environment.production.yml + ####################################### + # MySQL server + ####################################### + mysql: + build: + context: docker/mysql/ + #dockerfile: MySQL-5.5.Dockerfile + dockerfile: MySQL-5.6.Dockerfile + #dockerfile: MySQL-5.7.Dockerfile + #dockerfile: MariaDB-5.5.Dockerfile + #dockerfile: MariaDB-10.Dockerfile + #dockerfile: Percona-5.5.Dockerfile + #dockerfile: Percona-5.6.Dockerfile + #dockerfile: Percona-5.7.Dockerfile + volumes_from: + - storage + env_file: + - etc/environment.yml + - etc/environment.production.yml -####################################### -# PostgreSQL server -####################################### -#postgres: -# build: docker/postgres/ -# volumes_from: -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml + ####################################### + # PostgreSQL server + ####################################### + #postgres: + # build: + # context: docker/postgres/ + # dockerfile: Postgres-9.4.Dockerfile + # dockerfile: Postgres-9.5.Dockerfile + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.production.yml -####################################### -# Solr server -####################################### -#solr: -# build: docker/solr/ -# volumes_from: -# - storage -# environment: -# - SOLR_STORAGE=/storage/solr/server-master/ -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml + ####################################### + # Solr server + ####################################### + #solr: + # build: + # context: docker/solr/ + # volumes_from: + # - storage + # environment: + # - SOLR_STORAGE=/storage/solr/server-master/ + # env_file: + # - etc/environment.yml + # - etc/environment.production.yml -####################################### -# Elasticsearch -####################################### -#elasticsearch: -# build: docker/elasticsearch/ -# volumes_from: -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml + ####################################### + # Elasticsearch + ####################################### + #elasticsearch: + # build: + # context: docker/elasticsearch/ + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.production.yml -####################################### -# Redis -####################################### -#redis: -# build: docker/redis/ -# volumes_from: -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml + ####################################### + # Redis + ####################################### + #redis: + # build: + # context: docker/redis/ + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.production.yml -####################################### -# Memcached -####################################### -#memcached: -# build: docker/memcached/ -# volumes_from: -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml + ####################################### + # Memcached + ####################################### + #memcached: + # build: + # context: docker/memcached/ + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.production.yml -####################################### -# Mailcatcher -####################################### -#mail: -# build: docker/mail/ -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml + ####################################### + # FTP (vsftpd) + ####################################### + #ftp: + # build: + # context: docker/vsftpd/ + # volumes_from: + # - sourcecode + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.production.yml -####################################### -# FTP (vsftpd) -####################################### -#ftp: -# build: docker/vsftpd/ -# volumes_from: -# - sourcecode -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml - -####################################### -# Storage -####################################### -storage: - build: docker/storage/ - volumes: - - /storage + ####################################### + # Storage + ####################################### + storage: + build: + context: docker/storage/ + volumes: + - /storage diff --git a/docker-compose.development.yml b/docker-compose.development.yml index 6c01368..5d07c7e 100644 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -1,150 +1,165 @@ -####################################### -# PHP application Docker container -####################################### -app: - build: . - dockerfile: Dockerfile.development - links: - - mysql - #- postgres - #- mail - #- solr - #- elasticsearch - #- redis - #- memcached - #- ftp - ports: - - "8000:80" - - "8443:443" - - "10022:22" - volumes: - - ./app/:/app/ - - /tmp/debug/:/tmp/debug/ - - ./:/docker/ - volumes_from: - - storage - # cap and privileged needed for slowlog - cap_add: - - SYS_PTRACE - privileged: true - env_file: - - etc/environment.yml - - etc/environment.development.yml +version: '2' +services: + ####################################### + # PHP application Docker container + ####################################### + app: + build: + context: . + dockerfile: Dockerfile.development + links: + - mailcatcher + - mysql + #- postgres + #- solr + #- elasticsearch + #- redis + #- memcached + #- ftp + ports: + - "8000:80" + - "8443:443" + - "10022:22" + volumes: + - ./app/:/app/ + - /tmp/debug/:/tmp/debug/ + - ./:/docker/ + volumes_from: + - storage + # cap and privileged needed for slowlog + cap_add: + - SYS_PTRACE + privileged: true + env_file: + - etc/environment.yml + - etc/environment.development.yml + environment: + - VIRTUAL_HOST=boilerplate.docker -####################################### -# MySQL server -####################################### -mysql: - build: docker/mysql - dockerfile: MySQL-5.5 - #dockerfile: MySQL-5.6 - #dockerfile: MySQL-5.7 - #dockerfile: MariaDB-5.5 - #dockerfile: MariaDB-10 - #dockerfile: Percona-5.5 - #dockerfile: Percona-5.6 - ports: - - 13306:3306 - volumes_from: - - storage - volumes: - - /tmp/debug/:/tmp/debug/ - env_file: - - etc/environment.yml - - etc/environment.development.yml + ####################################### + # MySQL server + ####################################### + mysql: + build: + context: docker/mysql/ + #dockerfile: MySQL-5.5.Dockerfile + dockerfile: MySQL-5.6.Dockerfile + #dockerfile: MySQL-5.7.Dockerfile + #dockerfile: MariaDB-5.5.Dockerfile + #dockerfile: MariaDB-10.Dockerfile + #dockerfile: Percona-5.5.Dockerfile + #dockerfile: Percona-5.6.Dockerfile + #dockerfile: Percona-5.7.Dockerfile + ports: + - 13306:3306 + volumes_from: + - storage + volumes: + - /tmp/debug/:/tmp/debug/ + env_file: + - etc/environment.yml + - etc/environment.development.yml -####################################### -# PostgreSQL server -####################################### -#postgres: -# build: docker/postgres/ -# ports: -# - 15432:5432 -# volumes_from: -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.development.yml + ####################################### + # PostgreSQL server + ####################################### + #postgres: + # build: + # context: docker/postgres/ + # dockerfile: Postgres-9.4.Dockerfile + # dockerfile: Postgres-9.5.Dockerfile + # ports: + # - 15432:5432 + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.development.yml -####################################### -# Solr server -####################################### -#solr: -# build: docker/solr/ -# ports: -# - 18983:8983 -# volumes_from: -# - storage -# environment: -# - SOLR_STORAGE=/storage/solr/server-master/ -# env_file: -# - etc/environment.yml -# - etc/environment.development.yml + ####################################### + # Solr server + ####################################### + #solr: + # build: + # context: docker/solr/ + # ports: + # - 18983:8983 + # volumes_from: + # - storage + # environment: + # - SOLR_STORAGE=/storage/solr/server-master/ + # env_file: + # - etc/environment.yml + # - etc/environment.development.yml -####################################### -# Elasticsearch -####################################### -#elasticsearch: -# build: docker/elasticsearch/ -# ports: -# - 19200:9200 -# - 19300:9300 -# volumes_from: -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.development.yml + ####################################### + # Elasticsearch + ####################################### + #elasticsearch: + # build: + # context: docker/elasticsearch/ + # ports: + # - 19200:9200 + # - 19300:9300 + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.development.yml -####################################### -# Redis -####################################### -#redis: -# build: docker/redis/ -# volumes_from: -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.development.yml + ####################################### + # Redis + ####################################### + #redis: + # build: + # context: docker/redis/ + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.development.yml -####################################### -# Memcached -####################################### -#memcached: -# build: docker/memcached/ -# volumes_from: -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.development.yml + ####################################### + # Memcached + ####################################### + #memcached: + # build: + # context: docker/memcached/ + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.development.yml -####################################### -# Mailcatcher -####################################### -#mail: -# build: docker/mail/ -# ports: -# - 1080:1080 -# env_file: -# - etc/environment.yml -# - etc/environment.development.yml + ####################################### + # Mailcatcher + ####################################### + mailcatcher: + image: schickling/mailcatcher + ports: + - 1080:1080 + environment: + - VIRTUAL_HOST=mailcatcher.docker -####################################### -# FTP (vsftpd) -####################################### -#ftp: -# build: docker/vsftpd/ -# volumes_from: -# - storage -# volumes: -# - ./:/application/ -# env_file: -# - etc/environment.yml -# - etc/environment.development.yml + ####################################### + # FTP (vsftpd) + ####################################### + #ftp: + # build: + # context: docker/vsftpd/ + # volumes_from: + # - storage + # volumes: + # - ./:/application/ + # env_file: + # - etc/environment.yml + # - etc/environment.development.yml -####################################### -# Storage -####################################### -storage: - build: docker/storage/ - volumes: - - /storage + ####################################### + # Storage + ####################################### + storage: + build: + context: docker/storage/ + volumes: + - /storage diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 89398a7..0ff1149 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -1,142 +1,145 @@ -####################################### -# PHP application Docker container -####################################### -app: - build: . - dockerfile: Dockerfile.production - links: - - mysql - #- postgres - #- mail - #- solr - #- elasticsearch - #- redis - #- memcached - #- ftp - ports: - - "8000:80" - - "8443:443" - - "10022:22" - volumes: - - ./app/:/app/ - volumes_from: - - storage - env_file: - - etc/environment.yml - - etc/environment.production.yml +version: '2' +services: + ####################################### + # PHP application Docker container + ####################################### + app: + build: + context: . + dockerfile: Dockerfile.production + links: + - mysql + #- postgres + #- mail + #- solr + #- elasticsearch + #- redis + #- memcached + #- ftp + ports: + - "8000:80" + - "8443:443" + - "10022:22" + volumes: + - ./app/:/app/ + volumes_from: + - storage + env_file: + - etc/environment.yml + - etc/environment.production.yml -####################################### -# MySQL server -####################################### -mysql: - build: docker/mysql - dockerfile: MySQL-5.5 - #dockerfile: MySQL-5.6 - #dockerfile: MySQL-5.7 - #dockerfile: MariaDB-5.5 - #dockerfile: MariaDB-10 - #dockerfile: Percona-5.5 - #dockerfile: Percona-5.6 - volumes_from: - - storage - volumes: - - /tmp/debug/:/tmp/debug/ - env_file: - - etc/environment.yml - - etc/environment.production.yml + ####################################### + # MySQL server + ####################################### + mysql: + build: + context: docker/mysql/ + #dockerfile: MySQL-5.5.Dockerfile + dockerfile: MySQL-5.6.Dockerfile + #dockerfile: MySQL-5.7.Dockerfile + #dockerfile: MariaDB-5.5.Dockerfile + #dockerfile: MariaDB-10.Dockerfile + #dockerfile: Percona-5.5.Dockerfile + #dockerfile: Percona-5.6.Dockerfile + #dockerfile: Percona-5.7.Dockerfile + volumes_from: + - storage + volumes: + - /tmp/debug/:/tmp/debug/ + env_file: + - etc/environment.yml + - etc/environment.production.yml -####################################### -# PostgreSQL server -####################################### -#postgres: -# build: docker/postgres/ -# ports: -# - 15432:5432 -# volumes_from: -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml + ####################################### + # PostgreSQL server + ####################################### + #postgres: + # build: + # context: docker/postgres/ + # dockerfile: Postgres-9.4.Dockerfile + # dockerfile: Postgres-9.5.Dockerfile + # ports: + # - 15432:5432 + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.production.yml -####################################### -# Solr server -####################################### -#solr: -# build: docker/solr/ -# ports: -# - 18983:8983 -# volumes_from: -# - storage -# environment: -# - SOLR_STORAGE=/storage/solr/server-master/ -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml + ####################################### + # Solr server + ####################################### + #solr: + # build: + # context: docker/solr/ + # ports: + # - 18983:8983 + # volumes_from: + # - storage + # environment: + # - SOLR_STORAGE=/storage/solr/server-master/ + # env_file: + # - etc/environment.yml + # - etc/environment.production.yml -####################################### -# Elasticsearch -####################################### -#elasticsearch: -# build: docker/elasticsearch/ -# ports: -# - 19200:9200 -# - 19300:9300 -# volumes_from: -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml + ####################################### + # Elasticsearch + ####################################### + #elasticsearch: + # build: + # context: docker/elasticsearch/ + # ports: + # - 19200:9200 + # - 19300:9300 + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.production.yml -####################################### -# Redis -####################################### -#redis: -# build: docker/redis/ -# volumes_from: -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml + ####################################### + # Redis + ####################################### + #redis: + # build: + # context: docker/redis/ + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.production.yml -####################################### -# Memcached -####################################### -#memcached: -# build: docker/memcached/ -# volumes_from: -# - storage -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml + ####################################### + # Memcached + ####################################### + #memcached: + # build: + # context: docker/memcached/ + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.production.yml -####################################### -# Mailcatcher -####################################### -#mail: -# build: docker/mail/ -# ports: -# - 1080:1080 -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml + ####################################### + # FTP (vsftpd) + ####################################### + #ftp: + # build: + # context: docker/vsftp/ + # volumes_from: + # - storage + # volumes: + # - ./:/application/ + # env_file: + # - etc/environment.yml + # - etc/environment.production.yml -####################################### -# FTP (vsftpd) -####################################### -#ftp: -# build: docker/vsftpd/ -# volumes_from: -# - storage -# volumes: -# - ./:/application/ -# env_file: -# - etc/environment.yml -# - etc/environment.production.yml - -####################################### -# Storage -####################################### -storage: - build: docker/storage/ - volumes: - - /storage + ####################################### + # Storage + ####################################### + storage: + build: + context: docker/storage/ + volumes: + - /storage diff --git a/docker/mail/Dockerfile b/docker/mail/Dockerfile deleted file mode 100644 index 7ad1c26..0000000 --- a/docker/mail/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -#++++++++++++++++++++++++++++++++++++++ -# Mailcatcher Docker container -#++++++++++++++++++++++++++++++++++++++ -# -# Images: -# -# schickling/mailcatcher -# https://hub.docker.com/r/schickling/mailcatcher/ -# -#++++++++++++++++++++++++++++++++++++++ - -FROM schickling/mailcatcher diff --git a/docker/mysql/MariaDB-10 b/docker/mysql/MariaDB-10.Dockerfile similarity index 100% rename from docker/mysql/MariaDB-10 rename to docker/mysql/MariaDB-10.Dockerfile diff --git a/docker/mysql/MariaDB-5.5 b/docker/mysql/MariaDB-5.5.Dockerfile similarity index 100% rename from docker/mysql/MariaDB-5.5 rename to docker/mysql/MariaDB-5.5.Dockerfile diff --git a/docker/mysql/MySQL-5.5 b/docker/mysql/MySQL-5.5.Dockerfile similarity index 100% rename from docker/mysql/MySQL-5.5 rename to docker/mysql/MySQL-5.5.Dockerfile diff --git a/docker/mysql/MySQL-5.6 b/docker/mysql/MySQL-5.6.Dockerfile similarity index 100% rename from docker/mysql/MySQL-5.6 rename to docker/mysql/MySQL-5.6.Dockerfile diff --git a/docker/mysql/MySQL-5.7 b/docker/mysql/MySQL-5.7.Dockerfile similarity index 100% rename from docker/mysql/MySQL-5.7 rename to docker/mysql/MySQL-5.7.Dockerfile diff --git a/docker/mysql/Percona-5.5 b/docker/mysql/Percona-5.5.Dockerfile similarity index 100% rename from docker/mysql/Percona-5.5 rename to docker/mysql/Percona-5.5.Dockerfile diff --git a/docker/mysql/Percona-5.6 b/docker/mysql/Percona-5.6.Dockerfile similarity index 100% rename from docker/mysql/Percona-5.6 rename to docker/mysql/Percona-5.6.Dockerfile diff --git a/docker/mysql/Percona-5.7.Dockerfile b/docker/mysql/Percona-5.7.Dockerfile new file mode 100644 index 0000000..64e87f4 --- /dev/null +++ b/docker/mysql/Percona-5.7.Dockerfile @@ -0,0 +1,14 @@ +#++++++++++++++++++++++++++++++++++++++ +# MySQL Docker container +#++++++++++++++++++++++++++++++++++++++ +# +# Official images: +# +# percona - PerconaDB (MySQL fork) from Percona +# https://hub.docker.com/r/library/percona/ +# +#++++++++++++++++++++++++++++++++++++++ + +FROM percona:5.7 + +ADD conf/mysql-docker.cnf /etc/mysql/conf.d/z99-docker.cnf diff --git a/docker/postgres/Dockerfile b/docker/postgres/Postgres-9.4.Dockerfile similarity index 79% rename from docker/postgres/Dockerfile rename to docker/postgres/Postgres-9.4.Dockerfile index 3bdd7c8..13bd217 100644 --- a/docker/postgres/Dockerfile +++ b/docker/postgres/Postgres-9.4.Dockerfile @@ -5,7 +5,7 @@ # Official images: # # postgres - official PostgreSQL -# https://hub.docker.com/r/library/postgres/ +# https://hub.docker.com/_/postgres/ # #++++++++++++++++++++++++++++++++++++++ diff --git a/docker/postgres/Postgres-9.5.Dockerfile b/docker/postgres/Postgres-9.5.Dockerfile new file mode 100644 index 0000000..feeac5d --- /dev/null +++ b/docker/postgres/Postgres-9.5.Dockerfile @@ -0,0 +1,12 @@ +#++++++++++++++++++++++++++++++++++++++ +# PostgreSQL Docker container +#++++++++++++++++++++++++++++++++++++++ +# +# Official images: +# +# postgres - official PostgreSQL +# https://hub.docker.com/_/postgres/ +# +#++++++++++++++++++++++++++++++++++++++ + +FROM postgres:9.5 diff --git a/etc/application.development.yml b/etc/application.development.yml index 20f6f47..6a4ba22 100644 --- a/etc/application.development.yml +++ b/etc/application.development.yml @@ -1,8 +1,6 @@ --- PROVISION: - systemUpdate: false - install: apacheModPagespeed: false @@ -25,7 +23,7 @@ MAIL: - { user: "root", destination: "root@example.com" } conf: - { variable: "inet_interfaces", value: "loopback-only" } - # - { variable: "relayhost", value: "foobar" } + - { variable: "relayhost", value: "[mailcatcher]:1025" } PHP: fpm: diff --git a/etc/application.environment.yml b/etc/application.environment.yml deleted file mode 100644 index 5de506a..0000000 --- a/etc/application.environment.yml +++ /dev/null @@ -1,31 +0,0 @@ ---- - -DOCKER_ENVIRONMENT: - # Application - TYPO3_CONTEXT: "{{ lookup('env','TYPO3_CONTEXT') }}" - - SYMFONY_ENV: "{{ lookup('env','SYMFONY_ENV') }}" - SYMFONY_DEBUG: "{{ lookup('env','SYMFONY_DEBUG') }}" - - CAKE_ENV: "{{ lookup('env','CAKE_ENV') }}" - - YII_ENVIRONMENT: "{{ lookup('env','YII_ENVIRONMENT') }}" - - # General - CLI_SCRIPT: "{{ lookup('env','CLI_SCRIPT') }}" - MAIL_GATEWAY: "{{ lookup('env','MAIL_GATEWAY') }}" - - # MySQL - MYSQL_ROOT_PASSWORD: "{{ lookup('env','MYSQL_ROOT_PASSWORD') }}" - MYSQL_USER: "{{ lookup('env','MYSQL_USER') }}" - MYSQL_PASSWORD: "{{ lookup('env','MYSQL_PASSWORD') }}" - MYSQL_DATABASE: "{{ lookup('env','MYSQL_DATABASE') }}" - - # Postgres - POSTGRES_USER: "{{ lookup('env','POSTGRES_USER') }}" - POSTGRES_PASSWORD: "{{ lookup('env','POSTGRES_PASSWORD') }}" - - # FTP - FTP_USER: "{{ lookup('env','FTP_USER') }}" - FTP_PASSWORD: "{{ lookup('env','FTP_PASSWORD') }}" - FTP_PATH: "{{ lookup('env','FTP_PATH') }}" diff --git a/etc/application.production.yml b/etc/application.production.yml index 00e29bd..4e3f07f 100644 --- a/etc/application.production.yml +++ b/etc/application.production.yml @@ -1,8 +1,6 @@ --- PROVISION: - systemUpdate: true - install: apacheModPagespeed: false diff --git a/etc/environment.development.yml b/etc/environment.development.yml index 6ee579a..799762d 100644 --- a/etc/environment.development.yml +++ b/etc/environment.development.yml @@ -6,6 +6,11 @@ # to apply them ####################################### +####################################### +# PHP Debugger (xdebug|blackfire|none) + +PHP_DEBUGGER=xdebug + ####################################### # Context environment @@ -21,3 +26,4 @@ CAKE_ENV=dev # yii YII_ENVIRONMENT=Development + diff --git a/etc/environment.yml b/etc/environment.yml index 818aa92..1734d2b 100644 --- a/etc/environment.yml +++ b/etc/environment.yml @@ -39,6 +39,7 @@ MYSQL_DATABASE=database # PostgreSQL settings POSTGRES_USER=dev POSTGRES_PASSWORD=dev +POSTGRES_DATABASE=dev ####################################### # FTP settings diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap.yml index eb4bee1..ed97d53 100644 --- a/provision/roles/boilerplate-main-development/tasks/bootstrap.yml +++ b/provision/roles/boilerplate-main-development/tasks/bootstrap.yml @@ -1,7 +1 @@ --- - -- include: bootstrap/php-blackfire/debian.yml - when: ansible_distribution == 'CentOS' and PROVISION.install.phpBlackfire is defined and PROVISION.install.phpBlackfire - -- include: bootstrap/php-blackfire/redhat.yml - when: ansible_os_family == 'Debian' and PROVISION.install.phpBlackfire is defined and PROVISION.install.phpBlackfire diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/debian.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/debian.yml deleted file mode 100644 index 243bee6..0000000 --- a/provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/debian.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- - -- name: Add blackfire.io key - apt_key: - url: https://packagecloud.io/gpg.key - state: present - -- name: Add blackfire.io repository - apt_repository: - repo: 'deb http://packages.blackfire.io/debian any main' - state: present - update_cache: yes - -- name: Install blackfire-php - apt: - name: '{{ item }}' - state: present - with_items: - - blackfire-php diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/redhat.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/redhat.yml deleted file mode 100644 index 56dcc76..0000000 --- a/provision/roles/boilerplate-main-development/tasks/bootstrap/php-blackfire/redhat.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- - -- name: Add blackfire.io key - rpm_key: - key: https://packagecloud.io/gpg.key - state: present - -- name: Add blackfire.io repository - get_url: - url: http://packages.blackfire.io/fedora/blackfire.repo - dest: /etc/yum.repos.d/blackfire.repo - mode: 0644 - -- name: Disable gpg check for blackfire (CentOS 7 workaround) - lineinfile: - dest: /etc/yum.repos.d/blackfire.repo - regexp: '^repo_gpgcheck=1' - line: 'repo_gpgcheck=0' - when: ansible_distribution == 'CentOS' and ansible_distribution_major_version == '7' - -- name: Install blackfire-php - yum: - name: '{{ item }}' - state: present - with_items: - - blackfire-php diff --git a/provision/roles/boilerplate-main/tasks/bootstrap.yml b/provision/roles/boilerplate-main/tasks/bootstrap.yml index eb3f70a..9e29b8f 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap.yml @@ -9,15 +9,6 @@ # Run tasks ############################# -- include: bootstrap/systemUpdate.centos.yml - when: PROVISION.systemUpdate is defined and PROVISION.systemUpdate and ansible_distribution == 'CentOS' - -- include: bootstrap/systemUpdate.ubuntu.yml - when: PROVISION.systemUpdate is defined and PROVISION.systemUpdate and ansible_distribution == 'Ubuntu' - -- include: bootstrap/composer.yml - when: PROVISION.install.phpComposer is defined and PROVISION.install.phpComposer - - include: bootstrap/services.yml - include: bootstrap/cron.yml diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/composer.yml b/provision/roles/boilerplate-main/tasks/bootstrap/composer.yml deleted file mode 100644 index df8da1e..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/composer.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- - -- stat: path=/usr/local/bin/composer - register: composer_bin - -- name: Update composer (phar) - command: 'composer self-update' - when: composer_bin.stat.exists is defined and composer_bin.stat.exists - ignore_errors: yes - -- name: Install composer (phar) - raw: 'curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer' - when: composer_bin.stat.exists is defined and not composer_bin.stat.exists - diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/php.yml b/provision/roles/boilerplate-main/tasks/bootstrap/php.yml index e0c09b9..8c21955 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/php.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/php.yml @@ -2,13 +2,30 @@ - include_vars: "/opt/docker/etc/application.{{ PROVISION_CONTEXT }}.yml" +############################# +# Stats +############################# + +- stat: + path: /opt/docker/etc/php/fpm/php-fpm.conf + register: phpFpmConf + +- stat: + path: /opt/docker/etc/php/fpm/pool.d/application.conf + register: phpFpmApplicationPool + +############################# +# Tasks +############################# + - name: Configure php-fpm (pool www.conf) lineinfile: dest: "/opt/docker/etc/php/fpm/pool.d/application.conf" regexp: '^[\s;]*{{ item.variable }}[\s]*=' line: '{{ item.variable }} = {{ item.value }}' with_items: "{{ PHP.fpm.conf }}" - when: PHP.fpm.conf is defined and item.value != "" + when: PHP.fpm.conf is defined and item.value != "" and + phpFpmApplicationPool.stat.exists is defined and phpFpmApplicationPool.stat.exists - name: Configure php-fpm (php-fpm.conf) lineinfile: @@ -17,6 +34,7 @@ line: '{{ item.key }} = {{ item.value }}' with_items: - { key: 'daemonize', value: 'no' } + when: phpFpmConf.stat.exists is defined and phpFpmConf.stat.exists - name: Set development environment php.ini file: diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/systemUpdate.centos.yml b/provision/roles/boilerplate-main/tasks/bootstrap/systemUpdate.centos.yml deleted file mode 100644 index 15f1e0b..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/systemUpdate.centos.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- - -- name: Update system packages (yum) ... will take some time - yum: name=* state=latest diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/systemUpdate.ubuntu.yml b/provision/roles/boilerplate-main/tasks/bootstrap/systemUpdate.ubuntu.yml deleted file mode 100644 index f2270d7..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/systemUpdate.ubuntu.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- - -- name: Upgrade system packages (apt-get dist-upgrade) ... will take some time - apt: - upgrade: dist - update_cache: true diff --git a/provision/roles/boilerplate-main/tasks/entrypoint.yml b/provision/roles/boilerplate-main/tasks/entrypoint.yml deleted file mode 100644 index e0224ca..0000000 --- a/provision/roles/boilerplate-main/tasks/entrypoint.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- - -- include: entrypoint/mysql.yml -- include: entrypoint/php.yml diff --git a/provision/roles/boilerplate-main/tasks/entrypoint/mysql.yml b/provision/roles/boilerplate-main/tasks/entrypoint/mysql.yml deleted file mode 100644 index 7072644..0000000 --- a/provision/roles/boilerplate-main/tasks/entrypoint/mysql.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- - -- name: Deploy root my.cnf - template: - src: templates/my.cnf.j2 - dest: /root/.my.cnf - owner: root - group: root - mode: 0644 - -- name: Deploy user my.cnf - template: - src: templates/my.cnf.j2 - dest: /home/.my.cnf - owner: "{{ lookup('env','APPLICATION_USER') }}" - group: "{{ lookup('env','APPLICATION_USER') }}" - mode: 0644 diff --git a/provision/roles/boilerplate-main/tasks/entrypoint/php.yml b/provision/roles/boilerplate-main/tasks/entrypoint/php.yml deleted file mode 100644 index b841d2c..0000000 --- a/provision/roles/boilerplate-main/tasks/entrypoint/php.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- - -- include_vars: "/opt/docker/etc/application.{{ PROVISION_CONTEXT }}.yml" -- include_vars: "/opt/docker/etc/application.environment.yml" - -- name: Configure environment variables from DOCKER_ENVIRONMENT for php-fpm (pool www.conf) - lineinfile: - dest: "/opt/docker/etc/php/fpm/pool.d/application.conf" - regexp: '^env\[{{ item.key }}\][\s]*=' - line: 'env[{{ item.key }}] = "{{ item.value }}"' - with_dict: "{{ DOCKER_ENVIRONMENT }}" - when: DOCKER_ENVIRONMENT is defined and item.value != '' diff --git a/provision/roles/boilerplate-main/tasks/main.yml b/provision/roles/boilerplate-main/tasks/main.yml index 7895a52..1806c1a 100644 --- a/provision/roles/boilerplate-main/tasks/main.yml +++ b/provision/roles/boilerplate-main/tasks/main.yml @@ -3,7 +3,3 @@ - include: bootstrap.yml tags: - bootstrap - -- include: entrypoint.yml - tags: - - entrypoint From 5b3e4de75450b13204a4815576e88023b3bb6d43 Mon Sep 17 00:00:00 2001 From: Tomasz Date: Mon, 4 Jul 2016 12:16:39 +0200 Subject: [PATCH 067/120] Added container configuration and docs for phpMyAdmin --- README.md | 1 + docker-compose.development.yml | 16 ++++++++++++++++ documentation/DOCKER-INFO.md | 2 ++ documentation/SERVICES.md | 10 ++++++++++ 4 files changed, 29 insertions(+) mode change 100644 => 100755 README.md mode change 100644 => 100755 docker-compose.development.yml mode change 100644 => 100755 documentation/DOCKER-INFO.md mode change 100644 => 100755 documentation/SERVICES.md diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 89d4d5f..84f20d0 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ Supports: - Memcached (disabled) - Mailcatcher (if no mail sandbox is used, eg. [Vagrant Development VM](https://github.com/mblaschke/vagrant-development)) - FTP server (vsftpd) +- PhpMyAdmin - maybe more later... This Docker boilerplate is based on the [Docker best practices](https://docs.docker.com/articles/dockerfile_best-practices/) and doesn't use too much magic. Configuration of each docker container is available in the `docker/` directory - feel free to customize. diff --git a/docker-compose.development.yml b/docker-compose.development.yml old mode 100644 new mode 100755 index 6c01368..789cf42 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -141,6 +141,22 @@ mysql: # - etc/environment.yml # - etc/environment.development.yml + +####################################### +# phpMyAdmin +####################################### +# phpmyadmin: +# image: phpmyadmin/phpmyadmin +# links: +# - mysql +# environment: +# - PMA_ARBITRARY=1 +# ports: +# - "8001:80" +# volumes: +# - /sessions +# + ####################################### # Storage ####################################### diff --git a/documentation/DOCKER-INFO.md b/documentation/DOCKER-INFO.md old mode 100644 new mode 100755 index 794679b..70b335d --- a/documentation/DOCKER-INFO.md +++ b/documentation/DOCKER-INFO.md @@ -16,6 +16,7 @@ memcached (optional) | Memcached server redis (optional) | Redis server ftps (optional) | FTP server (vsftpd) mailcatcher (optional) | Mailserver with easy web and REST interface for mailing +phpmyadmin (optional) | Tool written in PHP, intended to handle the administration of MySQL over the Web The `app/` directory will be mounted under `/app` inside `app` container. @@ -32,6 +33,7 @@ memcached (optional) | [Memcached](https://registry.hub.docker.com/_/memcac redis (optional) | [Redis](https://registry.hub.docker.com/_/redis/) *official* ftp (optional) | [Ubuntu](https://registry.hub.docker.com/_/ubuntu/) *official* mailcatcher (optional) | [Mailcatcher](https://registry.hub.docker.com/u/schickling/mailcatcher/) from _schickling_ +phpmyadmin (optional) | [PhpMyAdmin](https://hub.docker.com/r/phpmyadmin/phpmyadmin/) *official* ## Makefile diff --git a/documentation/SERVICES.md b/documentation/SERVICES.md old mode 100644 new mode 100755 index 6dbc64f..1782129 --- a/documentation/SERVICES.md +++ b/documentation/SERVICES.md @@ -81,3 +81,13 @@ Ports | 20,21 User | dev (if not changed in env) Password | dev (if not changed in env) Path | /storage/ftp (if not changed in env) + +### PhpMyAdmin + +Setting | Value +------------- | ------------- +Host | phpmyadmin +Ports | 8001 +Log in server | mysql +Username | dev (if not changed in env, see mysql container configuration) +Password | dev (if not changed in env, see mysql container configuration) From c404311634f05748817f8d5ad080e6cf017bfbb4 Mon Sep 17 00:00:00 2001 From: ChieftainY2k Date: Mon, 4 Jul 2016 12:16:39 +0200 Subject: [PATCH 068/120] config indentation fix --- README.md | 1 + docker-compose.development.yml | 16 ++++++++++++++++ documentation/DOCKER-INFO.md | 2 ++ documentation/SERVICES.md | 10 ++++++++++ 4 files changed, 29 insertions(+) mode change 100644 => 100755 README.md mode change 100644 => 100755 docker-compose.development.yml mode change 100644 => 100755 documentation/DOCKER-INFO.md mode change 100644 => 100755 documentation/SERVICES.md diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 89d4d5f..84f20d0 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ Supports: - Memcached (disabled) - Mailcatcher (if no mail sandbox is used, eg. [Vagrant Development VM](https://github.com/mblaschke/vagrant-development)) - FTP server (vsftpd) +- PhpMyAdmin - maybe more later... This Docker boilerplate is based on the [Docker best practices](https://docs.docker.com/articles/dockerfile_best-practices/) and doesn't use too much magic. Configuration of each docker container is available in the `docker/` directory - feel free to customize. diff --git a/docker-compose.development.yml b/docker-compose.development.yml old mode 100644 new mode 100755 index 6c01368..55ee250 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -141,6 +141,22 @@ mysql: # - etc/environment.yml # - etc/environment.development.yml + +####################################### +# phpMyAdmin +####################################### +#phpmyadmin: +# image: phpmyadmin/phpmyadmin +# links: +# - mysql +# environment: +# - PMA_ARBITRARY=1 +# ports: +# - "8001:80" +# volumes: +# - /sessions + + ####################################### # Storage ####################################### diff --git a/documentation/DOCKER-INFO.md b/documentation/DOCKER-INFO.md old mode 100644 new mode 100755 index 794679b..70b335d --- a/documentation/DOCKER-INFO.md +++ b/documentation/DOCKER-INFO.md @@ -16,6 +16,7 @@ memcached (optional) | Memcached server redis (optional) | Redis server ftps (optional) | FTP server (vsftpd) mailcatcher (optional) | Mailserver with easy web and REST interface for mailing +phpmyadmin (optional) | Tool written in PHP, intended to handle the administration of MySQL over the Web The `app/` directory will be mounted under `/app` inside `app` container. @@ -32,6 +33,7 @@ memcached (optional) | [Memcached](https://registry.hub.docker.com/_/memcac redis (optional) | [Redis](https://registry.hub.docker.com/_/redis/) *official* ftp (optional) | [Ubuntu](https://registry.hub.docker.com/_/ubuntu/) *official* mailcatcher (optional) | [Mailcatcher](https://registry.hub.docker.com/u/schickling/mailcatcher/) from _schickling_ +phpmyadmin (optional) | [PhpMyAdmin](https://hub.docker.com/r/phpmyadmin/phpmyadmin/) *official* ## Makefile diff --git a/documentation/SERVICES.md b/documentation/SERVICES.md old mode 100644 new mode 100755 index 6dbc64f..1782129 --- a/documentation/SERVICES.md +++ b/documentation/SERVICES.md @@ -81,3 +81,13 @@ Ports | 20,21 User | dev (if not changed in env) Password | dev (if not changed in env) Path | /storage/ftp (if not changed in env) + +### PhpMyAdmin + +Setting | Value +------------- | ------------- +Host | phpmyadmin +Ports | 8001 +Log in server | mysql +Username | dev (if not changed in env, see mysql container configuration) +Password | dev (if not changed in env, see mysql container configuration) From d4c5c0e1ef92b007df92dcf02d4a0158a6c1e3f7 Mon Sep 17 00:00:00 2001 From: ChieftainY2k Date: Mon, 4 Jul 2016 16:07:56 +0200 Subject: [PATCH 069/120] VIRTUAL_HOST configuration for phpmyadmin --- docker-compose.development.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index 55ee250..af217aa 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -151,6 +151,7 @@ mysql: # - mysql # environment: # - PMA_ARBITRARY=1 +# - VIRTUAL_HOST=phpmyadmin.local # ports: # - "8001:80" # volumes: From f66bdfbd45cca467cc430b3fbdb05b84e9e34279 Mon Sep 17 00:00:00 2001 From: ChieftainY2k Date: Mon, 4 Jul 2016 16:10:32 +0200 Subject: [PATCH 070/120] VIRTUAL_HOST for phpmyadmin changed to phpmyadmin.docker --- docker-compose.development.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index af217aa..d84e257 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -151,7 +151,7 @@ mysql: # - mysql # environment: # - PMA_ARBITRARY=1 -# - VIRTUAL_HOST=phpmyadmin.local +# - VIRTUAL_HOST=phpmyadmin.docker # ports: # - "8001:80" # volumes: From 321ee47a9a33553c727518e7aa8c907f8d6e6d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hans=20H=C3=B6chtl?= Date: Fri, 9 Sep 2016 23:16:22 +0200 Subject: [PATCH 071/120] [TASK] switch to mailhog (#50) Mailhog is written in go and has a much lower footprint than mailcatcher. It also offers an API to automatically check for mails in tests and it doesn't randomly stack up memory usage and crash. --- docker-compose.development.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index 5681ade..af391fb 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -8,7 +8,7 @@ services: context: . dockerfile: Dockerfile.development links: - - mailcatcher + - mailhog - mysql #- postgres #- solr @@ -132,14 +132,14 @@ services: # - etc/environment.development.yml ####################################### - # Mailcatcher + # Mailhog ####################################### - mailcatcher: - image: schickling/mailcatcher + mailhog: + image: mailhog/mailhog ports: - - 1080:1080 + - 8025:8025 environment: - - VIRTUAL_HOST=mailcatcher.docker + - VIRTUAL_HOST=mailhog.docker ####################################### # FTP (vsftpd) From 8857653b06a94d316dcf1c7cbbd39b32fc4413b0 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 25 Sep 2016 15:37:03 +0200 Subject: [PATCH 072/120] Improve http proxy support for development --- docker-compose.development.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index af391fb..e9d3171 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -34,7 +34,8 @@ services: - etc/environment.yml - etc/environment.development.yml environment: - - VIRTUAL_HOST=boilerplate.docker + - VIRTUAL_HOST=.app.boilerplate.docker + - VIRTUAL_PORT=80 ####################################### # MySQL server @@ -91,6 +92,9 @@ services: # env_file: # - etc/environment.yml # - etc/environment.development.yml + # environment: + # - VIRTUAL_HOST=solr.boilerplate.docker + # - VIRTUAL_PORT=8983 ####################################### # Elasticsearch @@ -106,6 +110,9 @@ services: # env_file: # - etc/environment.yml # - etc/environment.development.yml + # environment: + # - VIRTUAL_HOST=elasticsearch.boilerplate.docker + # - VIRTUAL_PORT=9200 ####################################### # Redis @@ -139,7 +146,8 @@ services: ports: - 8025:8025 environment: - - VIRTUAL_HOST=mailhog.docker + - VIRTUAL_HOST=mail.boilerplate.docker + - VIRTUAL_PORT=8025 ####################################### # FTP (vsftpd) @@ -164,7 +172,8 @@ services: # - mysql # environment: # - PMA_ARBITRARY=1 - # - VIRTUAL_HOST=phpmyadmin.docker + # - VIRTUAL_HOST=pma.boilerplate.docker + # - VIRTUAL_PORT=80 # ports: # - "8001:80" # volumes: From 46ba345e0303073e75473fd154d5e074d87aaf7a Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 25 Sep 2016 15:45:00 +0200 Subject: [PATCH 073/120] Update documentation --- .../docs/content/gettingStarted/index.rst | 29 +++++++++++++++++-- documentation/docs/content/introduction.rst | 5 ++-- .../docs/content/usage/dockerCompose.rst | 4 ++- .../docs/content/usage/dockerImages.rst | 9 +++--- .../docs/content/usage/vagrantDockerVM.rst | 7 ++++- 5 files changed, 42 insertions(+), 12 deletions(-) diff --git a/documentation/docs/content/gettingStarted/index.rst b/documentation/docs/content/gettingStarted/index.rst index 47322f6..38f6a07 100644 --- a/documentation/docs/content/gettingStarted/index.rst +++ b/documentation/docs/content/gettingStarted/index.rst @@ -6,16 +6,39 @@ Getting Started Requirements ------------ -This section is not done yet! +* Docker host (eg. Vagrant Docker VM or dinghy) +* Docker compose ------------ Installation ------------ -This section is not done yet! +Clone the boilerplate and link or copy ``docker-compose.development.yml`` + +.. code-block:: bash + + git clone https://github.com/webdevops/php-docker-boilerplate.git project + cd project + cp docker-compose.development.yml docker-compose.yml ----- Usage ----- -This section is not done yet! +Startup containers and run the services: + +.. code-block:: bash + + docker-compose up -d + +------------------------------ +Web access (dinghy http proxy) +------------------------------ + +If you're using dinghy docker](https://github.com/codekitchen/dinghy) you can access the services via + +- Application: http://app.boilerplate.docker/ +- Mailhog: http://mail.boilerplate.docker +- PHPMyAdmin: http://pma.boilerplate.docker +- Solr: http://solr.boilerplate.docker +- Elasticsearch: http://elasticsearch.boilerplate.docker diff --git a/documentation/docs/content/introduction.rst b/documentation/docs/content/introduction.rst index a4a54bc..e9e4a87 100644 --- a/documentation/docs/content/introduction.rst +++ b/documentation/docs/content/introduction.rst @@ -2,10 +2,9 @@ Introduction ============ -Introduction Content - --------------------------------------- What is the PHP Docker Boilerplate for? --------------------------------------- -This section is not done yet! +This PHP Docker Boilerplate is for an example layout for an PHP application with most common services like MySQL or +Postgres and with a development and production context and settings. diff --git a/documentation/docs/content/usage/dockerCompose.rst b/documentation/docs/content/usage/dockerCompose.rst index 788101b..012302e 100644 --- a/documentation/docs/content/usage/dockerCompose.rst +++ b/documentation/docs/content/usage/dockerCompose.rst @@ -2,4 +2,6 @@ Docker Compose Configuration ============================ -This section is not done yet! +Inside the `docker-compose.*.yml` files the service layout and links between the layout can be defined. + +For some services also the version can be chosen, eg. `MySQL-5.7.Dockerfile` diff --git a/documentation/docs/content/usage/dockerImages.rst b/documentation/docs/content/usage/dockerImages.rst index 45c15a6..dcda8ad 100644 --- a/documentation/docs/content/usage/dockerImages.rst +++ b/documentation/docs/content/usage/dockerImages.rst @@ -1,5 +1,6 @@ -====================== -Altering Docker Images -====================== +========================= +Customizing Docker Images +========================= + +The main `Dockerfile.*` for the php application container can be customized as any normal Dockerfile image. -This section is not done yet! diff --git a/documentation/docs/content/usage/vagrantDockerVM.rst b/documentation/docs/content/usage/vagrantDockerVM.rst index a7f7284..b0e7e7c 100644 --- a/documentation/docs/content/usage/vagrantDockerVM.rst +++ b/documentation/docs/content/usage/vagrantDockerVM.rst @@ -2,4 +2,9 @@ Synergy with Vagrant Docker VM ============================== -This section is not done yet! +The [Vagrant Docker VM](https://github.com/webdevops/vagrant-docker-vm) (Ubuntu 16.04) is using +[dinghy docker](https://github.com/codekitchen/dinghy) for providing an automatic and dynamic reverse proxy +which makes easy to start multiple instances of the boilerplate. + +You can also use [dinghy docker](https://github.com/codekitchen/dinghy) standalone if you don't need +an full Linux environment. From 5b13a367063236efc3ca50955e731beb356e8e5b Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Mon, 26 Sep 2016 22:06:02 +0200 Subject: [PATCH 074/120] Fix crontab permission issue Fixes webdevops/Dockerfile#136 --- provision/roles/boilerplate-main/tasks/bootstrap/cron.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/cron.yml b/provision/roles/boilerplate-main/tasks/bootstrap/cron.yml index f757621..4e9ee0e 100644 --- a/provision/roles/boilerplate-main/tasks/bootstrap/cron.yml +++ b/provision/roles/boilerplate-main/tasks/bootstrap/cron.yml @@ -6,6 +6,13 @@ dest: '/etc/cron.d/docker-boilerplate' state: link force: yes + mode: '0644' + +- name: Permissions of crontab + file: + path: '/opt/docker/etc/cron/crontab' + state: touch + mode: '0644' - name: Add newline to crontab raw: 'echo >> /opt/docker/etc/crontab' From cf6b47b853fc32c6e434344a1e1d0ebb5efa5123 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 18 Oct 2016 22:45:26 +0200 Subject: [PATCH 075/120] Release version 5.2.0-beta1 --- CHANGELOG.md | 11 +++++++++++ README.md | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9290a2e..d7948ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,17 @@ PHP Docker Boilerplate Changelog ================================== +5.2.0-beta1 - 2016-10-18 +------------------------ +- Add dinghy/dory support +- Switch to mailhog instead of mailcatcher +- Add phpmyadmin +- Switch to ubuntu 16.04 as default +- docker-compose.yml is now using version 2 +- PHP debugger can now be switched with variable +- Add PostgreSQL 9.5 +- Some minor fixes and cleanups + 5.1.3 - 2016-05-25 ------------------ - Fix nginx vhost configuration (modular WebDevOps image design) diff --git a/README.md b/README.md index 174d55e..9187c2c 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![PHP Docker Boilerplate](https://static.webdevops.io/php-docker-boilerplate.svg) -[![latest v5.1.3](https://img.shields.io/badge/latest-v5.1.3-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.1.3) +[![latest v5.2.0-beta1](https://img.shields.io/badge/latest-v5.2.0-beta1-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.2.0-beta1) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat) This is an easy customizable docker boilerplate for any PHP-based projects like _Symfony Framework_, _CakePHP_, _Yii_ and many other frameworks or applications. From 61125d15daa48f2b5a0f6cb4f6c7aa37be3c8bf6 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 10 Nov 2016 23:04:46 +0100 Subject: [PATCH 076/120] Remove relayhost --- etc/application.development.yml | 1 - etc/application.production.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/etc/application.development.yml b/etc/application.development.yml index 6a4ba22..5e8c785 100644 --- a/etc/application.development.yml +++ b/etc/application.development.yml @@ -23,7 +23,6 @@ MAIL: - { user: "root", destination: "root@example.com" } conf: - { variable: "inet_interfaces", value: "loopback-only" } - - { variable: "relayhost", value: "[mailcatcher]:1025" } PHP: fpm: diff --git a/etc/application.production.yml b/etc/application.production.yml index 4e3f07f..1b7d428 100644 --- a/etc/application.production.yml +++ b/etc/application.production.yml @@ -23,7 +23,6 @@ MAIL: - { user: "root", destination: "root@example.com" } conf: - { variable: "inet_interfaces", value: "loopback-only" } - # - { variable: "relayhost", value: "foobar" } PHP: fpm: From 7068a4dee4e262930f35de3f7b8fad1283f3ece4 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 10 Nov 2016 23:50:12 +0100 Subject: [PATCH 077/120] Disable ports by default --- docker-compose.development.yml | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index e9d3171..54dc737 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -16,10 +16,10 @@ services: #- redis #- memcached #- ftp - ports: - - "8000:80" - - "8443:443" - - "10022:22" + #ports: + # - "8000:80" + # - "8443:443" + # - "10022:22" volumes: - ./app/:/app/ - /tmp/debug/:/tmp/debug/ @@ -83,8 +83,6 @@ services: #solr: # build: # context: docker/solr/ - # ports: - # - 18983:8983 # volumes_from: # - storage # environment: @@ -139,13 +137,14 @@ services: # - etc/environment.development.yml ####################################### - # Mailhog + # Mail ####################################### + # Mailhog mailhog: - image: mailhog/mailhog - ports: - - 8025:8025 - environment: + image: mailhog/mailhog + ports: + - 8025:8025 + environment: - VIRTUAL_HOST=mail.boilerplate.docker - VIRTUAL_PORT=8025 @@ -174,8 +173,6 @@ services: # - PMA_ARBITRARY=1 # - VIRTUAL_HOST=pma.boilerplate.docker # - VIRTUAL_PORT=80 - # ports: - # - "8001:80" # volumes: # - /sessions From dfad9a9a9906bc482916f6bedbfe2bfa8c42cfca Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 10 Nov 2016 23:50:46 +0100 Subject: [PATCH 078/120] Add mailcatcher and mail-sandbox along with mailhog Renamed mailhog container to mail --- docker-compose.development.yml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index 54dc737..a775024 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -8,7 +8,7 @@ services: context: . dockerfile: Dockerfile.development links: - - mailhog + - mail - mysql #- postgres #- solr @@ -140,7 +140,7 @@ services: # Mail ####################################### # Mailhog - mailhog: + mail: image: mailhog/mailhog ports: - 8025:8025 @@ -148,6 +148,21 @@ services: - VIRTUAL_HOST=mail.boilerplate.docker - VIRTUAL_PORT=8025 + # Mailcatcher + #mail: + # image: schickling/mailcatcher + # environment: + # - VIRTUAL_HOST=mail.boilerplate.docker + # - VIRTUAL_PORT=1080 + + + # Mailsandbox + #mail: + # image: webdevops/mail-sandbox + # environment: + # - VIRTUAL_HOST=mail.boilerplate.docker + # - VIRTUAL_PORT=80 + ####################################### # FTP (vsftpd) ####################################### From a942f12766141c6ab1504b0bd3cb59cad105def6 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 10 Nov 2016 23:51:00 +0100 Subject: [PATCH 079/120] Add POSTFIX_RELAYHOST default to mail container --- docker-compose.development.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index a775024..265d90c 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -36,6 +36,8 @@ services: environment: - VIRTUAL_HOST=.app.boilerplate.docker - VIRTUAL_PORT=80 + - POSTFIX_RELAYHOST=[mail]:1025 + ####################################### # MySQL server From 1ff3a063a864e16adb029948b999c0dbe69b5797 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 10 Nov 2016 23:52:21 +0100 Subject: [PATCH 080/120] Fix typo --- docker-compose.development.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index 265d90c..aa4bed1 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -144,7 +144,7 @@ services: # Mailhog mail: image: mailhog/mailhog - ports: + ports: - 8025:8025 environment: - VIRTUAL_HOST=mail.boilerplate.docker From 1d306e4d9b3a7f5d913646e12727829dbd31aea4 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 10 Nov 2016 23:52:45 +0100 Subject: [PATCH 081/120] Disable mailhog port by default --- docker-compose.development.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index aa4bed1..ae1484c 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -144,8 +144,8 @@ services: # Mailhog mail: image: mailhog/mailhog - ports: - - 8025:8025 + # ports: + # - 8025:8025 environment: - VIRTUAL_HOST=mail.boilerplate.docker - VIRTUAL_PORT=8025 From ec9abf1b8550a4dc1faa2e9906359a12dd19b4fd Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 17 Nov 2016 00:59:40 +0100 Subject: [PATCH 082/120] Fix solr environment variable Duplicate environment section --- docker-compose.development.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index ae1484c..02e8887 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -87,12 +87,11 @@ services: # context: docker/solr/ # volumes_from: # - storage - # environment: - # - SOLR_STORAGE=/storage/solr/server-master/ # env_file: # - etc/environment.yml # - etc/environment.development.yml # environment: + # - SOLR_STORAGE=/storage/solr/server-master/ # - VIRTUAL_HOST=solr.boilerplate.docker # - VIRTUAL_PORT=8983 From 27c068b39a691a993552c84d5d2847a53a08ee7d Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 6 Dec 2016 23:29:26 +0100 Subject: [PATCH 083/120] Release 5.2.0-beta2 --- CHANGELOG.md | 6 ++++++ README.md | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7948ee..cb840d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ PHP Docker Boilerplate Changelog ================================== +5.2.0-beta1 - 2016-12-06 +------------------------ +- Remove port exposures +- DEV: Redirect all mails to mailcatcher (see environment var POSTFIX_RELAYHOST) +- Add mail-sandbox with roundcube + 5.2.0-beta1 - 2016-10-18 ------------------------ - Add dinghy/dory support diff --git a/README.md b/README.md index 9187c2c..b484d58 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![PHP Docker Boilerplate](https://static.webdevops.io/php-docker-boilerplate.svg) -[![latest v5.2.0-beta1](https://img.shields.io/badge/latest-v5.2.0-beta1-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.2.0-beta1) +[![latest v5.2.0-beta2](https://img.shields.io/badge/latest-v5.2.0-beta2-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.2.0-beta2) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat) This is an easy customizable docker boilerplate for any PHP-based projects like _Symfony Framework_, _CakePHP_, _Yii_ and many other frameworks or applications. From 0f4ba12d25bbd8b014deff645b71ca4d2fa4c7bc Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Fri, 30 Dec 2016 20:28:39 +0100 Subject: [PATCH 084/120] Remove /tmp/debug --- docker-compose.development.yml | 3 --- docker-compose.production.yml | 2 -- 2 files changed, 5 deletions(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index 02e8887..994b5df 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -22,7 +22,6 @@ services: # - "10022:22" volumes: - ./app/:/app/ - - /tmp/debug/:/tmp/debug/ - ./:/docker/ volumes_from: - storage @@ -57,8 +56,6 @@ services: - 13306:3306 volumes_from: - storage - volumes: - - /tmp/debug/:/tmp/debug/ env_file: - etc/environment.yml - etc/environment.development.yml diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 0ff1149..66e903d 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -44,8 +44,6 @@ services: #dockerfile: Percona-5.7.Dockerfile volumes_from: - storage - volumes: - - /tmp/debug/:/tmp/debug/ env_file: - etc/environment.yml - etc/environment.production.yml From a3a388cb1a5a27574fe3ed63e0fbd65aa1a935bc Mon Sep 17 00:00:00 2001 From: Guillaume Camus Date: Sun, 15 Jan 2017 14:07:55 +0100 Subject: [PATCH 085/120] Fix command line for mysql-backup (#52) * :ambulance: :snowflake: Fix command line for mysql-backup * Fix space in password --- bin/backup.sh | 3 ++- etc/environment.yml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) mode change 100755 => 100644 bin/backup.sh diff --git a/bin/backup.sh b/bin/backup.sh old mode 100755 new mode 100644 index 30fc9f6..3a1d3c5 --- a/bin/backup.sh +++ b/bin/backup.sh @@ -26,7 +26,8 @@ case "$1" in fi logMsg "Starting MySQL backup..." - dockerExec mysqldump --opt --single-transaction --events --all-databases --routines --comments | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" + source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/../etc/environment.yml" + dockerExec mysqldump -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" --opt --single-transaction --events --all-databases --routines --comments | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" logMsg "Finished" else echo " * Skipping mysql backup, no such container" diff --git a/etc/environment.yml b/etc/environment.yml index 1734d2b..f57d7c0 100644 --- a/etc/environment.yml +++ b/etc/environment.yml @@ -12,7 +12,7 @@ # General WEB_DOCUMENT_ROOT=/app/ WEB_DOCUMENT_INDEX=index.php -CLI_SCRIPT=php /app/index.php +CLI_SCRIPT="php /app/index.php" ####################################### # SSH settings From a7bc2b389eb65ebdcad78747f4b6f8addf377d7b Mon Sep 17 00:00:00 2001 From: Guillaume Camus Date: Wed, 18 Jan 2017 23:41:13 +0100 Subject: [PATCH 086/120] :ambulance: Fix Mysl restore cmd (#54) --- bin/restore.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/restore.sh b/bin/restore.sh index 66a08da..83f3d1d 100755 --- a/bin/restore.sh +++ b/bin/restore.sh @@ -22,8 +22,9 @@ case "$1" in if [[ -n "$(dockerContainerId mysql)" ]]; then if [ -f "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" ]; then logMsg "Starting MySQL restore..." - bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExec mysql - echo "FLUSH PRIVILEGES;" | dockerExec mysql + source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/../etc/environment.yml" + bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExec mysql -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" + echo "FLUSH PRIVILEGES;" | dockerExec mysql -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" logMsg "Finished" else errorMsg "MySQL backup file not found" From 704383c28a0f41641832b1c325206005a3d8073d Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 18 Jan 2017 23:44:14 +0100 Subject: [PATCH 087/120] Reverted docker-compose.development.yml Introducted docker-compose.development-proxy.yml instead --- docker-compose.development-proxy.yml | 199 +++++++++++++++++++++++++++ docker-compose.development.yml | 8 +- 2 files changed, 203 insertions(+), 4 deletions(-) create mode 100755 docker-compose.development-proxy.yml diff --git a/docker-compose.development-proxy.yml b/docker-compose.development-proxy.yml new file mode 100755 index 0000000..bb35f8a --- /dev/null +++ b/docker-compose.development-proxy.yml @@ -0,0 +1,199 @@ +version: '2' +services: + ####################################### + # PHP application Docker container + ####################################### + app: + build: + context: . + dockerfile: Dockerfile.development + links: + - mail + - mysql + #- postgres + #- solr + #- elasticsearch + #- redis + #- memcached + #- ftp + #ports: + # - "8000:80" + # - "8443:443" + # - "10022:22" + volumes: + - ./app/:/app/ + - ./:/docker/ + volumes_from: + - storage + # cap and privileged needed for slowlog + cap_add: + - SYS_PTRACE + privileged: true + env_file: + - etc/environment.yml + - etc/environment.development.yml + environment: + - VIRTUAL_HOST=.app.boilerplate.docker + - VIRTUAL_PORT=80 + - POSTFIX_RELAYHOST=[mail]:1025 + + + ####################################### + # MySQL server + ####################################### + mysql: + build: + context: docker/mysql/ + #dockerfile: MySQL-5.5.Dockerfile + dockerfile: MySQL-5.6.Dockerfile + #dockerfile: MySQL-5.7.Dockerfile + #dockerfile: MariaDB-5.5.Dockerfile + #dockerfile: MariaDB-10.Dockerfile + #dockerfile: Percona-5.5.Dockerfile + #dockerfile: Percona-5.6.Dockerfile + #dockerfile: Percona-5.7.Dockerfile + #ports: + # - 13306:3306 + volumes_from: + - storage + env_file: + - etc/environment.yml + - etc/environment.development.yml + + ####################################### + # PostgreSQL server + ####################################### + #postgres: + # build: + # context: docker/postgres/ + # dockerfile: Postgres-9.4.Dockerfile + # dockerfile: Postgres-9.5.Dockerfile + # ports: + # - 15432:5432 + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.development.yml + + ####################################### + # Solr server + ####################################### + #solr: + # build: + # context: docker/solr/ + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.development.yml + # environment: + # - SOLR_STORAGE=/storage/solr/server-master/ + # - VIRTUAL_HOST=solr.boilerplate.docker + # - VIRTUAL_PORT=8983 + + ####################################### + # Elasticsearch + ####################################### + #elasticsearch: + # build: + # context: docker/elasticsearch/ + # ports: + # - 19200:9200 + # - 19300:9300 + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.development.yml + # environment: + # - VIRTUAL_HOST=elasticsearch.boilerplate.docker + # - VIRTUAL_PORT=9200 + + ####################################### + # Redis + ####################################### + #redis: + # build: + # context: docker/redis/ + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.development.yml + + ####################################### + # Memcached + ####################################### + #memcached: + # build: + # context: docker/memcached/ + # volumes_from: + # - storage + # env_file: + # - etc/environment.yml + # - etc/environment.development.yml + + ####################################### + # Mail + ####################################### + # Mailhog + mail: + image: mailhog/mailhog + # ports: + # - 8025:8025 + environment: + - VIRTUAL_HOST=mail.boilerplate.docker + - VIRTUAL_PORT=8025 + + # Mailcatcher + #mail: + # image: schickling/mailcatcher + # environment: + # - VIRTUAL_HOST=mail.boilerplate.docker + # - VIRTUAL_PORT=1080 + + + # Mailsandbox + #mail: + # image: webdevops/mail-sandbox + # environment: + # - VIRTUAL_HOST=mail.boilerplate.docker + # - VIRTUAL_PORT=80 + + ####################################### + # FTP (vsftpd) + ####################################### + #ftp: + # build: + # context: docker/vsftpd/ + # volumes_from: + # - storage + # volumes: + # - ./:/application/ + # env_file: + # - etc/environment.yml + # - etc/environment.development.yml + + ####################################### + # phpMyAdmin + ####################################### + #phpmyadmin: + # image: phpmyadmin/phpmyadmin + # links: + # - mysql + # environment: + # - PMA_ARBITRARY=1 + # - VIRTUAL_HOST=pma.boilerplate.docker + # - VIRTUAL_PORT=80 + # volumes: + # - /sessions + + ####################################### + # Storage + ####################################### + storage: + build: + context: docker/storage/ + volumes: + - /storage diff --git a/docker-compose.development.yml b/docker-compose.development.yml index 994b5df..c8a0237 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -16,10 +16,10 @@ services: #- redis #- memcached #- ftp - #ports: - # - "8000:80" - # - "8443:443" - # - "10022:22" + ports: + - "8000:80" + - "8443:443" + - "10022:22" volumes: - ./app/:/app/ - ./:/docker/ From 6dde2d0da47ac44ee23f3b4767e666dbc9b6e40d Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 19 Jan 2017 00:13:26 +0100 Subject: [PATCH 088/120] Rename docker-compose file with reverse proxy usage --- ...ment-proxy.yml => docker-compose.development-reverse-proxy.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docker-compose.development-proxy.yml => docker-compose.development-reverse-proxy.yml (100%) diff --git a/docker-compose.development-proxy.yml b/docker-compose.development-reverse-proxy.yml similarity index 100% rename from docker-compose.development-proxy.yml rename to docker-compose.development-reverse-proxy.yml From 94f1f2d632a7c2569e6ce406fbd68e7605aab5a8 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 19 Jan 2017 00:18:19 +0100 Subject: [PATCH 089/120] Release 5.2.0-beta3 --- CHANGELOG.md | 7 ++++++- README.md | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb840d7..092f357 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,12 @@ PHP Docker Boilerplate Changelog ================================== -5.2.0-beta1 - 2016-12-06 +5.2.0-beta3 - 2017-01-18 +------------------------ +- Reverted changes in docker-compose.development.yml (ports) +- Introducted docker-compose.development-reverse-proxy.yml for reverse proxy usage + +5.2.0-beta2 - 2016-12-06 ------------------------ - Remove port exposures - DEV: Redirect all mails to mailcatcher (see environment var POSTFIX_RELAYHOST) diff --git a/README.md b/README.md index b484d58..d2f07ae 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![PHP Docker Boilerplate](https://static.webdevops.io/php-docker-boilerplate.svg) -[![latest v5.2.0-beta2](https://img.shields.io/badge/latest-v5.2.0-beta2-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.2.0-beta2) +[![latest v5.2.0-beta3](https://img.shields.io/badge/latest-v5.2.0_beta3-green.svg?style=flat)](https://github.com/webdevops/php-docker-boilerplate/releases/tag/5.2.0-beta3) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat) This is an easy customizable docker boilerplate for any PHP-based projects like _Symfony Framework_, _CakePHP_, _Yii_ and many other frameworks or applications. From 2328bc7fb0e0f9fcc46d20da0c01e426d37b0044 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Tue, 14 Feb 2017 20:49:55 +0100 Subject: [PATCH 090/120] Use mysql container for backup/restore --- bin/.config.sh | 4 ++++ bin/backup.sh | 2 +- bin/restore.sh | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bin/.config.sh b/bin/.config.sh index 778961d..ea0e7f8 100755 --- a/bin/.config.sh +++ b/bin/.config.sh @@ -61,6 +61,10 @@ dockerExec() { docker exec -i "$(docker-compose ps -q app)" $@ } +dockerExecMySQL() { + docker exec -i "$(docker-compose ps -q mysql)" $@ +} + dockerCopyFrom() { PATH_DOCKER="$1" PATH_HOST="$2" diff --git a/bin/backup.sh b/bin/backup.sh index 3a1d3c5..391bd71 100644 --- a/bin/backup.sh +++ b/bin/backup.sh @@ -27,7 +27,7 @@ case "$1" in logMsg "Starting MySQL backup..." source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/../etc/environment.yml" - dockerExec mysqldump -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" --opt --single-transaction --events --all-databases --routines --comments | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" + dockerExecMySQL mysqldump -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" --opt --single-transaction --events --all-databases --routines --comments | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" logMsg "Finished" else echo " * Skipping mysql backup, no such container" diff --git a/bin/restore.sh b/bin/restore.sh index 83f3d1d..5aa36e3 100755 --- a/bin/restore.sh +++ b/bin/restore.sh @@ -23,7 +23,7 @@ case "$1" in if [ -f "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" ]; then logMsg "Starting MySQL restore..." source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/../etc/environment.yml" - bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExec mysql -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" + bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExecMySQL mysql -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" echo "FLUSH PRIVILEGES;" | dockerExec mysql -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" logMsg "Finished" else From 11eada621a2663a02cd9685e21ddf4d28e581c4f Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Wed, 15 Feb 2017 22:08:06 +0100 Subject: [PATCH 091/120] Replace source with automatic MYSQL_ROOT_PASSWORD fetching --- bin/.config.sh | 4 ++-- bin/backup.sh | 2 +- bin/restore.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/.config.sh b/bin/.config.sh index ea0e7f8..b393a9a 100755 --- a/bin/.config.sh +++ b/bin/.config.sh @@ -58,11 +58,11 @@ dockerContainerId() { } dockerExec() { - docker exec -i "$(docker-compose ps -q app)" $@ + docker exec -i "$(docker-compose ps -q app)" "$@" } dockerExecMySQL() { - docker exec -i "$(docker-compose ps -q mysql)" $@ + docker exec -i "$(docker-compose ps -q mysql)" "$@" } dockerCopyFrom() { diff --git a/bin/backup.sh b/bin/backup.sh index 391bd71..788f54c 100644 --- a/bin/backup.sh +++ b/bin/backup.sh @@ -26,7 +26,7 @@ case "$1" in fi logMsg "Starting MySQL backup..." - source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/../etc/environment.yml" + MYSQL_ROOT_PASSWORD=$(dockerExecMySQL bash -c 'printf $MYSQL_ROOT_PASSWORD') dockerExecMySQL mysqldump -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" --opt --single-transaction --events --all-databases --routines --comments | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" logMsg "Finished" else diff --git a/bin/restore.sh b/bin/restore.sh index 5aa36e3..15897b7 100755 --- a/bin/restore.sh +++ b/bin/restore.sh @@ -22,7 +22,7 @@ case "$1" in if [[ -n "$(dockerContainerId mysql)" ]]; then if [ -f "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" ]; then logMsg "Starting MySQL restore..." - source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/../etc/environment.yml" + MYSQL_ROOT_PASSWORD=$(dockerExecMySQL bash -c 'printf $MYSQL_ROOT_PASSWORD') bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExecMySQL mysql -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" echo "FLUSH PRIVILEGES;" | dockerExec mysql -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" logMsg "Finished" From 2f72a2f83db0ce1d1a5013f34baa96110c137084 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sat, 18 Feb 2017 17:00:40 +0100 Subject: [PATCH 092/120] Use printenf for fetching MYSQL_ROOT_PASSWD --- bin/backup.sh | 2 +- bin/restore.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/backup.sh b/bin/backup.sh index 788f54c..9e1e54c 100644 --- a/bin/backup.sh +++ b/bin/backup.sh @@ -26,7 +26,7 @@ case "$1" in fi logMsg "Starting MySQL backup..." - MYSQL_ROOT_PASSWORD=$(dockerExecMySQL bash -c 'printf $MYSQL_ROOT_PASSWORD') + MYSQL_ROOT_PASSWORD=$(dockerExecMySQL printenv MYSQL_ROOT_PASSWORD) dockerExecMySQL mysqldump -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" --opt --single-transaction --events --all-databases --routines --comments | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" logMsg "Finished" else diff --git a/bin/restore.sh b/bin/restore.sh index 15897b7..30498e1 100755 --- a/bin/restore.sh +++ b/bin/restore.sh @@ -22,7 +22,7 @@ case "$1" in if [[ -n "$(dockerContainerId mysql)" ]]; then if [ -f "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" ]; then logMsg "Starting MySQL restore..." - MYSQL_ROOT_PASSWORD=$(dockerExecMySQL bash -c 'printf $MYSQL_ROOT_PASSWORD') + MYSQL_ROOT_PASSWORD=$(dockerExecMySQL printenv MYSQL_ROOT_PASSWORD) bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExecMySQL mysql -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" echo "FLUSH PRIVILEGES;" | dockerExec mysql -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" logMsg "Finished" From 22ffc842c4815bf5585682e294f93d21d4edcade Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sat, 18 Feb 2017 17:00:49 +0100 Subject: [PATCH 093/120] Fix mysql password warning --- bin/backup.sh | 2 +- bin/restore.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/backup.sh b/bin/backup.sh index 9e1e54c..002f857 100644 --- a/bin/backup.sh +++ b/bin/backup.sh @@ -27,7 +27,7 @@ case "$1" in logMsg "Starting MySQL backup..." MYSQL_ROOT_PASSWORD=$(dockerExecMySQL printenv MYSQL_ROOT_PASSWORD) - dockerExecMySQL mysqldump -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" --opt --single-transaction --events --all-databases --routines --comments | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" + dockerExecMySQL sh -c "MYSQL_PWD=\"${MYSQL_ROOT_PASSWORD}\" mysqldump -h mysql -uroot --opt --single-transaction --events --all-databases --routines --comments" | bzip2 > "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" logMsg "Finished" else echo " * Skipping mysql backup, no such container" diff --git a/bin/restore.sh b/bin/restore.sh index 30498e1..9a5e839 100755 --- a/bin/restore.sh +++ b/bin/restore.sh @@ -23,8 +23,8 @@ case "$1" in if [ -f "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" ]; then logMsg "Starting MySQL restore..." MYSQL_ROOT_PASSWORD=$(dockerExecMySQL printenv MYSQL_ROOT_PASSWORD) - bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExecMySQL mysql -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" - echo "FLUSH PRIVILEGES;" | dockerExec mysql -h mysql -u root -p"${MYSQL_ROOT_PASSWORD}" + bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExecMySQL sh -c "MYSQL_PWD=\"${MYSQL_ROOT_PASSWORD}\" mysql -h mysql -uroot" + echo "FLUSH PRIVILEGES;" | dockerExec sh -c "MYSQL_PWD=\"${MYSQL_ROOT_PASSWORD}\" mysql -h mysql -uroot" logMsg "Finished" else errorMsg "MySQL backup file not found" From 09e12da678c8d74d40e23d0d90d235e4d34fc124 Mon Sep 17 00:00:00 2001 From: Tilo Baller Date: Sat, 18 Feb 2017 16:36:49 +0100 Subject: [PATCH 094/120] Make bin/backup.sh executable (#164) --- bin/backup.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 bin/backup.sh diff --git a/bin/backup.sh b/bin/backup.sh old mode 100644 new mode 100755 From 28b3847895ec11b0d4a0481cc57d725eabb3237f Mon Sep 17 00:00:00 2001 From: Tilo Baller Date: Sat, 18 Feb 2017 16:44:57 +0100 Subject: [PATCH 095/120] [BUGFIX] Fix composer run command in build script (#160) * [BUGFIX] Fix composer run command in build script * [BUGFIX] Fix permissions for make build composer Runs the composer docker container with the current users uid/gid, otherwise composer writes all files as root user. Setting the composer cache dir (inside the container) to /tmp avoids multiple 'Cannot create cache directory'-warnings while the original composer cache dir is only writeable by root. --- bin/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/build.sh b/bin/build.sh index 0e7c7bf..9992a7e 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -20,7 +20,7 @@ sectionHeader "Checking for composer.json ..." find "$CODE_DIR" -type f -name 'composer.json' | excludeFilter | while read FILE; do COMPOSER_JSON_DIR=$(dirname $($READLINK -f "$FILE")) - execInDir "$COMPOSER_JSON_DIR" "composer install --no-dev --no-interaction" + execInDir "$COMPOSER_JSON_DIR" "docker run --rm --env COMPOSER_CACHE_DIR=/tmp --user $(id -u):$(id -g) -v \$(pwd):/app composer/composer:alpine install --no-dev --no-interaction" done From 0b2281c715707450837025e76ad4fb9dc8ea9caf Mon Sep 17 00:00:00 2001 From: Tilo Baller Date: Sat, 18 Feb 2017 16:45:28 +0100 Subject: [PATCH 096/120] [TASK] Use docker-compose exec for make shell/root (#161) Use docker-compose exec instead of docker exec for 'make shell' respectively 'make bash' and 'make root'. This also speeds up these commands, because it is not necessary to determine the container id for the app container anymore. --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index c52d118..100197a 100644 --- a/Makefile +++ b/Makefile @@ -66,10 +66,10 @@ build: bash: shell shell: - docker exec -it -u application $$(docker-compose ps -q app) /bin/bash + docker-compose exec --user application app /bin/bash root: - docker exec -it -u root $$(docker-compose ps -q app) /bin/bash + docker-compose exec --user root app /bin/bash ############################# # Argument fix workaround From 09dc4c390113e4c74d3d92c03faa934ee920494c Mon Sep 17 00:00:00 2001 From: Tilo Baller Date: Sun, 19 Feb 2017 12:08:17 +0100 Subject: [PATCH 097/120] [FEATURE] Preset mysql server on pma login screen (#175) Preset the default hostname of the mysql container by using the PMA_HOSTS environment variable. This avoids manually entering the server ('mysql' by default) on the phpmyadmin login screen. There will be a selectbox on the login screen to choose a server from, if multiple servers are given (comma separated) to the PMA_HOSTS env var. --- docker-compose.development-reverse-proxy.yml | 2 +- docker-compose.development.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.development-reverse-proxy.yml b/docker-compose.development-reverse-proxy.yml index bb35f8a..b23ed69 100755 --- a/docker-compose.development-reverse-proxy.yml +++ b/docker-compose.development-reverse-proxy.yml @@ -183,7 +183,7 @@ services: # links: # - mysql # environment: - # - PMA_ARBITRARY=1 + # - PMA_HOSTS=mysql # - VIRTUAL_HOST=pma.boilerplate.docker # - VIRTUAL_PORT=80 # volumes: diff --git a/docker-compose.development.yml b/docker-compose.development.yml index c8a0237..a729996 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -183,7 +183,7 @@ services: # links: # - mysql # environment: - # - PMA_ARBITRARY=1 + # - PMA_HOSTS=mysql # - VIRTUAL_HOST=pma.boilerplate.docker # - VIRTUAL_PORT=80 # volumes: From 3acacc2c361baa018e2c84b50c5b006b38acd2df Mon Sep 17 00:00:00 2001 From: Tilo Baller Date: Mon, 20 Feb 2017 20:18:02 +0100 Subject: [PATCH 098/120] Revert "Fix missing quotation marks in etc/environment.yml" (#173) This reverts commit 0920887f0df622b326ef44345939f42f5a162c7f because wrapping the value of CLI_SCRIPT breaks its usage: $ docker-compose run --rm app cli help sudo: "php: command not found # Conflicts: # etc/environment.yml --- etc/environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/environment.yml b/etc/environment.yml index f57d7c0..1734d2b 100644 --- a/etc/environment.yml +++ b/etc/environment.yml @@ -12,7 +12,7 @@ # General WEB_DOCUMENT_ROOT=/app/ WEB_DOCUMENT_INDEX=index.php -CLI_SCRIPT="php /app/index.php" +CLI_SCRIPT=php /app/index.php ####################################### # SSH settings From 36b852559a5e279ea6ea0be26d49969c97ddf15c Mon Sep 17 00:00:00 2001 From: Tilo Baller Date: Mon, 20 Feb 2017 20:48:54 +0100 Subject: [PATCH 099/120] [TASK] Pull images on make rebuild (#166) Make sure to use latest images by automatically pulling needed images and forcing recreation of containers when using 'make rebuild'. --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 100197a..e3777a6 100644 --- a/Makefile +++ b/Makefile @@ -29,9 +29,10 @@ state: rebuild: docker-compose stop + docker-compose pull docker-compose rm --force app docker-compose build --no-cache - docker-compose up -d + docker-compose up -d --force-recreate ############################# # MySQL From a6418edda63698fe3b0209c53eb3b71a11f1c370 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sat, 15 Apr 2017 13:19:20 +0200 Subject: [PATCH 100/120] Remove provision MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mostly not needed, so let’s speedup startup --- Dockerfile.cloud | 14 +++++++++++--- Dockerfile.development | 11 ++++++++--- Dockerfile.production | 14 +++++++++++--- etc/application.development.yml | 6 ++++++ etc/application.production.yml | 8 +++++++- 5 files changed, 43 insertions(+), 10 deletions(-) diff --git a/Dockerfile.cloud b/Dockerfile.cloud index c2a7278..8b03c92 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -3,6 +3,9 @@ #++++++++++++++++++++++++++++++++++++++ # # PHP-Versions: +# 5.6 -> PHP 5.6 official PHP image +# 7.0 -> PHP 7.0 official PHP image +# 7.1 -> PHP 7.1 official PHP image # ubuntu-12.04 -> PHP 5.3 (precise) LTS # ubuntu-14.04 -> PHP 5.5 (trusty) LTS # ubuntu-15.04 -> PHP 5.6 (vivid) @@ -14,6 +17,9 @@ # debian-9 -> PHP 7.0 (stretch) # # Apache: +# webdevops/php-apache:5.6 +# webdevops/php-apache:7.0 +# webdevops/php-apache:7.1 # webdevops/php-apache:ubuntu-12.04 # webdevops/php-apache:ubuntu-14.04 # webdevops/php-apache:ubuntu-15.04 @@ -26,6 +32,9 @@ # webdevops/php-apache:debian-9 # # Nginx: +# webdevops/php-nginx:5.6 +# webdevops/php-nginx:7.0 +# webdevops/php-nginx:7.1 # webdevops/php-nginx:ubuntu-12.04 # webdevops/php-nginx:ubuntu-14.04 # webdevops/php-nginx:ubuntu-15.04 @@ -53,9 +62,8 @@ COPY provision/ /opt/docker/provision/ COPY app/ /app/ -RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-deployment \ - && /opt/docker/bin/bootstrap.sh +# RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-deployment \ +# && /opt/docker/bin/bootstrap.sh # Configure volume/workdir -RUN mkdir -p /app/ WORKDIR /app/ diff --git a/Dockerfile.development b/Dockerfile.development index b425475..2ca88f8 100644 --- a/Dockerfile.development +++ b/Dockerfile.development @@ -14,6 +14,9 @@ # debian-9 -> PHP 7.0 (stretch) # # Apache: +# webdevops/php-apache-dev:5.6 +# webdevops/php-apache-dev:7.0 +# webdevops/php-apache-dev:7.1 # webdevops/php-apache-dev:ubuntu-12.04 # webdevops/php-apache-dev:ubuntu-14.04 # webdevops/php-apache-dev:ubuntu-15.04 @@ -26,6 +29,9 @@ # webdevops/php-apache-dev:debian-9 # # Nginx: +# webdevops/php-nginx-dev:5.6 +# webdevops/php-nginx-dev:7.0 +# webdevops/php-nginx-dev:7.1 # webdevops/php-nginx-dev:ubuntu-12.04 # webdevops/php-nginx-dev:ubuntu-14.04 # webdevops/php-nginx-dev:ubuntu-15.04 @@ -51,9 +57,8 @@ ENV PROVISION_CONTEXT "development" COPY etc/ /opt/docker/etc/ COPY provision/ /opt/docker/provision/ -RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-main-development --role boilerplate-deployment \ - && /opt/docker/bin/bootstrap.sh +# RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-main-development --role boilerplate-deployment \ +# && /opt/docker/bin/bootstrap.sh # Configure volume/workdir -RUN mkdir -p /app/ WORKDIR /app/ diff --git a/Dockerfile.production b/Dockerfile.production index 4f81446..b2e114e 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -3,6 +3,9 @@ #++++++++++++++++++++++++++++++++++++++ # # PHP-Versions: +# 5.6 -> PHP 5.6 official PHP image +# 7.0 -> PHP 7.0 official PHP image +# 7.1 -> PHP 7.1 official PHP image # ubuntu-12.04 -> PHP 5.3 (precise) LTS # ubuntu-14.04 -> PHP 5.5 (trusty) LTS # ubuntu-15.04 -> PHP 5.6 (vivid) @@ -14,6 +17,9 @@ # debian-9 -> PHP 7.0 (stretch) # # Apache: +# webdevops/php-apache:5.6 +# webdevops/php-apache:7.0 +# webdevops/php-apache:7.1 # webdevops/php-apache:ubuntu-12.04 # webdevops/php-apache:ubuntu-14.04 # webdevops/php-apache:ubuntu-15.04 @@ -26,6 +32,9 @@ # webdevops/php-apache:debian-9 # # Nginx: +# webdevops/php-nginx:5.6 +# webdevops/php-nginx:7.0 +# webdevops/php-nginx:7.1 # webdevops/php-nginx:ubuntu-12.04 # webdevops/php-nginx:ubuntu-14.04 # webdevops/php-nginx:ubuntu-15.04 @@ -51,9 +60,8 @@ ENV PROVISION_CONTEXT "production" COPY etc/ /opt/docker/etc/ COPY provision/ /opt/docker/provision/ -RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-deployment \ - && /opt/docker/bin/bootstrap.sh +# RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-deployment \ +# && /opt/docker/bin/bootstrap.sh # Configure volume/workdir -RUN mkdir -p /app/ WORKDIR /app/ diff --git a/etc/application.development.yml b/etc/application.development.yml index 5e8c785..3741b02 100644 --- a/etc/application.development.yml +++ b/etc/application.development.yml @@ -1,5 +1,11 @@ --- +# For advanced provisioning you have to enable following lines in Dockerfile: +# +# RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-deployment \ +# && /opt/docker/bin/bootstrap.sh +# + PROVISION: install: apacheModPagespeed: false diff --git a/etc/application.production.yml b/etc/application.production.yml index 1b7d428..aca73f4 100644 --- a/etc/application.production.yml +++ b/etc/application.production.yml @@ -1,12 +1,18 @@ --- +# For advanced provisioning you have to enable following lines in Dockerfile: +# +# RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-deployment \ +# && /opt/docker/bin/bootstrap.sh +# + PROVISION: install: apacheModPagespeed: false service: # set "enabled" or "disabled" to controll startup of services - - { service: "cron", status: "disabled" } + - { service: "cron", status: "enabled" } - { service: "dnsmasq", status: "enabled" } - { service: "postfix", status: "enabled" } From 229ea92159760e46312eb9dfc2425b34403decc1 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 20 Apr 2017 18:20:57 +0200 Subject: [PATCH 101/120] Replace provisioning system Not needed anymore with newer images --- Dockerfile.cloud | 7 +-- Dockerfile.development | 7 +-- Dockerfile.production | 7 +-- etc/application.development.yml | 46 ---------------- etc/application.production.yml | 46 ---------------- .../boilerplate-deployment/tasks/main.yml | 3 -- .../defaults/main.yml | 3 -- .../tasks/bootstrap.yml | 1 - .../tasks/main.yml | 6 --- .../roles/boilerplate-main/defaults/main.yml | 3 -- .../roles/boilerplate-main/handlers/main.yml | 3 -- .../boilerplate-main/tasks/bootstrap.yml | 29 ---------- .../boilerplate-main/tasks/bootstrap/cron.yml | 18 ------- .../tasks/bootstrap/dnsmasq.yml | 12 ----- .../boilerplate-main/tasks/bootstrap/php.yml | 53 ------------------- .../tasks/bootstrap/postfix.yml | 18 ------- .../tasks/bootstrap/services.yml | 11 ---- .../tasks/bootstrap/web.apache.pagespeed.yml | 18 ------- .../tasks/bootstrap/web.apache.yml | 13 ----- .../tasks/bootstrap/web.nginx.yml | 13 ----- .../roles/boilerplate-main/tasks/main.yml | 5 -- .../templates/apache/vhost.conf.j2 | 40 -------------- .../boilerplate-main/templates/my.cnf.j2 | 21 -------- .../templates/nginx/vhost.conf.j2 | 45 ---------------- 24 files changed, 12 insertions(+), 416 deletions(-) delete mode 100644 etc/application.development.yml delete mode 100644 etc/application.production.yml delete mode 100644 provision/roles/boilerplate-deployment/tasks/main.yml delete mode 100644 provision/roles/boilerplate-main-development/defaults/main.yml delete mode 100644 provision/roles/boilerplate-main-development/tasks/bootstrap.yml delete mode 100644 provision/roles/boilerplate-main-development/tasks/main.yml delete mode 100644 provision/roles/boilerplate-main/defaults/main.yml delete mode 100644 provision/roles/boilerplate-main/handlers/main.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/cron.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/dnsmasq.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/php.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/postfix.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/services.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/web.apache.pagespeed.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/web.apache.yml delete mode 100644 provision/roles/boilerplate-main/tasks/bootstrap/web.nginx.yml delete mode 100644 provision/roles/boilerplate-main/tasks/main.yml delete mode 100644 provision/roles/boilerplate-main/templates/apache/vhost.conf.j2 delete mode 100644 provision/roles/boilerplate-main/templates/my.cnf.j2 delete mode 100644 provision/roles/boilerplate-main/templates/nginx/vhost.conf.j2 diff --git a/Dockerfile.cloud b/Dockerfile.cloud index 8b03c92..6e82651 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -58,12 +58,13 @@ ENV PROVISION_CONTEXT "production" # Deploy scripts/configurations COPY etc/ /opt/docker/etc/ -COPY provision/ /opt/docker/provision/ COPY app/ /app/ -# RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-deployment \ -# && /opt/docker/bin/bootstrap.sh +RUN ln -sf /opt/docker/etc/cron/crontab /etc/cron.d/docker-boilerplate \ + && chmod 0644 /opt/docker/etc/cron/crontab \ + && echo >> /opt/docker/etc/cron/crontab \ + && ln -sf /opt/docker/etc/php/production.ini /opt/docker/etc/php/php.ini # Configure volume/workdir WORKDIR /app/ diff --git a/Dockerfile.development b/Dockerfile.development index 2ca88f8..0891744 100644 --- a/Dockerfile.development +++ b/Dockerfile.development @@ -55,10 +55,11 @@ ENV PROVISION_CONTEXT "development" # Deploy scripts/configurations COPY etc/ /opt/docker/etc/ -COPY provision/ /opt/docker/provision/ -# RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-main-development --role boilerplate-deployment \ -# && /opt/docker/bin/bootstrap.sh +RUN ln -sf /opt/docker/etc/cron/crontab /etc/cron.d/docker-boilerplate \ + && chmod 0644 /opt/docker/etc/cron/crontab \ + && echo >> /opt/docker/etc/cron/crontab \ + && ln -sf /opt/docker/etc/php/development.ini /opt/docker/etc/php/php.ini # Configure volume/workdir WORKDIR /app/ diff --git a/Dockerfile.production b/Dockerfile.production index b2e114e..9debefc 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -58,10 +58,11 @@ ENV PROVISION_CONTEXT "production" # Deploy scripts/configurations COPY etc/ /opt/docker/etc/ -COPY provision/ /opt/docker/provision/ -# RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-deployment \ -# && /opt/docker/bin/bootstrap.sh +RUN ln -sf /opt/docker/etc/cron/crontab /etc/cron.d/docker-boilerplate \ + && chmod 0644 /opt/docker/etc/cron/crontab \ + && echo >> /opt/docker/etc/cron/crontab \ + && ln -sf /opt/docker/etc/php/production.ini /opt/docker/etc/php/php.ini # Configure volume/workdir WORKDIR /app/ diff --git a/etc/application.development.yml b/etc/application.development.yml deleted file mode 100644 index 3741b02..0000000 --- a/etc/application.development.yml +++ /dev/null @@ -1,46 +0,0 @@ ---- - -# For advanced provisioning you have to enable following lines in Dockerfile: -# -# RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-deployment \ -# && /opt/docker/bin/bootstrap.sh -# - -PROVISION: - install: - apacheModPagespeed: false - - service: - # set "enabled" or "disabled" to controll startup of services - - { service: "cron", status: "enabled" } - - { service: "dnsmasq", status: "enabled" } - - { service: "postfix", status: "enabled" } - -WEB: - vhost: - - { serverName: "docker.vm", serverAlias: "*.vm" } - -DNS: - domain: - - { domain: ".vm", address: "127.0.0.1" } - -MAIL: - aliases: - - { user: "root", destination: "root@example.com" } - conf: - - { variable: "inet_interfaces", value: "loopback-only" } - -PHP: - fpm: - conf: - # PM - - { variable: "pm.max_children", value: "15" } - - { variable: "pm.start_servers", value: "2" } - - { variable: "pm.min_spare_servers", value: "1" } - - { variable: "pm.max_spare_servers", value: "3" } - # Misc - - { variable: "catch_workers_output", value: "yes" } - # Logs - - { variable: "access.format", value: '"%R - %u %t \"%m %r%Q%q\" %s %f cpu:%C%% mem:%{megabytes}M reqTime:%d"' } - - { variable: "request_slowlog_timeout", value: "10s" } - - { variable: "php_admin_flag[log_errors]", value: "on" } diff --git a/etc/application.production.yml b/etc/application.production.yml deleted file mode 100644 index aca73f4..0000000 --- a/etc/application.production.yml +++ /dev/null @@ -1,46 +0,0 @@ ---- - -# For advanced provisioning you have to enable following lines in Dockerfile: -# -# RUN /opt/docker/bin/provision run --tag bootstrap --role boilerplate-main --role boilerplate-deployment \ -# && /opt/docker/bin/bootstrap.sh -# - -PROVISION: - install: - apacheModPagespeed: false - - service: - # set "enabled" or "disabled" to controll startup of services - - { service: "cron", status: "enabled" } - - { service: "dnsmasq", status: "enabled" } - - { service: "postfix", status: "enabled" } - -WEB: - vhost: - - { serverName: "docker.vm", serverAlias: "*.vm" } - -DNS: - domain: - - { domain: ".vm", address: "127.0.0.1" } - -MAIL: - aliases: - - { user: "root", destination: "root@example.com" } - conf: - - { variable: "inet_interfaces", value: "loopback-only" } - -PHP: - fpm: - conf: - # PM - - { variable: "pm.max_children", value: "30" } - - { variable: "pm.start_servers", value: "10" } - - { variable: "pm.min_spare_servers", value: "5" } - - { variable: "pm.max_spare_servers", value: "10" } - # Misc - - { variable: "catch_workers_output", value: "yes" } - # Logs - - { variable: "access.format", value: "%R - %u %t \"%m %r%Q%q\" %s %f" } - - { variable: "request_slowlog_timeout", value: "10s" } - - { variable: "php_admin_flag[log_errors]", value: "on" } diff --git a/provision/roles/boilerplate-deployment/tasks/main.yml b/provision/roles/boilerplate-deployment/tasks/main.yml deleted file mode 100644 index 2651211..0000000 --- a/provision/roles/boilerplate-deployment/tasks/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- - -# add deployment tasks here \ No newline at end of file diff --git a/provision/roles/boilerplate-main-development/defaults/main.yml b/provision/roles/boilerplate-main-development/defaults/main.yml deleted file mode 100644 index 6b531af..0000000 --- a/provision/roles/boilerplate-main-development/defaults/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- - -PROVISION_CONTEXT: "{{ lookup('env','PROVISION_CONTEXT') }}" diff --git a/provision/roles/boilerplate-main-development/tasks/bootstrap.yml b/provision/roles/boilerplate-main-development/tasks/bootstrap.yml deleted file mode 100644 index ed97d53..0000000 --- a/provision/roles/boilerplate-main-development/tasks/bootstrap.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/provision/roles/boilerplate-main-development/tasks/main.yml b/provision/roles/boilerplate-main-development/tasks/main.yml deleted file mode 100644 index cdf7f81..0000000 --- a/provision/roles/boilerplate-main-development/tasks/main.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- - -- include: bootstrap.yml - tags: - - bootstrap - when: PROVISION_CONTEXT == "development" diff --git a/provision/roles/boilerplate-main/defaults/main.yml b/provision/roles/boilerplate-main/defaults/main.yml deleted file mode 100644 index 6b531af..0000000 --- a/provision/roles/boilerplate-main/defaults/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- - -PROVISION_CONTEXT: "{{ lookup('env','PROVISION_CONTEXT') }}" diff --git a/provision/roles/boilerplate-main/handlers/main.yml b/provision/roles/boilerplate-main/handlers/main.yml deleted file mode 100644 index 19664dd..0000000 --- a/provision/roles/boilerplate-main/handlers/main.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -- name: update aliases - command: newaliases diff --git a/provision/roles/boilerplate-main/tasks/bootstrap.yml b/provision/roles/boilerplate-main/tasks/bootstrap.yml deleted file mode 100644 index 9e29b8f..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -############################# -# Gather environment stuff -############################# - -- include_vars: "/opt/docker/etc/application.{{ PROVISION_CONTEXT }}.yml" - -############################# -# Run tasks -############################# - -- include: bootstrap/services.yml - -- include: bootstrap/cron.yml - -- include: bootstrap/dnsmasq.yml - when: DNS is defined - -- include: bootstrap/postfix.yml - when: MAIL is defined - -- include: bootstrap/php.yml - -- include: bootstrap/web.apache.yml - -- include: bootstrap/web.apache.pagespeed.yml - when: PROVISION.install.apacheModPagespeed is defined and PROVISION.install.apacheModPagespeed - -- include: bootstrap/web.nginx.yml diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/cron.yml b/provision/roles/boilerplate-main/tasks/bootstrap/cron.yml deleted file mode 100644 index 4e9ee0e..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/cron.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- - -- name: Create link for crontab - file: - src: '/opt/docker/etc/cron/crontab' - dest: '/etc/cron.d/docker-boilerplate' - state: link - force: yes - mode: '0644' - -- name: Permissions of crontab - file: - path: '/opt/docker/etc/cron/crontab' - state: touch - mode: '0644' - -- name: Add newline to crontab - raw: 'echo >> /opt/docker/etc/crontab' diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/dnsmasq.yml b/provision/roles/boilerplate-main/tasks/bootstrap/dnsmasq.yml deleted file mode 100644 index 4996ec2..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/dnsmasq.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- - -- include_vars: "/opt/docker/etc/application.{{ PROVISION_CONTEXT }}.yml" - -- name: Add domains to dnsmasq - lineinfile: - dest: "/etc/dnsmasq.d/docker" - regexp: '^address=/{{ item.domain }}' - line: 'address=/{{ item.domain }}/{{ item.address }}' - create: yes - with_items: "{{ DNS.domain }}" - when: DNS.domain is defined diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/php.yml b/provision/roles/boilerplate-main/tasks/bootstrap/php.yml deleted file mode 100644 index 8c21955..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/php.yml +++ /dev/null @@ -1,53 +0,0 @@ ---- - -- include_vars: "/opt/docker/etc/application.{{ PROVISION_CONTEXT }}.yml" - -############################# -# Stats -############################# - -- stat: - path: /opt/docker/etc/php/fpm/php-fpm.conf - register: phpFpmConf - -- stat: - path: /opt/docker/etc/php/fpm/pool.d/application.conf - register: phpFpmApplicationPool - -############################# -# Tasks -############################# - -- name: Configure php-fpm (pool www.conf) - lineinfile: - dest: "/opt/docker/etc/php/fpm/pool.d/application.conf" - regexp: '^[\s;]*{{ item.variable }}[\s]*=' - line: '{{ item.variable }} = {{ item.value }}' - with_items: "{{ PHP.fpm.conf }}" - when: PHP.fpm.conf is defined and item.value != "" and - phpFpmApplicationPool.stat.exists is defined and phpFpmApplicationPool.stat.exists - -- name: Configure php-fpm (php-fpm.conf) - lineinfile: - dest: "/opt/docker/etc/php/fpm/php-fpm.conf" - regexp: '^[\s;]*{{ item.key }}[\s]*=' - line: '{{ item.key }} = {{ item.value }}' - with_items: - - { key: 'daemonize', value: 'no' } - when: phpFpmConf.stat.exists is defined and phpFpmConf.stat.exists - -- name: Set development environment php.ini - file: - src: '/opt/docker/etc/php/development.ini' - dest: '/opt/docker/etc/php/php.ini' - state: link - force: yes - when: PROVISION_CONTEXT == "development" - -- name: Enable production environment php.ini - file: - src: '/opt/docker/etc/php/production.ini' - dest: '/opt/docker/etc/php/php.ini' - state: link - force: yes - when: PROVISION_CONTEXT == "production" or PROVISION_CONTEXT == "" diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/postfix.yml b/provision/roles/boilerplate-main/tasks/bootstrap/postfix.yml deleted file mode 100644 index b15abbe..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/postfix.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- - -- name: Configure postfix - lineinfile: - dest: /etc/postfix/main.cf - regexp: '^[\s;]*{{ item.variable }}[\s]*=' - line: '{{ item.variable }} = {{ item.value }}' - with_items: "{{ MAIL.conf }}" - when: MAIL.conf is defined and item.value != "" - -- name: Configure aliases - lineinfile: - dest: /etc/aliases - regexp: '^[\s;]*{{ item.user }}[\s]*:' - line: '{{ item.user }}: {{ item.destination }}' - with_items: "{{ MAIL.aliases }}" - when: MAIL.aliases is defined and item.destination != "" - notify: update aliases diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/services.yml b/provision/roles/boilerplate-main/tasks/bootstrap/services.yml deleted file mode 100644 index 7d9d7df..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/services.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- - -- name: Enable services - command: "/opt/docker/bin/control.sh service.enable {{ item.service }}" - with_items: "{{ PROVISION.service }}" - when: PROVISION.service is defined and item.status == 'enabled' - -- name: Disable services - command: "/opt/docker/bin/control.sh service.disable {{ item.service }}" - with_items: "{{ PROVISION.service }}" - when: PROVISION.service is defined and item.status == 'disabled' diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.pagespeed.yml b/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.pagespeed.yml deleted file mode 100644 index 210457a..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.pagespeed.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- - -- name: Download apache mod_pagespeed [Debian family] - get_url: - url: https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb - dest: /tmp/mod-pagespeed.deb - when: ansible_os_family == 'Debian' - -- name: Install apache mod_pagespeed [Debian family] - apt: - deb: /tmp/mod-pagespeed.deb - when: ansible_os_family == 'Debian' - -- name: Install apache mod_pagespeed [RedHat family] - yum: - name: https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm - state: present - when: ansible_os_family == 'RedHat' diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.yml b/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.yml deleted file mode 100644 index a8c806c..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/web.apache.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- - -- file: - path: "/opt/docker/etc/httpd" - state: directory - -- name: Deploy dynamic apache vhost - template: - src: templates/apache/vhost.conf.j2 - dest: /opt/docker/etc/httpd/vhost.conf - owner: root - group: root - mode: 0775 diff --git a/provision/roles/boilerplate-main/tasks/bootstrap/web.nginx.yml b/provision/roles/boilerplate-main/tasks/bootstrap/web.nginx.yml deleted file mode 100644 index de750da..0000000 --- a/provision/roles/boilerplate-main/tasks/bootstrap/web.nginx.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- - -- file: - path: "/opt/docker/etc/nginx" - state: directory - -- name: Deploy dynamic nginx vhost - template: - src: templates/nginx/vhost.conf.j2 - dest: /opt/docker/etc/nginx/vhost.conf - owner: root - group: root - mode: 0775 diff --git a/provision/roles/boilerplate-main/tasks/main.yml b/provision/roles/boilerplate-main/tasks/main.yml deleted file mode 100644 index 1806c1a..0000000 --- a/provision/roles/boilerplate-main/tasks/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- - -- include: bootstrap.yml - tags: - - bootstrap diff --git a/provision/roles/boilerplate-main/templates/apache/vhost.conf.j2 b/provision/roles/boilerplate-main/templates/apache/vhost.conf.j2 deleted file mode 100644 index d925d87..0000000 --- a/provision/roles/boilerplate-main/templates/apache/vhost.conf.j2 +++ /dev/null @@ -1,40 +0,0 @@ -####################################### -# Vhost -####################################### -{% for vhost in WEB.vhost %} - -# Vhost for "{{ vhost.serverName }}" - - - ServerName "{{ vhost.serverName }}" - ServerAlias "{{ vhost.serverAlias }}" - DocumentRoot "{{ vhost.documentRoot|default('') }}" - - UseCanonicalName Off - - - Include /opt/docker/etc/httpd/vhost.common.d/*.conf - - = 2.4> - IncludeOptional /opt/docker/etc/httpd/vhost.common.d/*.conf - - - - - ServerName "{{ vhost.serverName }}" - ServerAlias "{{ vhost.serverAlias }}" - DocumentRoot "{{ vhost.documentRoot|default('') }}" - - UseCanonicalName Off - - - Include /opt/docker/etc/httpd/vhost.common.d/*.conf - - = 2.4> - IncludeOptional /opt/docker/etc/httpd/vhost.common.d/*.conf - - - Include /opt/docker/etc/httpd/vhost.ssl.conf - - -{% endfor %} diff --git a/provision/roles/boilerplate-main/templates/my.cnf.j2 b/provision/roles/boilerplate-main/templates/my.cnf.j2 deleted file mode 100644 index dd22c34..0000000 --- a/provision/roles/boilerplate-main/templates/my.cnf.j2 +++ /dev/null @@ -1,21 +0,0 @@ -[client] -host=mysql -user="root" -password="{{ lookup('env','MYSQL_ROOT_PASSWORD') }}" - -[mysql] -host=mysql -user="root" -password="{{ lookup('env','MYSQL_ROOT_PASSWORD') }}" -database="{{ lookup('env','MYSQL_DATABASE') }}" -default-character-set=utf8 -local-infile=1 -show-warnings -auto-rehash -sigint-ignore -reconnect - -[mysqldump] -host=mysql -user="root" -password="{{ lookup('env','MYSQL_ROOT_PASSWORD') }}" diff --git a/provision/roles/boilerplate-main/templates/nginx/vhost.conf.j2 b/provision/roles/boilerplate-main/templates/nginx/vhost.conf.j2 deleted file mode 100644 index 58340ea..0000000 --- a/provision/roles/boilerplate-main/templates/nginx/vhost.conf.j2 +++ /dev/null @@ -1,45 +0,0 @@ -####################################### -# Vhost -####################################### -{% for vhost in WEB.vhost %} - -# Vhost for "{{ vhost.serverName }}" - -server { - listen 80; - - server_name {{ vhost.serverName }} {{ vhost.serverAlias }}; - - access_log /dev/stdout; - error_log /dev/stdout info; - - root "{{ vhost.documentRoot|default('') }}"; - index "{{ vhost.documentIndex|default('') }}"; - - client_max_body_size 50m; - - include /opt/docker/etc/nginx/vhost.common.d/*.conf; -} - -############## -# SSL -############## - -server { - listen 443; - - server_name {{ vhost.serverName }} {{ vhost.serverAlias }}; - - access_log /dev/stdout; - error_log /dev/stdout info; - - root "{{ vhost.documentRoot|default('') }}"; - index "{{ vhost.documentIndex|default('') }}"; - - client_max_body_size 50m; - - include /opt/docker/etc/nginx/vhost.common.d/*.conf; - include /opt/docker/etc/nginx/vhost.ssl.conf; -} - -{% endfor %} From c5947f0be801a5499e5f86d4cb72a1350f5fc00a Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 23 Apr 2017 01:38:41 +0200 Subject: [PATCH 102/120] Fix dns lookup --- docker-compose.development.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index a729996..db1bc2b 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -36,7 +36,8 @@ services: - VIRTUAL_HOST=.app.boilerplate.docker - VIRTUAL_PORT=80 - POSTFIX_RELAYHOST=[mail]:1025 - + dns_opt: + - no-tld-query ####################################### # MySQL server @@ -188,6 +189,8 @@ services: # - VIRTUAL_PORT=80 # volumes: # - /sessions + # dns_opt: + # - no-tld-query ####################################### # Storage From 9b76b24007304ed82b05a1f6dc04cc23a5e4cfce Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Fri, 28 Apr 2017 21:22:25 +0200 Subject: [PATCH 103/120] Revert "Fix dns lookup" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Doesn’t fix dns issue, was maybe a temp issue. This reverts commit c5947f0be801a5499e5f86d4cb72a1350f5fc00a. --- docker-compose.development.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index db1bc2b..a729996 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -36,8 +36,7 @@ services: - VIRTUAL_HOST=.app.boilerplate.docker - VIRTUAL_PORT=80 - POSTFIX_RELAYHOST=[mail]:1025 - dns_opt: - - no-tld-query + ####################################### # MySQL server @@ -189,8 +188,6 @@ services: # - VIRTUAL_PORT=80 # volumes: # - /sessions - # dns_opt: - # - no-tld-query ####################################### # Storage From 7c0cf3518559b6924d3519b195539d65a558df43 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Fri, 28 Apr 2017 21:22:25 +0200 Subject: [PATCH 104/120] Revert "Fix dns lookup" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Doesn’t fix dns issue, was maybe a temp issue. This reverts commit c5947f0be801a5499e5f86d4cb72a1350f5fc00a. --- docker-compose.development.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docker-compose.development.yml b/docker-compose.development.yml index db1bc2b..a729996 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -36,8 +36,7 @@ services: - VIRTUAL_HOST=.app.boilerplate.docker - VIRTUAL_PORT=80 - POSTFIX_RELAYHOST=[mail]:1025 - dns_opt: - - no-tld-query + ####################################### # MySQL server @@ -189,8 +188,6 @@ services: # - VIRTUAL_PORT=80 # volumes: # - /sessions - # dns_opt: - # - no-tld-query ####################################### # Storage From ede032de52613686050211b2ba1fd127b2ea5f5a Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 15 Jun 2017 22:42:37 +0200 Subject: [PATCH 105/120] Add php environment settings available in docker images after 2017-06-15 --- etc/environment.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/etc/environment.yml b/etc/environment.yml index 1734d2b..5e327dd 100644 --- a/etc/environment.yml +++ b/etc/environment.yml @@ -14,6 +14,35 @@ WEB_DOCUMENT_ROOT=/app/ WEB_DOCUMENT_INDEX=index.php CLI_SCRIPT=php /app/index.php +####################################### +# PHP settings +# (available in docker images after 2017-06-15) + +# PHP.ini + +# php.memory_limit=2G +# php.date.timezone=UTC +# php.display_errors=1 +# php.max_execution_time=600 +# php.post_max_size=50M +# php.upload_max_filesize=50M + +# FPM global (master) + +# fpm.global.process_control_timeout=5m +# fpm.global.process.max=100 + +# FPM pool + +# fpm.pool.pm=dynamic +# fpm.pool.pm.max_children=20 +# fpm.pool.pm.start_servers=20 +# fpm.pool.pm.min_spare_servers=1 +# fpm.pool.pm.max_spare_servers=3 +# fpm.pool.pm.process_idle_timeout=10s +# fpm.pool.pm.max_requests=1000 +# fpm.pool.request_terminate_timeout=5m + ####################################### # SSH settings # SSH public key (without comment): From 919715aead81355d408d96ded1d9c8ee41b98ccb Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Thu, 15 Jun 2017 22:42:37 +0200 Subject: [PATCH 106/120] Add php environment settings available in docker images after 2017-06-15 --- etc/environment.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/etc/environment.yml b/etc/environment.yml index 1734d2b..5e327dd 100644 --- a/etc/environment.yml +++ b/etc/environment.yml @@ -14,6 +14,35 @@ WEB_DOCUMENT_ROOT=/app/ WEB_DOCUMENT_INDEX=index.php CLI_SCRIPT=php /app/index.php +####################################### +# PHP settings +# (available in docker images after 2017-06-15) + +# PHP.ini + +# php.memory_limit=2G +# php.date.timezone=UTC +# php.display_errors=1 +# php.max_execution_time=600 +# php.post_max_size=50M +# php.upload_max_filesize=50M + +# FPM global (master) + +# fpm.global.process_control_timeout=5m +# fpm.global.process.max=100 + +# FPM pool + +# fpm.pool.pm=dynamic +# fpm.pool.pm.max_children=20 +# fpm.pool.pm.start_servers=20 +# fpm.pool.pm.min_spare_servers=1 +# fpm.pool.pm.max_spare_servers=3 +# fpm.pool.pm.process_idle_timeout=10s +# fpm.pool.pm.max_requests=1000 +# fpm.pool.request_terminate_timeout=5m + ####################################### # SSH settings # SSH public key (without comment): From 43153fbdfd675b4db17977e78c2f0d347c2a2a26 Mon Sep 17 00:00:00 2001 From: rich Date: Sat, 8 Jul 2017 20:41:44 +0200 Subject: [PATCH 107/120] modified create project to take into account app dir existance (#58) --- bin/create-project.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bin/create-project.sh b/bin/create-project.sh index e350975..8e159e6 100755 --- a/bin/create-project.sh +++ b/bin/create-project.sh @@ -12,6 +12,9 @@ if [ "$#" -lt 1 ]; then exit 1 fi +#if app dir exists then backup it with timestamp +[ ! -d "$CODE_DIR" ] || mv "$CODE_DIR" "$CODE_DIR".$(date +%Y%m%d%H%M%S); + mkdir -p -- "$CODE_DIR/" chmod 777 "$CODE_DIR/" @@ -39,4 +42,4 @@ case "$1" in ;; esac -touch -- "$CODE_DIR/.gitkeep" \ No newline at end of file +touch -- "$CODE_DIR/.gitkeep" From f1638c4a5e77ac29c46e8c7efb1cbad6b93b41c1 Mon Sep 17 00:00:00 2001 From: "Andreas K. Weber" Date: Sat, 8 Jul 2017 20:41:59 +0200 Subject: [PATCH 108/120] Update create-project.sh (#53) --- bin/create-project.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/create-project.sh b/bin/create-project.sh index 8e159e6..cd51e80 100755 --- a/bin/create-project.sh +++ b/bin/create-project.sh @@ -8,7 +8,7 @@ set -o errexit ## set -e : exit the script if any statement returns a non-true source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/.config.sh" if [ "$#" -lt 1 ]; then - echo "No project type defined (either cms, neos, symfony or git)" + echo "No project type defined (either symfony or git)" exit 1 fi From d3a41afc6487f0109f6268d19f11100c6c01f397 Mon Sep 17 00:00:00 2001 From: rich Date: Sat, 8 Jul 2017 20:41:44 +0200 Subject: [PATCH 109/120] modified create project to take into account app dir existance (#58) --- bin/create-project.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bin/create-project.sh b/bin/create-project.sh index e350975..8e159e6 100755 --- a/bin/create-project.sh +++ b/bin/create-project.sh @@ -12,6 +12,9 @@ if [ "$#" -lt 1 ]; then exit 1 fi +#if app dir exists then backup it with timestamp +[ ! -d "$CODE_DIR" ] || mv "$CODE_DIR" "$CODE_DIR".$(date +%Y%m%d%H%M%S); + mkdir -p -- "$CODE_DIR/" chmod 777 "$CODE_DIR/" @@ -39,4 +42,4 @@ case "$1" in ;; esac -touch -- "$CODE_DIR/.gitkeep" \ No newline at end of file +touch -- "$CODE_DIR/.gitkeep" From ffb6a2e289504c3f57ae3607a460e27119e7667d Mon Sep 17 00:00:00 2001 From: "Andreas K. Weber" Date: Sat, 8 Jul 2017 20:41:59 +0200 Subject: [PATCH 110/120] Update create-project.sh (#53) --- bin/create-project.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/create-project.sh b/bin/create-project.sh index 8e159e6..cd51e80 100755 --- a/bin/create-project.sh +++ b/bin/create-project.sh @@ -8,7 +8,7 @@ set -o errexit ## set -e : exit the script if any statement returns a non-true source "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/.config.sh" if [ "$#" -lt 1 ]; then - echo "No project type defined (either cms, neos, symfony or git)" + echo "No project type defined (either symfony or git)" exit 1 fi From 81fc6d984034acf37f58ec7b5bd37912f1bc47b1 Mon Sep 17 00:00:00 2001 From: Philipp Kitzberger Date: Sat, 8 Jul 2017 20:46:04 +0200 Subject: [PATCH 111/120] Added tika service (#180) --- docker-compose.development.yml | 9 +++++++++ docker/tika/Dockerfile | 1 + 2 files changed, 10 insertions(+) create mode 100644 docker/tika/Dockerfile diff --git a/docker-compose.development.yml b/docker-compose.development.yml index a729996..d24178e 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -92,6 +92,15 @@ services: # - VIRTUAL_HOST=solr.boilerplate.docker # - VIRTUAL_PORT=8983 + ####################################### + # Tika server + ####################################### + #tika: + # build: + # context: docker/tika/ + # ports: + # - 19998:9998 + ####################################### # Elasticsearch ####################################### diff --git a/docker/tika/Dockerfile b/docker/tika/Dockerfile new file mode 100644 index 0000000..384d995 --- /dev/null +++ b/docker/tika/Dockerfile @@ -0,0 +1 @@ +FROM logicalspark/docker-tikaserver From 39f6d3e534961009997bd24666c9ac577a2e0a57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hans=20H=C3=B6chtl?= Date: Mon, 28 Aug 2017 09:15:17 +0200 Subject: [PATCH 112/120] [FIX] database config file is not read due to permission mismatch (#182) --- docker/mysql/MariaDB-10.Dockerfile | 2 ++ docker/mysql/MariaDB-5.5.Dockerfile | 2 ++ docker/mysql/MySQL-5.5.Dockerfile | 2 ++ docker/mysql/MySQL-5.6.Dockerfile | 2 ++ docker/mysql/MySQL-5.7.Dockerfile | 2 ++ docker/mysql/Percona-5.5.Dockerfile | 2 ++ docker/mysql/Percona-5.6.Dockerfile | 2 ++ docker/mysql/Percona-5.7.Dockerfile | 2 ++ 8 files changed, 16 insertions(+) diff --git a/docker/mysql/MariaDB-10.Dockerfile b/docker/mysql/MariaDB-10.Dockerfile index 04acf07..d2bd3a0 100644 --- a/docker/mysql/MariaDB-10.Dockerfile +++ b/docker/mysql/MariaDB-10.Dockerfile @@ -12,3 +12,5 @@ FROM mariadb:10 ADD conf/mysql-docker.cnf /etc/mysql/conf.d/z99-docker.cnf +RUN chown mysql:mysql /etc/mysql/conf.d/z99-docker.cnf \ + && chmod 0644 /etc/mysql/conf.d/z99-docker.cnf diff --git a/docker/mysql/MariaDB-5.5.Dockerfile b/docker/mysql/MariaDB-5.5.Dockerfile index 1faba2d..46a979e 100644 --- a/docker/mysql/MariaDB-5.5.Dockerfile +++ b/docker/mysql/MariaDB-5.5.Dockerfile @@ -12,3 +12,5 @@ FROM mariadb:5.5 ADD conf/mysql-docker.cnf /etc/mysql/conf.d/z99-docker.cnf +RUN chown mysql:mysql /etc/mysql/conf.d/z99-docker.cnf \ + && chmod 0644 /etc/mysql/conf.d/z99-docker.cnf diff --git a/docker/mysql/MySQL-5.5.Dockerfile b/docker/mysql/MySQL-5.5.Dockerfile index 51e255b..0352d0a 100644 --- a/docker/mysql/MySQL-5.5.Dockerfile +++ b/docker/mysql/MySQL-5.5.Dockerfile @@ -12,3 +12,5 @@ FROM mysql:5.5 ADD conf/mysql-docker.cnf /etc/mysql/conf.d/z99-docker.cnf +RUN chown mysql:mysql /etc/mysql/conf.d/z99-docker.cnf \ + && chmod 0644 /etc/mysql/conf.d/z99-docker.cnf diff --git a/docker/mysql/MySQL-5.6.Dockerfile b/docker/mysql/MySQL-5.6.Dockerfile index 070ab11..d52d9d2 100644 --- a/docker/mysql/MySQL-5.6.Dockerfile +++ b/docker/mysql/MySQL-5.6.Dockerfile @@ -12,3 +12,5 @@ FROM mysql:5.6 ADD conf/mysql-docker.cnf /etc/mysql/conf.d/z99-docker.cnf +RUN chown mysql:mysql /etc/mysql/conf.d/z99-docker.cnf \ + && chmod 0644 /etc/mysql/conf.d/z99-docker.cnf diff --git a/docker/mysql/MySQL-5.7.Dockerfile b/docker/mysql/MySQL-5.7.Dockerfile index 9e71576..adaf9d8 100644 --- a/docker/mysql/MySQL-5.7.Dockerfile +++ b/docker/mysql/MySQL-5.7.Dockerfile @@ -12,3 +12,5 @@ FROM mysql:5.7 ADD conf/mysql-docker.cnf /etc/mysql/conf.d/z99-docker.cnf +RUN chown mysql:mysql /etc/mysql/conf.d/z99-docker.cnf \ + && chmod 0644 /etc/mysql/conf.d/z99-docker.cnf diff --git a/docker/mysql/Percona-5.5.Dockerfile b/docker/mysql/Percona-5.5.Dockerfile index fd8585a..21f426c 100644 --- a/docker/mysql/Percona-5.5.Dockerfile +++ b/docker/mysql/Percona-5.5.Dockerfile @@ -12,3 +12,5 @@ FROM percona:5.5 ADD conf/mysql-docker.cnf /etc/mysql/conf.d/z99-docker.cnf +RUN chown mysql:mysql /etc/mysql/conf.d/z99-docker.cnf \ + && chmod 0644 /etc/mysql/conf.d/z99-docker.cnf diff --git a/docker/mysql/Percona-5.6.Dockerfile b/docker/mysql/Percona-5.6.Dockerfile index 477708d..7e39497 100644 --- a/docker/mysql/Percona-5.6.Dockerfile +++ b/docker/mysql/Percona-5.6.Dockerfile @@ -12,3 +12,5 @@ FROM percona:5.6 ADD conf/mysql-docker.cnf /etc/mysql/conf.d/z99-docker.cnf +RUN chown mysql:mysql /etc/mysql/conf.d/z99-docker.cnf \ + && chmod 0644 /etc/mysql/conf.d/z99-docker.cnf diff --git a/docker/mysql/Percona-5.7.Dockerfile b/docker/mysql/Percona-5.7.Dockerfile index 64e87f4..c163aaf 100644 --- a/docker/mysql/Percona-5.7.Dockerfile +++ b/docker/mysql/Percona-5.7.Dockerfile @@ -12,3 +12,5 @@ FROM percona:5.7 ADD conf/mysql-docker.cnf /etc/mysql/conf.d/z99-docker.cnf +RUN chown mysql:mysql /etc/mysql/conf.d/z99-docker.cnf \ + && chmod 0644 /etc/mysql/conf.d/z99-docker.cnf From d0531fee0c6aa424520460b05f212425147f3483 Mon Sep 17 00:00:00 2001 From: Tilo Baller Date: Mon, 28 Aug 2017 09:16:16 +0200 Subject: [PATCH 113/120] [TASK] Pull the base images for the to be build images (#176) --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e3777a6..a3acca4 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,7 @@ rebuild: docker-compose stop docker-compose pull docker-compose rm --force app - docker-compose build --no-cache + docker-compose build --no-cache --pull docker-compose up -d --force-recreate ############################# From bbcd24a48db7c0457f77ab9e3f3c680c895dfc59 Mon Sep 17 00:00:00 2001 From: Thomas Kieslich Date: Sun, 15 Oct 2017 13:09:18 +0200 Subject: [PATCH 114/120] fix MYSQL restore (#187) --- bin/restore.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/restore.sh b/bin/restore.sh index 9a5e839..3d581c8 100755 --- a/bin/restore.sh +++ b/bin/restore.sh @@ -24,7 +24,7 @@ case "$1" in logMsg "Starting MySQL restore..." MYSQL_ROOT_PASSWORD=$(dockerExecMySQL printenv MYSQL_ROOT_PASSWORD) bzcat "${BACKUP_DIR}/${BACKUP_MYSQL_FILE}" | dockerExecMySQL sh -c "MYSQL_PWD=\"${MYSQL_ROOT_PASSWORD}\" mysql -h mysql -uroot" - echo "FLUSH PRIVILEGES;" | dockerExec sh -c "MYSQL_PWD=\"${MYSQL_ROOT_PASSWORD}\" mysql -h mysql -uroot" + echo "FLUSH PRIVILEGES;" | dockerExecMySQL sh -c "MYSQL_PWD=\"${MYSQL_ROOT_PASSWORD}\" mysql -h mysql -uroot" logMsg "Finished" else errorMsg "MySQL backup file not found" From 28199850a1c7c95a8c77cfca949f1b9e703c8879 Mon Sep 17 00:00:00 2001 From: Markus Blaschke Date: Sun, 15 Oct 2017 13:36:54 +0200 Subject: [PATCH 115/120] Implement external volumes Fixes #67 --- docker-compose.development-reverse-proxy.yml | 45 +++++++++----------- docker-compose.development.yml | 45 +++++++++----------- docker-compose.production.yml | 43 ++++++++----------- docker/solr/Dockerfile | 2 +- 4 files changed, 57 insertions(+), 78 deletions(-) diff --git a/docker-compose.development-reverse-proxy.yml b/docker-compose.development-reverse-proxy.yml index b23ed69..6ca77b8 100755 --- a/docker-compose.development-reverse-proxy.yml +++ b/docker-compose.development-reverse-proxy.yml @@ -23,8 +23,6 @@ services: volumes: - ./app/:/app/ - ./:/docker/ - volumes_from: - - storage # cap and privileged needed for slowlog cap_add: - SYS_PTRACE @@ -54,8 +52,8 @@ services: #dockerfile: Percona-5.7.Dockerfile #ports: # - 13306:3306 - volumes_from: - - storage + volumes: + - mysql:/var/lib/mysql env_file: - etc/environment.yml - etc/environment.development.yml @@ -70,8 +68,8 @@ services: # dockerfile: Postgres-9.5.Dockerfile # ports: # - 15432:5432 - # volumes_from: - # - storage + # volumes: + # - postgres:/var/lib/postgresql/data # env_file: # - etc/environment.yml # - etc/environment.development.yml @@ -82,13 +80,13 @@ services: #solr: # build: # context: docker/solr/ - # volumes_from: - # - storage + # volumes: + # - solr:/opt/solr/server/solr/data # env_file: # - etc/environment.yml # - etc/environment.development.yml # environment: - # - SOLR_STORAGE=/storage/solr/server-master/ + # - SOLR_STORAGE=/opt/solr/server/solr/data # - VIRTUAL_HOST=solr.boilerplate.docker # - VIRTUAL_PORT=8983 @@ -101,8 +99,8 @@ services: # ports: # - 19200:9200 # - 19300:9300 - # volumes_from: - # - storage + # volumes: + # - elasticsearch:/usr/share/elasticsearch/data # env_file: # - etc/environment.yml # - etc/environment.development.yml @@ -116,8 +114,8 @@ services: #redis: # build: # context: docker/redis/ - # volumes_from: - # - storage + # volumes: + # - redis:/data # env_file: # - etc/environment.yml # - etc/environment.development.yml @@ -128,8 +126,6 @@ services: #memcached: # build: # context: docker/memcached/ - # volumes_from: - # - storage # env_file: # - etc/environment.yml # - etc/environment.development.yml @@ -167,8 +163,6 @@ services: #ftp: # build: # context: docker/vsftpd/ - # volumes_from: - # - storage # volumes: # - ./:/application/ # env_file: @@ -187,13 +181,12 @@ services: # - VIRTUAL_HOST=pma.boilerplate.docker # - VIRTUAL_PORT=80 # volumes: - # - /sessions + # - phpmyadmin:/sessions - ####################################### - # Storage - ####################################### - storage: - build: - context: docker/storage/ - volumes: - - /storage +volumes: + mysql: + postgres: + solr: + elasticsearch: + redis: + phpmyadmin: diff --git a/docker-compose.development.yml b/docker-compose.development.yml index d24178e..9978c35 100755 --- a/docker-compose.development.yml +++ b/docker-compose.development.yml @@ -23,8 +23,6 @@ services: volumes: - ./app/:/app/ - ./:/docker/ - volumes_from: - - storage # cap and privileged needed for slowlog cap_add: - SYS_PTRACE @@ -54,8 +52,8 @@ services: #dockerfile: Percona-5.7.Dockerfile ports: - 13306:3306 - volumes_from: - - storage + volumes: + - mysql:/var/lib/mysql env_file: - etc/environment.yml - etc/environment.development.yml @@ -70,8 +68,8 @@ services: # dockerfile: Postgres-9.5.Dockerfile # ports: # - 15432:5432 - # volumes_from: - # - storage + # volumes: + # - postgres:/var/lib/postgresql/data # env_file: # - etc/environment.yml # - etc/environment.development.yml @@ -82,13 +80,13 @@ services: #solr: # build: # context: docker/solr/ - # volumes_from: - # - storage + # volumes: + # - solr:/opt/solr/server/solr/data # env_file: # - etc/environment.yml # - etc/environment.development.yml # environment: - # - SOLR_STORAGE=/storage/solr/server-master/ + # - SOLR_STORAGE=/opt/solr/server/solr/data # - VIRTUAL_HOST=solr.boilerplate.docker # - VIRTUAL_PORT=8983 @@ -110,8 +108,8 @@ services: # ports: # - 19200:9200 # - 19300:9300 - # volumes_from: - # - storage + # volumes: + # - elasticsearch:/usr/share/elasticsearch/data # env_file: # - etc/environment.yml # - etc/environment.development.yml @@ -125,8 +123,8 @@ services: #redis: # build: # context: docker/redis/ - # volumes_from: - # - storage + # volumes: + # - redis:/data # env_file: # - etc/environment.yml # - etc/environment.development.yml @@ -137,8 +135,6 @@ services: #memcached: # build: # context: docker/memcached/ - # volumes_from: - # - storage # env_file: # - etc/environment.yml # - etc/environment.development.yml @@ -176,8 +172,6 @@ services: #ftp: # build: # context: docker/vsftpd/ - # volumes_from: - # - storage # volumes: # - ./:/application/ # env_file: @@ -196,13 +190,12 @@ services: # - VIRTUAL_HOST=pma.boilerplate.docker # - VIRTUAL_PORT=80 # volumes: - # - /sessions + # - phpmyadmin:/sessions - ####################################### - # Storage - ####################################### - storage: - build: - context: docker/storage/ - volumes: - - /storage +volumes: + mysql: + postgres: + solr: + elasticsearch: + redis: + phpmyadmin: diff --git a/docker-compose.production.yml b/docker-compose.production.yml index 66e903d..eac7d29 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -22,8 +22,6 @@ services: - "10022:22" volumes: - ./app/:/app/ - volumes_from: - - storage env_file: - etc/environment.yml - etc/environment.production.yml @@ -42,8 +40,8 @@ services: #dockerfile: Percona-5.5.Dockerfile #dockerfile: Percona-5.6.Dockerfile #dockerfile: Percona-5.7.Dockerfile - volumes_from: - - storage + volumes: + - mysql:/var/lib/mysql env_file: - etc/environment.yml - etc/environment.production.yml @@ -58,8 +56,8 @@ services: # dockerfile: Postgres-9.5.Dockerfile # ports: # - 15432:5432 - # volumes_from: - # - storage + # volumes: + # - solr:/opt/solr/server/solr/data # env_file: # - etc/environment.yml # - etc/environment.production.yml @@ -72,10 +70,10 @@ services: # context: docker/solr/ # ports: # - 18983:8983 - # volumes_from: - # - storage + # volumes: + # - solr:/opt/solr/server/solr/data # environment: - # - SOLR_STORAGE=/storage/solr/server-master/ + # - SOLR_STORAGE=/opt/solr/server/solr/data # env_file: # - etc/environment.yml # - etc/environment.production.yml @@ -89,8 +87,8 @@ services: # ports: # - 19200:9200 # - 19300:9300 - # volumes_from: - # - storage + # volumes: + # - elasticsearch:/usr/share/elasticsearch/data # env_file: # - etc/environment.yml # - etc/environment.production.yml @@ -101,8 +99,8 @@ services: #redis: # build: # context: docker/redis/ - # volumes_from: - # - storage + # volumes: + # - redis:/data # env_file: # - etc/environment.yml # - etc/environment.production.yml @@ -113,8 +111,6 @@ services: #memcached: # build: # context: docker/memcached/ - # volumes_from: - # - storage # env_file: # - etc/environment.yml # - etc/environment.production.yml @@ -125,19 +121,16 @@ services: #ftp: # build: # context: docker/vsftp/ - # volumes_from: - # - storage # volumes: # - ./:/application/ # env_file: # - etc/environment.yml # - etc/environment.production.yml - ####################################### - # Storage - ####################################### - storage: - build: - context: docker/storage/ - volumes: - - /storage +volumes: + mysql: + postgres: + solr: + elasticsearch: + redis: + phpmyadmin: diff --git a/docker/solr/Dockerfile b/docker/solr/Dockerfile index 5c399e3..8401c49 100644 --- a/docker/solr/Dockerfile +++ b/docker/solr/Dockerfile @@ -31,7 +31,7 @@ RUN mv /tmp/solr-typo3-plugin.jar /opt/solr/example/solr/typo3lib/ \ # Fix rights RUN chown solr:solr -R /opt/solr/example/solr/ -VOLUME "/storage" +VOLUME "/opt/solr/server/solr/data" ENTRYPOINT ["/entrypoint.sh"] CMD ["solr"] From 93447054b67eb9474b7206c652c333cc1ca8f65e Mon Sep 17 00:00:00 2001 From: David Glebagit Date: Tue, 22 Oct 2019 18:51:50 -0500 Subject: [PATCH 116/120] Improve Install doc --- documentation/INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/INSTALL.md b/documentation/INSTALL.md index bf9cdb2..3060b5f 100644 --- a/documentation/INSTALL.md +++ b/documentation/INSTALL.md @@ -5,7 +5,7 @@ ## Requirements - GNU/Linux with Docker (recommendation: [Vagrant](https://www.vagrantup.com/downloads.html) VM with Docker or [native Linux with Docker](http://docs.docker.com/linux/step_one/) -- make +- [make](https://en.wikipedia.org/wiki/Make_(software)), [GNU manual for make](https://www.gnu.org/software/make/manual/make.html) - [composer](https://getcomposer.org/) - [docker-compose](https://github.com/docker/compose) From d97cadd571fdfee7df4417cb3c5d7bcc98f893ed Mon Sep 17 00:00:00 2001 From: Moe Date: Thu, 2 Jan 2020 13:15:12 +0100 Subject: [PATCH 117/120] fixed typo --- docker-compose.production.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.production.yml b/docker-compose.production.yml index eac7d29..caedb3f 100644 --- a/docker-compose.production.yml +++ b/docker-compose.production.yml @@ -120,7 +120,7 @@ services: ####################################### #ftp: # build: - # context: docker/vsftp/ + # context: docker/vsftpd/ # volumes: # - ./:/application/ # env_file: From 3dea854d851e9e89a06bdb4fb3a4e9142bdcbd9b Mon Sep 17 00:00:00 2001 From: Cezar Popa Date: Sun, 26 Sep 2021 10:49:22 +0100 Subject: [PATCH 118/120] Update new Symfony project command - fix installer path & update command to use wget - add condition to check if symfony-cli binary package is installed locally --- bin/create-project.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/bin/create-project.sh b/bin/create-project.sh index cd51e80..09d09ec 100755 --- a/bin/create-project.sh +++ b/bin/create-project.sh @@ -25,9 +25,13 @@ case "$1" in ## SYMFONY ################################### "symfony") - curl -LsS http://symfony.com/installer > /tmp/symfony.$$.phar - execInDir "$CODE_DIR" "php /tmp/symfony.$$.phar new '$CODE_DIR'" - rm -f -- /tmp/symfony.$$.phar + if command -v symfony >/dev/null 2>&1; then + execInDir "$CODE_DIR" "symfony new '$CODE_DIR'" + else + wget https://get.symfony.com/cli/installer -O - | bash + export PATH="$HOME/.symfony/bin:$PATH" + execInDir "$CODE_DIR" "symfony new '$CODE_DIR'" + fi ;; ################################### From cd801e410aa65fa7edf95e6dc7cfc063817701e5 Mon Sep 17 00:00:00 2001 From: Cezar Popa Date: Sun, 26 Sep 2021 11:10:02 +0100 Subject: [PATCH 119/120] Update indentation --- bin/create-project.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/bin/create-project.sh b/bin/create-project.sh index 09d09ec..e7cf872 100755 --- a/bin/create-project.sh +++ b/bin/create-project.sh @@ -25,13 +25,13 @@ case "$1" in ## SYMFONY ################################### "symfony") - if command -v symfony >/dev/null 2>&1; then - execInDir "$CODE_DIR" "symfony new '$CODE_DIR'" - else - wget https://get.symfony.com/cli/installer -O - | bash - export PATH="$HOME/.symfony/bin:$PATH" - execInDir "$CODE_DIR" "symfony new '$CODE_DIR'" - fi + if command -v symfony >/dev/null 2>&1; then + execInDir "$CODE_DIR" "symfony new '$CODE_DIR'" + else + wget https://get.symfony.com/cli/installer -O - | bash + export PATH="$HOME/.symfony/bin:$PATH" + execInDir "$CODE_DIR" "symfony new '$CODE_DIR'" + fi ;; ################################### From c36ef2990cada7840712de6a07e93e2e50bb89af Mon Sep 17 00:00:00 2001 From: Cezar Popa Date: Sun, 26 Sep 2021 11:15:17 +0100 Subject: [PATCH 120/120] Update line indent --- bin/create-project.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/create-project.sh b/bin/create-project.sh index e7cf872..43e4194 100755 --- a/bin/create-project.sh +++ b/bin/create-project.sh @@ -26,7 +26,7 @@ case "$1" in ################################### "symfony") if command -v symfony >/dev/null 2>&1; then - execInDir "$CODE_DIR" "symfony new '$CODE_DIR'" + execInDir "$CODE_DIR" "symfony new '$CODE_DIR'" else wget https://get.symfony.com/cli/installer -O - | bash export PATH="$HOME/.symfony/bin:$PATH"