From 4030cc2f2660b3e9e953abf75d9317aa85118189 Mon Sep 17 00:00:00 2001 From: philtrep Date: Sun, 9 Oct 2016 21:01:49 -0400 Subject: [PATCH 01/40] Added certbot container --- certbot/Dockerfile | 8 ++++++++ certbot/letsencrypt/.gitkeep | 0 certbot/letsencrypt/.well-known/.gitkeep | 0 certbot/run-certbot.sh | 6 ++++++ docker-compose.yml | 13 +++++++++++++ nginx/nginx.conf | 4 ++++ 6 files changed, 31 insertions(+) create mode 100644 certbot/Dockerfile create mode 100644 certbot/letsencrypt/.gitkeep create mode 100644 certbot/letsencrypt/.well-known/.gitkeep create mode 100644 certbot/run-certbot.sh diff --git a/certbot/Dockerfile b/certbot/Dockerfile new file mode 100644 index 00000000..c62405e9 --- /dev/null +++ b/certbot/Dockerfile @@ -0,0 +1,8 @@ +FROM phusion/baseimage:latest + +COPY run-certbot.sh /root/certbot/run-certbot.sh + +RUN apt-get update +RUN apt-get install -y letsencrypt + +ENTRYPOINT bash -c "bash /root/certbot/run-certbot.sh && sleep infinity" diff --git a/certbot/letsencrypt/.gitkeep b/certbot/letsencrypt/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/certbot/letsencrypt/.well-known/.gitkeep b/certbot/letsencrypt/.well-known/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/certbot/run-certbot.sh b/certbot/run-certbot.sh new file mode 100644 index 00000000..26be75c7 --- /dev/null +++ b/certbot/run-certbot.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +letsencrypt certonly --webroot -w /var/www/letsencrypt -d "$CN" --agree-tos --email "$EMAIL" --non-interactive --text + +cp /etc/letsencrypt/archive/"$CN"/cert1.pem /var/certs/cert1.pem +cp /etc/letsencrypt/archive/"$CN"/privkey1.pem /var/certs/privkey1.pem diff --git a/docker-compose.yml b/docker-compose.yml index b7eed65b..223d449d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -311,9 +311,22 @@ services: - "9300:9300" links: - php-fpm + +### Certbot Container ################################## + + certbot: + build: + context: ./certbot + volumes: + - ./data/certbot/certs/:/var/certs + - ./certbot/letsencrypt/:/var/www/letsencrypt + environment: + CN: "fake.domain.com" + EMAIL: "fake.email@gmail.com" ### Volumes Setup ########################################### + volumes: mysql: driver: "local" diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 97e5a0ed..40cb9d7c 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -23,6 +23,10 @@ http { error_log /var/log/nginx/error.log; gzip on; gzip_disable "msie6"; + + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; + include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-available/*; open_file_cache max=100; From 48f8f3c02da989fd1f13f6f39a2c21a5776faaed Mon Sep 17 00:00:00 2001 From: philtrep Date: Sat, 15 Oct 2016 10:40:22 -0400 Subject: [PATCH 02/40] Added certbot serving in laravel conf --- nginx/sites/default.conf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nginx/sites/default.conf b/nginx/sites/default.conf index d5058bd5..78f85cb2 100644 --- a/nginx/sites/default.conf +++ b/nginx/sites/default.conf @@ -22,6 +22,11 @@ server { location ~ /\.ht { deny all; } + + location /.well-known/acme-challenge/ { + root /var/www/letsencrypt/; + log_not_found off; + } } From d89a944e224c4246c6ee7da86e90464e7c158ddd Mon Sep 17 00:00:00 2001 From: philtrep Date: Sat, 15 Oct 2016 10:47:00 -0400 Subject: [PATCH 03/40] Added nginx config for certbot --- docker-compose.yml | 1 - nginx/sites/laravel-https.conf | 30 ++++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 nginx/sites/laravel-https.conf diff --git a/docker-compose.yml b/docker-compose.yml index 223d449d..54a3f135 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -326,7 +326,6 @@ services: ### Volumes Setup ########################################### - volumes: mysql: driver: "local" diff --git a/nginx/sites/laravel-https.conf b/nginx/sites/laravel-https.conf new file mode 100644 index 00000000..0704dbf8 --- /dev/null +++ b/nginx/sites/laravel-https.conf @@ -0,0 +1,30 @@ +server { + + listen 443 default_server; + listen [::]:443 default_server ipv6only=on; + + ssl on; + ssl_certificate /var/certs/cert1.pem; + ssl_certificate_key /var/certs/privkey1.pem; + + server_name laravel; + root /var/www/laravel/public; + index index.php index.html index.htm; + + location / { + try_files $uri $uri/ /index.php$is_args$args; + } + + location ~ \.php$ { + try_files $uri /index.php =404; + fastcgi_pass php-upstream; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + } + + location ~ /\.ht { + deny all; + } + +} From b401c517b2fcd1724069ed125ac147d1693acc64 Mon Sep 17 00:00:00 2001 From: Vladimir Kireyko Date: Thu, 15 Dec 2016 15:05:48 +0200 Subject: [PATCH 04/40] Add dockerfile with php-fpm 7.1 --- php-fpm/Dockerfile-71 | 160 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 php-fpm/Dockerfile-71 diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 new file mode 100644 index 00000000..065a32fb --- /dev/null +++ b/php-fpm/Dockerfile-71 @@ -0,0 +1,160 @@ +# +#-------------------------------------------------------------------------- +# Image Setup +#-------------------------------------------------------------------------- +# +# To edit the 'php-fpm' base Image, visit its repository on Github +# https://github.com/LaraDock/php-fpm +# +# To change its version, see the available Tags on the Docker Hub: +# https://hub.docker.com/r/laradock/php-fpm/tags/ +# + +FROM laradock/php-fpm:7.1--0.0 # placeholder. Need change after new image would be built. + +MAINTAINER Mahmoud Zalt + +# +#-------------------------------------------------------------------------- +# Mandatory Software's Installation +#-------------------------------------------------------------------------- +# +# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....) +# are installed on the base image 'laradock/php-fpm' image. If you want +# to add more Software's or remove existing one, you need to edit the +# base image (https://github.com/LaraDock/php-fpm). +# + +# +#-------------------------------------------------------------------------- +# Optional Software's Installation +#-------------------------------------------------------------------------- +# +# Optional Software's will only be installed if you set them to `true` +# in the `docker-compose.yml` before the build. +# Example: +# - INSTALL_ZIP_ARCHIVE=true +# - ... +# + +##################################### +# xDebug: +##################################### + +ARG INSTALL_XDEBUG=false +RUN if [ ${INSTALL_XDEBUG} = true ]; then \ + # Install the xdebug extension + pecl install xdebug && \ + docker-php-ext-enable xdebug \ +;fi + +# Copy xdebug configration for remote debugging +COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini + +##################################### +# MongoDB: +##################################### + +ARG INSTALL_MONGO=false +RUN if [ ${INSTALL_MONGO} = true ]; then \ + # Install the mongodb extension + pecl install mongodb && \ + docker-php-ext-enable mongodb \ +;fi + +##################################### +# ZipArchive: +##################################### + +ARG INSTALL_ZIP_ARCHIVE=false +RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \ + # Install the zip extension + pecl install zip && \ + docker-php-ext-enable zip \ +;fi + +##################################### +# PHP Memcached: +##################################### + +ARG INSTALL_MEMCACHED=false +RUN if [ ${INSTALL_MEMCACHED} = true ]; then \ + # Install the php memcached extension + curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \ + && mkdir -p memcached \ + && tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \ + && ( \ + cd memcached \ + && phpize \ + && ./configure \ + && make -j$(nproc) \ + && make install \ + ) \ + && rm -r memcached \ + && rm /tmp/memcached.tar.gz \ + && docker-php-ext-enable memcached \ +;fi + +##################################### +# PHP Aerospike: +##################################### + +ARG INSTALL_AEROSPIKE_EXTENSION=false +ENV INSTALL_AEROSPIKE_EXTENSION ${INSTALL_AEROSPIKE_EXTENSION} +# Copy aerospike configration for remote debugging +COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini +RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \ + # Install the php aerospike extension + curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/luciano-jr/aerospike-client-php/archive/master.tar.gz" \ + && mkdir -p aerospike-client-php \ + && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \ + && ( \ + cd aerospike-client-php/src/aerospike \ + && phpize \ + && ./build.sh \ + && make install \ + ) \ + && rm /tmp/aerospike-client-php.tar.gz \ +;fi + +##################################### +# Opcache: +##################################### +ARG INSTALL_OPCACHE=false +RUN if [ ${INSTALL_OPCACHE} = true ]; then \ + docker-php-ext-install opcache && \ + docker-php-ext-enable opcache \ +;fi + +# Copy opcache configration +COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini + +##################################### +# Codeigniter Modifications: +##################################### + +ARG CODEIGNITER=false +RUN if [ ${CODEIGNITER} = true ]; then \ + # Install Codeigniter PHP extentions requirements + docker-php-ext-install mysqli && \ + docker-php-ext-install tokenizer \ +;fi + +# +#-------------------------------------------------------------------------- +# Final Touch +#-------------------------------------------------------------------------- +# + +ADD ./laravel.ini /usr/local/etc/php/conf.d +ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/ + +RUN rm -r /var/lib/apt/lists/* + +RUN usermod -u 1000 www-data + +WORKDIR /var/www + +CMD ["php-fpm"] + +EXPOSE 9000 From aabe504c24c5913896bd8f1930402003ca9f3383 Mon Sep 17 00:00:00 2001 From: Vladimir Kireyko Date: Thu, 15 Dec 2016 15:13:00 +0200 Subject: [PATCH 05/40] Add dokerfile with php 7.1 --- docker-compose.yml | 1 + workspace/Dockerfile-71 | 260 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 261 insertions(+) create mode 100644 workspace/Dockerfile-71 diff --git a/docker-compose.yml b/docker-compose.yml index 2c4a6334..69352bd5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,6 +29,7 @@ services: - PGID=1000 - NODE_VERSION=stable - TZ=UTC + # dockerfile: Dockerfile-71 volumes_from: - applications extra_hosts: diff --git a/workspace/Dockerfile-71 b/workspace/Dockerfile-71 new file mode 100644 index 00000000..1f9fb855 --- /dev/null +++ b/workspace/Dockerfile-71 @@ -0,0 +1,260 @@ +# +#-------------------------------------------------------------------------- +# Image Setup +#-------------------------------------------------------------------------- +# +# To edit the 'workspace' base Image, visit its repository on Github +# https://github.com/LaraDock/workspace +# +# To change its version, see the available Tags on the Docker Hub: +# https://hub.docker.com/r/laradock/workspace/tags/ +# + +FROM laradock/workspace:1.3 # placeholder. Need change after new image would be built. + +MAINTAINER MAINTAINER Mahmoud Zalt + +# +#-------------------------------------------------------------------------- +# Mandatory Software's Installation +#-------------------------------------------------------------------------- +# +# Mandatory Software's such as ("php7.1-cli", "git", "vim", ....) are +# installed on the base image 'laradock/workspace' image. If you want +# to add more Software's or remove existing one, you need to edit the +# base image (https://github.com/LaraDock/workspace). +# + +# +#-------------------------------------------------------------------------- +# Optional Software's Installation +#-------------------------------------------------------------------------- +# +# Optional Software's will only be installed if you set them to `true` +# in the `docker-compose.yml` before the build. +# Example: +# - INSTALL_NODE=false +# - ... +# + +##################################### +# Non-Root User: +##################################### + +# Add a non-root user to prevent files being created with root permissions on host machine. +ARG PUID=1000 +ARG PGID=1000 +RUN groupadd -g $PGID laradock && \ + useradd -u $PUID -g laradock -m laradock + +##################################### +# Set Timezone +##################################### + +ARG TZ=UTC +ENV TZ ${TZ} +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +##################################### +# Composer: +##################################### + +# Add the composer.json +COPY ./composer.json /home/laradock/.composer/composer.json + +# Make sure that ~/.composer belongs to laradock +RUN chown -R laradock:laradock /home/laradock/.composer +USER laradock + +# Check if global install need to be ran +ARG COMPOSER_GLOBAL_INSTALL=false +ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL} +RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \ + # run the install + composer global install \ +;fi + +##################################### +# Crontab +##################################### +USER root + +COPY ./crontab /var/spool/cron/crontabs + +##################################### +# xDebug: +##################################### + +ARG INSTALL_XDEBUG=false +RUN if [ ${INSTALL_XDEBUG} = true ]; then \ + # Load the xdebug extension only with phpunit commands + apt-get update && \ + apt-get install -y --force-yes php-xdebug && \ + sed -i 's/^/;/g' /etc/php/7.1/cli/conf.d/20-xdebug.ini && \ + echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \ +;fi +# ADD for REMOTE debugging +COPY ./xdebug.ini /etc/php/7.1/cli/conf.d/xdebug.ini + +##################################### +# ssh: +##################################### +ARG INSTALL_WORKSPACE_SSH=false +ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH} + +ADD insecure_id_rsa /tmp/id_rsa +ADD insecure_id_rsa.pub /tmp/id_rsa.pub + +RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \ + rm -f /etc/service/sshd/down && \ + cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \ + && cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \ + && cat /tmp/id_rsa >> /root/.ssh/id_rsa \ + && rm -f /tmp/id_rsa* \ + && chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \ + && chmod 400 /root/.ssh/id_rsa \ +;fi + +##################################### +# MongoDB: +##################################### + +# Check if Mongo needs to be installed +ARG INSTALL_MONGO=false +ENV INSTALL_MONGO ${INSTALL_MONGO} +RUN if [ ${INSTALL_MONGO} = true ]; then \ + # Install the mongodb extension + pecl install mongodb && \ + echo "extension=mongodb.so" >> /etc/php/7.1/cli/conf.d/30-mongodb.ini \ +;fi + +##################################### +# Drush: +##################################### +USER root +ENV DRUSH_VERSION 8.1.2 +ARG INSTALL_DRUSH=false +ENV INSTALL_DRUSH ${INSTALL_DRUSH} +RUN if [ ${INSTALL_DRUSH} = true ]; then \ + # Install Drush 8 with the phar file. + curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \ + chmod +x /usr/local/bin/drush && \ + drush core-status \ +;fi + +USER laradock + +##################################### +# Node / NVM: +##################################### + +# Check if NVM needs to be installed +ARG NODE_VERSION=stable +ENV NODE_VERSION ${NODE_VERSION} +ARG INSTALL_NODE=false +ENV INSTALL_NODE ${INSTALL_NODE} +ENV NVM_DIR /home/laradock/.nvm +RUN if [ ${INSTALL_NODE} = true ]; then \ + # Install nvm (A Node Version Manager) + curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.6/install.sh | bash && \ + . $NVM_DIR/nvm.sh && \ + nvm install ${NODE_VERSION} && \ + nvm use ${NODE_VERSION} && \ + nvm alias ${NODE_VERSION} && \ + npm install -g gulp bower vue-cli \ +;fi + +# Wouldn't execute when added to the RUN statement in the above block +# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell +RUN if [ ${INSTALL_NODE} = true ]; then \ + echo "" >> ~/.bashrc && \ + echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \ + echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \ +;fi + +# Add NVM binaries to root's .bashrc +USER root + +RUN if [ ${INSTALL_NODE} = true ]; then \ + echo "" >> ~/.bashrc && \ + echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \ + echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \ +;fi + +##################################### +# YARN: +##################################### + +USER laradock + +ARG INSTALL_YARN=false +ENV INSTALL_YARN ${INSTALL_YARN} + +RUN if [ ${INSTALL_YARN} = true ]; then \ + [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \ + curl -o- -L https://yarnpkg.com/install.sh | bash && \ + echo "" >> ~/.bashrc && \ + echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \ +;fi + +# Add YARN binaries to root's .bashrc +USER root + +RUN if [ ${INSTALL_YARN} = true ]; then \ + echo "" >> ~/.bashrc && \ + echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \ + echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \ +;fi + +##################################### +# PHP Aerospike: +##################################### +USER root + +ARG INSTALL_AEROSPIKE_EXTENSION=true +ENV INSTALL_AEROSPIKE_EXTENSION ${INSTALL_AEROSPIKE_EXTENSION} + +# Copy aerospike configration for remote debugging +COPY ./aerospike.ini /etc/php/7.1/cli/conf.d/aerospike.ini + +RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \ + # Install the php aerospike extension + curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/luciano-jr/aerospike-client-php/archive/master.tar.gz" \ + && mkdir -p aerospike-client-php \ + && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \ + && ( \ + cd aerospike-client-php/src/aerospike \ + && phpize \ + && ./build.sh \ + && make install \ + ) \ + && rm /tmp/aerospike-client-php.tar.gz \ +;fi + +RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = false ]; then \ + rm /etc/php/7.1/cli/conf.d/aerospike.ini \ +;fi + +##################################### +# Non-root user : PHPUnit path +##################################### + +# add ./vendor/bin to non-root user's bashrc (needed for phpunit) +USER laradock + +RUN echo "" >> ~/.bashrc && \ + echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc + +# +#-------------------------------------------------------------------------- +# Final Touch +#-------------------------------------------------------------------------- +# + +# Clean up +USER root +RUN apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Set default work directory +WORKDIR /var/www From 7b542618f0e27f5ec5892b91df01faf46be951df Mon Sep 17 00:00:00 2001 From: alchimik Date: Sun, 19 Feb 2017 13:26:18 +0800 Subject: [PATCH 06/40] Update opcache.ini --- php-fpm/opcache.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/php-fpm/opcache.ini b/php-fpm/opcache.ini index 59683ba8..9a3f646b 100644 --- a/php-fpm/opcache.ini +++ b/php-fpm/opcache.ini @@ -1,4 +1,5 @@ -extension=opcache.so +; NOTE: The actual opcache.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini) + opcache.enable="1" opcache.memory_consumption="256" opcache.use_cwd="0" From 4947dfaad1b158529396926e1ae6a606116596c4 Mon Sep 17 00:00:00 2001 From: Riccardo Tribbia Date: Sat, 25 Feb 2017 21:25:33 +0100 Subject: [PATCH 07/40] - Add apache conf file for specific virtualhost ServerName --- apache2/Dockerfile | 3 +++ apache2/apache-config.conf | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 apache2/apache-config.conf diff --git a/apache2/Dockerfile b/apache2/Dockerfile index 569ba9f3..21373f5c 100644 --- a/apache2/Dockerfile +++ b/apache2/Dockerfile @@ -15,3 +15,6 @@ WORKDIR /var/www/public ENTRYPOINT ["/opt/docker/bin/entrypoint.sh"] CMD ["supervisord"] + +# Update the default apache site with the config we created. +ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf \ No newline at end of file diff --git a/apache2/apache-config.conf b/apache2/apache-config.conf new file mode 100644 index 00000000..801be4ed --- /dev/null +++ b/apache2/apache-config.conf @@ -0,0 +1,16 @@ + + ServerAdmin me@mydomain.com + DocumentRoot /var/www/site + ServerName local.mydomain.com + + + Options Indexes FollowSymLinks MultiViews + AllowOverride All + Order deny,allow + Allow from all + + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + \ No newline at end of file From ca45806aaa9b394f62629aaa4b05f167b584c91b Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 12:34:20 +0100 Subject: [PATCH 08/40] Updated gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 7c6f11b7..b3403af6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea /logs /data +.env \ No newline at end of file From 474504f1d308250e8d2a5bba4e3a92eb50601d5a Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 12:35:28 +0100 Subject: [PATCH 09/40] Added env-example and adjusted docker-compose yml to support new env file --- .env | 5 ++ docker-compose.yml | 3 +- env-example | 164 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 env-example diff --git a/.env b/.env index accd09a0..7eac1a8b 100644 --- a/.env +++ b/.env @@ -1 +1,6 @@ COMPOSE_CONVERT_WINDOWS_PATHS=1 + +# APPLICATIONS +APPLICATIONS_HOST_DIR=../ +APPLICATIONS_IMAGE_NAME=tianon/true +APPLICATIONS_CONTAINER_NAME=applications \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 67af2244..094ed9ab 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,8 +7,7 @@ services: applications: image: tianon/true volumes: - - ../:/var/www -# - ../sample/:/var/www/sample + - ${APPLICATIONS_HOST_DIR}:/var/www ### Workspace Utilities Container ########################### diff --git a/env-example b/env-example new file mode 100644 index 00000000..5fa13c93 --- /dev/null +++ b/env-example @@ -0,0 +1,164 @@ +################## +# DOCKER COMPOSE # +# ################ + +DOCKER_HOST_IP=10.0.75.1 + +# Switch between PHP and HHVM interpreter +# PHP_INTERPRETER=hhvm +PHP_INTERPRETER=php-fpm + +# Switch between supported PHP versions... does not apply for HHVM. +# Please see composer.json in Laravel Framework for the minimum Php Version +#PHP_VERSION=55 +#PHP_VERSION=56 +PHP_VERSION=70 + +# APPLICATIONS +APPLICATIONS_HOST_DIR=../ +APPLICATIONS_IMAGE_NAME=tianon/true +APPLICATIONS_CONTAINER_NAME=applications + +# WORKSPACE +WORKSPACE_BUILD_PATH=./workspace +WORKSPACE_CONTAINER_NAME=workspace +WORKSPACE_INSTALL_XDEBUG=false +WORKSPACE_INSTALL_MONGO=false +WORKSPACE_INSTALL_NODE=false +WORKSPACE_INSTALL_YARN=false +WORKSPACE_INSTALL_DRUSH=false +WORKSPACE_INSTALL_AEROSPIKE_EXTENSION=false +WORKSPACE_COMPOSER_GLOBAL_INSTALL=false +WORKSPACE_INSTALL_WORKSPACE_SSH=false +WORKSPACE_PUID=1000 +WORKSPACE_PGID=1000 +WORKSPACE_NODE_VERSION=stable +WORKSPACE_TIMEZONE=UTC +WORKSPACE_SSH_PORT=2222 + + +# PHP_FPM +PHP_FPM_BUILD_PATH=./php-fpm +PHP_FPM_CONTAINER_NAME=php-fpm +PHP_FPM_DOCKER_FILE=Dockerfile-70 +PHP_FPM_INSTALL_XDEBUG=false +PHP_FPM_INSTALL_MONGO=false +PHP_FPM_INSTALL_ZIP_ARCHIVE=false +PHP_FPM_INSTALL_MEMCACHED=false +PHP_FPM_INSTALL_OPCACHE=false +PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false +PHP_FPM_CODEIGNITER=false +PHP_FPM_IDE_CONFIG=serverName=laravel + + +# NGINX +NGINX_BUILD_PATH=./nginx +NGINX_CONTAINER_NAME=nginx +NGINX_HOST_HTTP_PORT=8080 +NGINX_HOST_HTTPS_PORT=8433 +NGINX_HOST_LOG_PATH=./logs/nginx/ + + +# APACHE +APACHE2_BUILD_PATH=./apache2 +APACHE2_CONTAINER_NAME=apache2 +APACHE_HOST_HTTP_PORT=7080 +APACHE_HOST_HTTPS_PORT=7443 +APACHE2_PHP_SOCKET=php-fpm:9000 +APACHE_HOST_LOG_PATH=./logs/apache2 + +# HHVM +HHVM_BUILD_PATH=./hhvm +HHVM_CONTAINER_NAME=hhvm +HHVM_HOST_PORT=9000 + +# MYSQL +MYSQL_BUILD_PATH=./mysql +MYSQL_CONTAINER_NAME=mysql +MYSQL_HOST_PORT=3307 +MYSQL_ROOT_PASSWORD=root + +# MEMCACHED +MEMCACHED_BUILD_PATH=./memcached +MEMCACHED_CONTAINER_NAME=memcached +MEMCACHED_HOST_PORT=11211 + +# BEANSTALKD +BEANSTALKD_BUILD_PATH=./beanstalkd +BEANSTALKD_CONTAINER_NAME=beanstalkd +BEANSTALKD_HOST_PORT=11300 + +# BEANSTALKD CONSOLE +BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console +BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console +BEANSTALKD_CONSOLE_HOST_PORT=2080 + +# RABBITMQ +RABBITMQ_BUILD_PATH=./rabbitmq +RABBITMQ_CONTAINER_NAME=rabbitmq +RABBITMQ_NODE_HOST_PORT=5672 +RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671 +RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672 +RABBITMQ_DEFAULT_USER=guest +RABBITMQ_DEFAULT_PASS=guest + +# ELASTICSEARCH +ELASTICSEARCH_BUILD_PATH=./elasticsearch/versions/2 +ELASTICSEARCH_CONTAINER_NAME=elasticsearch +ELASTICSEARCH_HOST_HTTP_PORT=9200 +ELASTICSEARCH_HOST_TRANSPORT_PORT=9300 + +#################### +# LARAVEL SPECIFIC # +# ################## + +# APP +APP_ENV=local +APP_KEY=base64:FeZgPe6Pqm7dOCy7Sx0P/PQ9ICMuwAsHLms7DUOxCkI= +APP_DEBUG=true +APP_LOG_LEVEL=debug +APP_URL=http://localhost + +# DATABASE +DB_CONNECTION=mysql + +# Laravel Original: DB_HOST=127.0.0.1 +# must match the service name or container name. +# so if we want to use mariadb it must look like: +# DB_HOST=mariadb +DB_HOST=mysql + +# IMPORTANT: +# - ports are defined in docker-compose.yml like HOST_PORT:CONTAINER_PORT +# - DB_PORT=3306 represents the CONTAINER_PORT not the HOST_PORT +# +# This means that this should not be changed unless you have also tweaked the database image created by +# docker-compose.yml. +DB_PORT=3306 +DB_DATABASE=default +DB_USERNAME=default +DB_PASSWORD=secret + +# DRIVERS +BROADCAST_DRIVER=log +CACHE_DRIVER=file +SESSION_DRIVER=file +QUEUE_DRIVER=sync + +# REDIS +REDIS_HOST=redis +REDIS_PASSWORD=null +REDIS_PORT=6379 + +# MAIL +MAIL_DRIVER=smtp +MAIL_HOST=mailtrap.io +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null + +# PUSHER +PUSHER_APP_ID= +PUSHER_KEY= +PUSHER_SECRET= From 3f13aa4f50e3346fea90cdafb9b1cdfdb6ce01de Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 12:36:44 +0100 Subject: [PATCH 10/40] Removed .env file --- .env | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index 7eac1a8b..00000000 --- a/.env +++ /dev/null @@ -1,6 +0,0 @@ -COMPOSE_CONVERT_WINDOWS_PATHS=1 - -# APPLICATIONS -APPLICATIONS_HOST_DIR=../ -APPLICATIONS_IMAGE_NAME=tianon/true -APPLICATIONS_CONTAINER_NAME=applications \ No newline at end of file From fa9ac1e471c9521c272cf43b858e2f13ab41a9eb Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 13:53:40 +0100 Subject: [PATCH 11/40] Added workspace from env file and updated env-example --- docker-compose.yml | 38 +++++++++++++++++++------------------- env-example | 7 +++++-- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 094ed9ab..08f0a95a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,25 +14,25 @@ services: workspace: build: context: ./workspace - args: - - INSTALL_XDEBUG=false - - INSTALL_SOAP=false - - INSTALL_MONGO=false - - INSTALL_NODE=false - - INSTALL_YARN=false - - INSTALL_DRUSH=false - - INSTALL_AEROSPIKE_EXTENSION=false - - INSTALL_V8JS_EXTENSION=false - - COMPOSER_GLOBAL_INSTALL=false - - INSTALL_WORKSPACE_SSH=false - - INSTALL_LARAVEL_ENVOY=false - - INSTALL_DEPLOYER=false - - INSTALL_LINUXBREW=false - - PUID=1000 - - PGID=1000 - - NODE_VERSION=stable - - YARN_VERSION=latest - - TZ=UTC + args: + - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} + - INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP} + - INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO} + - INSTALL_NODE=${WORKSPACE_INSTALL_NODE} + - INSTALL_YARN=${WORKSPACE_INSTALL_YARN} + - INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH} + - INSTALL_AEROSPIKE_EXTENSION=${WORKSPACE_INSTALL_AEROSPIKE_EXTENSION} + - INSTALL_V8JS_EXTENSION=${WORKSPACE_INSTALL_INSTALL_V8JS_EXTENSION} + - COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL} + - INSTALL_WORKSPACE_SSH=${WORKSPACE_INSTALL_WORKSPACE_SSH} + - INSTALL_LARAVEL_ENVOY=${WORKSPACE_INSTALL_LARAVEL_ENVOY} + - INSTALL_DEPLOYER=${WORKSPACE_INSTALL_LARAVEL_ENVOY} + - INSTALL_LINUXBREW=${WORKSPACE_INSTALL_LARAVEL_ENVOY} + - PUID=${WORKSPACE_PUID} + - PGID=${WORKSPACE_PGID} + - NODE_VERSION=${WORKSPACE_NODE_VERSION} + - YARN_VERSION=${WORKSPACE_TIMEZONE} + - TZ=${WORKSPACE_TIMEZONE=UTC} volumes_from: - applications extra_hosts: diff --git a/env-example b/env-example index 5fa13c93..84c29181 100644 --- a/env-example +++ b/env-example @@ -20,16 +20,19 @@ APPLICATIONS_IMAGE_NAME=tianon/true APPLICATIONS_CONTAINER_NAME=applications # WORKSPACE -WORKSPACE_BUILD_PATH=./workspace -WORKSPACE_CONTAINER_NAME=workspace WORKSPACE_INSTALL_XDEBUG=false +WORKSPACE_INSTALL_SOAP=false WORKSPACE_INSTALL_MONGO=false WORKSPACE_INSTALL_NODE=false WORKSPACE_INSTALL_YARN=false WORKSPACE_INSTALL_DRUSH=false WORKSPACE_INSTALL_AEROSPIKE_EXTENSION=false +WORKSPACE_INSTALL_INSTALL_V8JS_EXTENSION=false WORKSPACE_COMPOSER_GLOBAL_INSTALL=false WORKSPACE_INSTALL_WORKSPACE_SSH=false +WORKSPACE_INSTALL_LARAVEL_ENVOY=false +WORKSPACE_INSTALL_DEPLOYER=false +WORKSPACE_INSTALL_LINUXBREW=false WORKSPACE_PUID=1000 WORKSPACE_PGID=1000 WORKSPACE_NODE_VERSION=stable From c112fdffc1598194eb4dcf5283e254c10742ee40 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 14:05:47 +0100 Subject: [PATCH 12/40] Updated PHP-FPM container to accept .env variables --- docker-compose.yml | 24 ++++++++++++------------ env-example | 10 +++++----- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 08f0a95a..49b0f51b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -48,18 +48,18 @@ services: build: context: ./php-fpm args: - - INSTALL_XDEBUG=false - - INSTALL_SOAP=false - - INSTALL_MONGO=false - - INSTALL_ZIP_ARCHIVE=false - - INSTALL_BCMATH=false - - INSTALL_PHPREDIS=false - - INSTALL_MEMCACHED=false - - INSTALL_OPCACHE=false - - INSTALL_EXIF=false - - INSTALL_AEROSPIKE_EXTENSION=false - - CODEIGNITER=false - dockerfile: Dockerfile-70 + - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG} + - INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP} + - INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO} + - INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE} + - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} + - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} + - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} + - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} + - INSTALL_EXIF=${PHP_FPM_DOCKER_FILE} + - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_DOCKER_FILE} + - CODEIGNITER=${PHP_FPM_DOCKER_FILE} + dockerfile: ${PHP_FPM_DOCKER_FILE} volumes_from: - applications expose: diff --git a/env-example b/env-example index 84c29181..f9e86531 100644 --- a/env-example +++ b/env-example @@ -41,18 +41,18 @@ WORKSPACE_SSH_PORT=2222 # PHP_FPM -PHP_FPM_BUILD_PATH=./php-fpm -PHP_FPM_CONTAINER_NAME=php-fpm PHP_FPM_DOCKER_FILE=Dockerfile-70 PHP_FPM_INSTALL_XDEBUG=false PHP_FPM_INSTALL_MONGO=false +PHP_FPM_INSTALL_SOAP=false PHP_FPM_INSTALL_ZIP_ARCHIVE=false +PHP_FPM_INSTALL_BCMATH=false +PHP_FPM_INSTALL_PHPREDIS=false PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_OPCACHE=false +PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false -PHP_FPM_CODEIGNITER=false -PHP_FPM_IDE_CONFIG=serverName=laravel - +PHP_FPM_CODEIGNITER=falses # NGINX NGINX_BUILD_PATH=./nginx From 356dc36fd57802e67b5f669b602943056ca8ca02 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 14:11:16 +0100 Subject: [PATCH 13/40] Added NGINX from env file and updated env-example --- docker-compose.yml | 6 +++--- env-example | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 49b0f51b..e3a9c966 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -82,9 +82,9 @@ services: - PHP_UPSTREAM=php-fpm volumes_from: - applications - volumes: - - ./logs/nginx/:/var/log/nginx - - ./nginx/sites/:/etc/nginx/sites-available + volumes: + - ${NGINX_HOST_LOG_PATH}:/var/log/nginx + - ${NGINX_SITES_PATH}:/etc/nginx/sites-available ports: - "80:80" - "443:443" diff --git a/env-example b/env-example index f9e86531..aa2a7310 100644 --- a/env-example +++ b/env-example @@ -39,7 +39,6 @@ WORKSPACE_NODE_VERSION=stable WORKSPACE_TIMEZONE=UTC WORKSPACE_SSH_PORT=2222 - # PHP_FPM PHP_FPM_DOCKER_FILE=Dockerfile-70 PHP_FPM_INSTALL_XDEBUG=false @@ -55,11 +54,11 @@ PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false PHP_FPM_CODEIGNITER=falses # NGINX -NGINX_BUILD_PATH=./nginx -NGINX_CONTAINER_NAME=nginx NGINX_HOST_HTTP_PORT=8080 NGINX_HOST_HTTPS_PORT=8433 NGINX_HOST_LOG_PATH=./logs/nginx/ +NGINX_SITES_PATH=./nginx/sites/ + # APACHE From 966a84fa39dce4074c082b6be160d5f3af779b8b Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 14:49:43 +0100 Subject: [PATCH 14/40] Fixed timezone issue in docker-compose.yml --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index e3a9c966..073b0ff9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,7 +32,7 @@ services: - PGID=${WORKSPACE_PGID} - NODE_VERSION=${WORKSPACE_NODE_VERSION} - YARN_VERSION=${WORKSPACE_TIMEZONE} - - TZ=${WORKSPACE_TIMEZONE=UTC} + - TZ=${WORKSPACE_TIMEZONE} volumes_from: - applications extra_hosts: From f610aa63d16617f817c1b0015e3debb0b6426c28 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 27 Feb 2017 15:58:38 +0100 Subject: [PATCH 15/40] Removed reference to homestead --- docker-compose.yml | 4 ++-- mysql/Dockerfile | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 073b0ff9..ba7df27f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -125,8 +125,8 @@ services: build: context: ./mysql args: - - MYSQL_DATABASE=homestead - - MYSQL_USER=homestead + - MYSQL_DATABASE=default + - MYSQL_USER=default - MYSQL_PASSWORD=secret - MYSQL_ROOT_PASSWORD=root volumes: diff --git a/mysql/Dockerfile b/mysql/Dockerfile index 420ddfaa..b483cc24 100644 --- a/mysql/Dockerfile +++ b/mysql/Dockerfile @@ -6,8 +6,8 @@ ADD startup /etc/mysql/startup RUN chown -R mysql:root /var/lib/mysql/ -ARG MYSQL_DATABASE=homestead -ARG MYSQL_USER=homestead +ARG MYSQL_DATABASE=default +ARG MYSQL_USER=default ARG MYSQL_PASSWORD=secret ARG MYSQL_ROOT_PASSWORD=root From a6e0338245b6a4b69eda9c00d49268f3f59f7ff8 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Wed, 1 Mar 2017 08:08:20 +0100 Subject: [PATCH 16/40] Removed Homestead reference in all DB containers --- docker-compose.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index ba7df27f..48bb0e22 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -143,8 +143,8 @@ services: ports: - "3306:3306" environment: - MYSQL_DATABASE: homestead - MYSQL_USER: homestead + MYSQL_DATABASE: default + MYSQL_USER: default MYSQL_PASSWORD: secret MYSQL_ROOT_PASSWORD: root @@ -157,8 +157,8 @@ services: ports: - "5432:5432" environment: - POSTGRES_DB: homestead - POSTGRES_USER: homestead + POSTGRES_DB: default + POSTGRES_USER: default POSTGRES_PASSWORD: secret ### PostgreSQL PostGis Container ############################ @@ -170,8 +170,8 @@ services: ports: - "5432:5432" environment: - POSTGRES_DB: homestead - POSTGRES_USER: homestead + POSTGRES_DB: default + POSTGRES_USER: default POSTGRES_PASSWORD: secret ### Neo4j Container ######################################### From 59dfacee13072c22a121bea4593b991d0c9d8c3c Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Wed, 1 Mar 2017 08:17:34 +0100 Subject: [PATCH 17/40] Removed homestead entirely this time --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 48bb0e22..8111bc56 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -296,7 +296,7 @@ services: build: ./phpmyadmin environment: PMA_ARBITRARY: 1 - MYSQL_USER: homestead + MYSQL_USER: default MYSQL_PASSWORD: secret MYSQL_ROOT_PASSWORD: root ports: From b45f39599643002305584beaa400d3cf649872e5 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Wed, 1 Mar 2017 08:29:17 +0100 Subject: [PATCH 18/40] Removed homestead entirely this time --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8111bc56..49f598f8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -182,7 +182,7 @@ services: - "7474:7474" - "1337:1337" environment: - - NEO4J_AUTH=homestead:secret + - NEO4J_AUTH=default:secret volumes: - neo4j:/var/lib/neo4j/data From 8317fbde5ce16544a5686f26f19f1005867c77ae Mon Sep 17 00:00:00 2001 From: Riccardo Tribbia Date: Wed, 1 Mar 2017 15:55:33 +0100 Subject: [PATCH 19/40] - Eliminato .env dal repo git per poterlo linkare nel progetto locale - Impostata configurazione dinamica porte per apache --- .env | 1 - .gitignore | 1 + apache2/apache-config.conf | 8 ++++---- docker-compose.yml | 34 +++++++++++++++++----------------- 4 files changed, 22 insertions(+), 22 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index accd09a0..00000000 --- a/.env +++ /dev/null @@ -1 +0,0 @@ -COMPOSE_CONVERT_WINDOWS_PATHS=1 diff --git a/.gitignore b/.gitignore index 7c6f11b7..00571d72 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea /logs /data +.env diff --git a/apache2/apache-config.conf b/apache2/apache-config.conf index 801be4ed..aede94e4 100644 --- a/apache2/apache-config.conf +++ b/apache2/apache-config.conf @@ -1,9 +1,9 @@ - + ServerAdmin me@mydomain.com - DocumentRoot /var/www/site - ServerName local.mydomain.com + DocumentRoot ${WEB_DOCUMENT_ROOT} + ServerName ${SERVER_ALIAS} - + Options Indexes FollowSymLinks MultiViews AllowOverride All Order deny,allow diff --git a/docker-compose.yml b/docker-compose.yml index 67af2244..53dd7178 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -104,8 +104,8 @@ services: volumes: - ./logs/apache2:/var/log/apache2 ports: - - "80:80" - - "443:443" + - "$SERVER_PORT:80" + - "$SERVER_SSL_PORT:443" links: - php-fpm @@ -126,14 +126,14 @@ services: build: context: ./mysql args: - - MYSQL_DATABASE=homestead - - MYSQL_USER=homestead - - MYSQL_PASSWORD=secret + - MYSQL_DATABASE=$DB_DATABASE + - MYSQL_USER=$DB_USERNAME + - MYSQL_PASSWORD=$DB_PASSWORD - MYSQL_ROOT_PASSWORD=root volumes: - mysql:/var/lib/mysql ports: - - "3306:3306" + - "$DB_PORT:3306" ### MariaDB Container ####################################### @@ -144,9 +144,9 @@ services: ports: - "3306:3306" environment: - MYSQL_DATABASE: homestead - MYSQL_USER: homestead - MYSQL_PASSWORD: secret + MYSQL_DATABASE: $DB_DATABASE + MYSQL_USER: $DB_USERNAME + MYSQL_PASSWORD: $DB_PASSWORD MYSQL_ROOT_PASSWORD: root ### PostgreSQL Container #################################### @@ -158,9 +158,9 @@ services: ports: - "5432:5432" environment: - POSTGRES_DB: homestead - POSTGRES_USER: homestead - POSTGRES_PASSWORD: secret + POSTGRES_DB: $DB_DATABASE + POSTGRES_USER: $DB_USERNAME + POSTGRES_PASSWORD: $DB_PASSWORD ### PostgreSQL PostGis Container ############################ @@ -171,9 +171,9 @@ services: ports: - "5432:5432" environment: - POSTGRES_DB: homestead - POSTGRES_USER: homestead - POSTGRES_PASSWORD: secret + POSTGRES_DB: $DB_DATABASE + POSTGRES_USER: $DB_USERNAME + POSTGRES_PASSWORD: $DB_PASSWORD ### Neo4j Container ######################################### @@ -297,8 +297,8 @@ services: build: ./phpmyadmin environment: PMA_ARBITRARY: 1 - MYSQL_USER: homestead - MYSQL_PASSWORD: secret + MYSQL_USER: $DB_USERNAME + MYSQL_PASSWORD: $DB_PASSWORD MYSQL_ROOT_PASSWORD: root ports: - "8080:80" From 6be81f05c2a781faec04554402a58fd94759ae98 Mon Sep 17 00:00:00 2001 From: Riccardo Tribbia Date: Thu, 2 Mar 2017 12:14:38 +0100 Subject: [PATCH 20/40] - Aggiunto servizio php-worker per avviamento queue --- docker-compose.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 53dd7178..a74b57cc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -74,6 +74,16 @@ services: # IMPORTANT: Set the Remote Interpreter entry matching name to `laravel` - PHP_IDE_CONFIG=serverName=laravel +### PHP-WORKER Container ####################################### + + php-worker: + build: + context: ./php-fpm + dockerfile: Dockerfile-70 # or Dockerfile-56, choose your PHP-FPM container setting + volumes_from: + - applications + command: php artisan queue:work + ### Nginx Server Container ################################## nginx: From 0983cc98fee38947baa94f84deaf19f02a45f24e Mon Sep 17 00:00:00 2001 From: Wayan Jimmy Date: Sat, 4 Mar 2017 02:07:29 +0800 Subject: [PATCH 21/40] Setup mailhog --- docker-compose.yml | 6 ++++++ mailhog/Dockerfile | 7 +++++++ 2 files changed, 13 insertions(+) create mode 100644 mailhog/Dockerfile diff --git a/docker-compose.yml b/docker-compose.yml index 38409666..dd731457 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -299,6 +299,12 @@ services: links: - php-fpm + mailhog: + build: ./mailhog + ports: + - "1025:1025" + - "8025:8025" + ### Volumes Setup ########################################### volumes: diff --git a/mailhog/Dockerfile b/mailhog/Dockerfile new file mode 100644 index 00000000..9fd31e4e --- /dev/null +++ b/mailhog/Dockerfile @@ -0,0 +1,7 @@ +FROM mailhog/mailhog + +Maintainer Mahmoud Zalt + +CMD ["Mailhog"] + +EXPOSE 1025 8025 From 603010cbd50853826fda09639e4ccbf491111eac Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 6 Mar 2017 09:03:12 +0100 Subject: [PATCH 22/40] Split up mysqli and tokenizer --- docker-compose.yml | 7 ++++--- env-example | 3 ++- php-fpm/Dockerfile-56 | 19 ++++++++++++++----- php-fpm/Dockerfile-70 | 19 ++++++++++++++----- 4 files changed, 34 insertions(+), 14 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 49f598f8..f9d07779 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,9 +56,10 @@ services: - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} - - INSTALL_EXIF=${PHP_FPM_DOCKER_FILE} - - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_DOCKER_FILE} - - CODEIGNITER=${PHP_FPM_DOCKER_FILE} + - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF} + - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_INSTALL_AEROSPIKE_EXTENSION} + - INSTALL_MYSQLI=${PHP_FPM_MYSQLI} + - INSTALL_TOKENIZER=${PHP_FPM_TOKENIZER} dockerfile: ${PHP_FPM_DOCKER_FILE} volumes_from: - applications diff --git a/env-example b/env-example index aa2a7310..d95f208f 100644 --- a/env-example +++ b/env-example @@ -51,7 +51,8 @@ PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_OPCACHE=false PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false -PHP_FPM_CODEIGNITER=falses +PHP_FPM_MYSQLI=false +PHP_FPM_TOKENIZER=false # NGINX NGINX_HOST_HTTP_PORT=8080 diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index acd02b80..bb80842e 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -142,13 +142,22 @@ RUN if [ ${INSTALL_OPCACHE} = true ]; then \ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini ##################################### -# Codeigniter Modifications: +# Mysqli Modifications: ##################################### -ARG CODEIGNITER=false -RUN if [ ${CODEIGNITER} = true ]; then \ - # Install Codeigniter PHP extentions requirements - docker-php-ext-install mysqli && \ +ARG INSTALL_MYSQLI=false +RUN if [ ${INSTALL_MYSQLI} = true ]; then \ + # Install mysqli PHP extentions requirements + docker-php-ext-install mysqli && \ +;fi + +##################################### +# Tokenizer Modifications: +##################################### + +ARG INSTALL_TOKENIZER=false +RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ + # Install tokenizer PHP extentions requirements docker-php-ext-install tokenizer \ ;fi diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index 20aaf5a9..c529fbb2 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -176,13 +176,22 @@ RUN if [ ${INSTALL_OPCACHE} = true ]; then \ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini ##################################### -# Codeigniter Modifications: +# Mysqli Modifications: ##################################### -ARG CODEIGNITER=false -RUN if [ ${CODEIGNITER} = true ]; then \ - # Install Codeigniter PHP extentions requirements - docker-php-ext-install mysqli && \ +ARG INSTALL_MYSQLI=false +RUN if [ ${INSTALL_MYSQLI} = true ]; then \ + # Install mysqli PHP extentions requirements + docker-php-ext-install mysqli && \ +;fi + +##################################### +# Tokenizer Modifications: +##################################### + +ARG INSTALL_TOKENIZER=false +RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ + # Install tokenizer PHP extentions requirements docker-php-ext-install tokenizer \ ;fi From 46fcb9e09c22592f8dcbc449de063dad829a6a0d Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 6 Mar 2017 09:31:11 +0100 Subject: [PATCH 23/40] Fixed php-fpm variables and example --- docker-compose.yml | 6 +++--- env-example | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 49f598f8..e5fa0439 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,9 +56,9 @@ services: - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} - - INSTALL_EXIF=${PHP_FPM_DOCKER_FILE} - - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_DOCKER_FILE} - - CODEIGNITER=${PHP_FPM_DOCKER_FILE} + - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF} + - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_INSTALL_AEROSPIKE_EXTENSION} + - CODEIGNITER=${PHP_FPM_CODEIGNITER} dockerfile: ${PHP_FPM_DOCKER_FILE} volumes_from: - applications diff --git a/env-example b/env-example index aa2a7310..6c608125 100644 --- a/env-example +++ b/env-example @@ -51,7 +51,7 @@ PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_OPCACHE=false PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false -PHP_FPM_CODEIGNITER=falses +PHP_FPM_CODEIGNITER=false # NGINX NGINX_HOST_HTTP_PORT=8080 From 1d918a71d8e5765bfe7a127d3e59d8e99af75209 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 6 Mar 2017 22:20:31 +0100 Subject: [PATCH 24/40] fixed example and docker-compose.yml --- docker-compose.yml | 4 ++-- env-example | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index f9d07779..51101e84 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -58,8 +58,8 @@ services: - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF} - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_INSTALL_AEROSPIKE_EXTENSION} - - INSTALL_MYSQLI=${PHP_FPM_MYSQLI} - - INSTALL_TOKENIZER=${PHP_FPM_TOKENIZER} + - INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI} + - INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER} dockerfile: ${PHP_FPM_DOCKER_FILE} volumes_from: - applications diff --git a/env-example b/env-example index d95f208f..3ecca97a 100644 --- a/env-example +++ b/env-example @@ -51,8 +51,8 @@ PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_OPCACHE=false PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false -PHP_FPM_MYSQLI=false -PHP_FPM_TOKENIZER=false +PHP_FPM_INSTALL_MYSQLI=false +PHP_FPM_INSTALL_TOKENIZER=false # NGINX NGINX_HOST_HTTP_PORT=8080 From 25c27685577388885fa1f50faad311d3c828dcf3 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Mon, 6 Mar 2017 22:26:17 +0100 Subject: [PATCH 25/40] Apache should just go to /var/www not /var/www/public when supporting multiple projects --- apache2/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apache2/Dockerfile b/apache2/Dockerfile index 569ba9f3..97636ed9 100644 --- a/apache2/Dockerfile +++ b/apache2/Dockerfile @@ -6,11 +6,11 @@ ARG PHP_SOCKET=php-fpm:9000 ENV WEB_PHP_SOCKET=$PHP_SOCKET -ENV WEB_DOCUMENT_ROOT=/var/www/public +ENV WEB_DOCUMENT_ROOT=/var/www/ EXPOSE 80 443 -WORKDIR /var/www/public +WORKDIR /var/www/ ENTRYPOINT ["/opt/docker/bin/entrypoint.sh"] From 048b55186e0a52c3aeabcf301bdb0d6fdbb4e068 Mon Sep 17 00:00:00 2001 From: Thor Erik Lie Date: Wed, 8 Mar 2017 09:26:08 +0100 Subject: [PATCH 26/40] Fix issue 619 --- nginx/nginx.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 97e5a0ed..88bc7609 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -25,6 +25,6 @@ http { gzip_disable "msie6"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-available/*; - open_file_cache max=100; + open_file_cache off; # Disabled for issue 619 charset UTF-8; } From 36fcc6674e88ca98ada6d0e94e1bc329e4d3bdfd Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Thu, 9 Mar 2017 09:29:07 +0100 Subject: [PATCH 27/40] Seperated mysqli and tokenizer as seperate options without putting them under code igniter --- docker-compose.yml | 2 +- php-fpm/Dockerfile-56 | 6 ++---- php-fpm/Dockerfile-70 | 7 ++----- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 27ae21b2..e9254784 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: applications: image: tianon/true volumes: - - ${APPLICATIONS_HOST_DIR}:/var/www + - ${APPLICATIONS_HOST_DIR}:/var/www ### Workspace Utilities Container ########################### diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index 1775cf61..6c63d72d 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -149,9 +149,8 @@ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini ##################################### ARG INSTALL_MYSQLI=false -RUN if [ ${INSTALL_MYSQLI} = true ]; then \ - # Install mysqli PHP extentions requirements - docker-php-ext-install mysqli && \ +RUN if [ ${INSTALL_MYSQLI} = true ]; then \ + docker-php-ext-install mysqli \ ;fi ##################################### @@ -160,7 +159,6 @@ RUN if [ ${INSTALL_MYSQLI} = true ]; then \ ARG INSTALL_TOKENIZER=false RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ - # Install tokenizer PHP extentions requirements docker-php-ext-install tokenizer \ ;fi diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index c529fbb2..d0ddaf09 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -178,11 +178,9 @@ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini ##################################### # Mysqli Modifications: ##################################### - ARG INSTALL_MYSQLI=false -RUN if [ ${INSTALL_MYSQLI} = true ]; then \ - # Install mysqli PHP extentions requirements - docker-php-ext-install mysqli && \ +RUN if [ ${INSTALL_MYSQLI} = true ]; then \ + docker-php-ext-install mysqli \ ;fi ##################################### @@ -191,7 +189,6 @@ RUN if [ ${INSTALL_MYSQLI} = true ]; then \ ARG INSTALL_TOKENIZER=false RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ - # Install tokenizer PHP extentions requirements docker-php-ext-install tokenizer \ ;fi From ab1d5bae95acdf59ed779bff37d8f7efbb7c0e99 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Mon, 13 Mar 2017 21:03:31 -0400 Subject: [PATCH 28/40] complete missings --- .env.example | 124 +++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 91 ++++++++++++++++----------------- 2 files changed, 168 insertions(+), 47 deletions(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..91762646 --- /dev/null +++ b/.env.example @@ -0,0 +1,124 @@ +### Application +# Point to your application code, wish should be available at `/var/www` +APPLICATIONS_HOST_DIR=../ + +### PHP version (Does not apply for HHVM) +# PHP_VERSION=55 +# PHP_VERSION=56 +PHP_VERSION=70 + +### PHP interpreter +# PHP_INTERPRETER=hhvm +PHP_INTERPRETER=php-fpm + +### WORKSPACE Container +WORKSPACE_INSTALL_XDEBUG=false +WORKSPACE_INSTALL_SOAP=false +WORKSPACE_INSTALL_MONGO=false +WORKSPACE_INSTALL_NODE=false +WORKSPACE_INSTALL_YARN=false +WORKSPACE_INSTALL_DRUSH=false +WORKSPACE_INSTALL_AEROSPIKE_EXTENSION=false +WORKSPACE_INSTALL_INSTALL_V8JS_EXTENSION=false +WORKSPACE_COMPOSER_GLOBAL_INSTALL=false +WORKSPACE_INSTALL_WORKSPACE_SSH=false +WORKSPACE_INSTALL_LARAVEL_ENVOY=false +WORKSPACE_INSTALL_DEPLOYER=false +WORKSPACE_INSTALL_LINUXBREW=false +WORKSPACE_PUID=1000 +WORKSPACE_PGID=1000 +WORKSPACE_NODE_VERSION=stable +WORKSPACE_TIMEZONE=UTC +WORKSPACE_SSH_PORT=2222 + +### PHP_FPM Container +PHP_FPM_DOCKER_FILE=Dockerfile-70 +PHP_FPM_INSTALL_XDEBUG=false +PHP_FPM_INSTALL_MONGO=false +PHP_FPM_INSTALL_SOAP=false +PHP_FPM_INSTALL_ZIP_ARCHIVE=false +PHP_FPM_INSTALL_BCMATH=false +PHP_FPM_INSTALL_PHPREDIS=false +PHP_FPM_INSTALL_MEMCACHED=false +PHP_FPM_INSTALL_OPCACHE=false +PHP_FPM_INSTALL_EXIF=false +PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false +PHP_FPM_INSTALL_MYSQLI=false +PHP_FPM_INSTALL_TOKENIZER=false + +### NGINX Container +NGINX_HOST_HTTP_PORT=80 +NGINX_HOST_HTTPS_PORT=433 +NGINX_HOST_LOG_PATH=./logs/nginx/ +NGINX_SITES_PATH=./nginx/sites/ + +### APACHE Container +APACHE_HOST_HTTP_PORT=80 +APACHE_HOST_HTTPS_PORT=443 +APACHE2_PHP_SOCKET=php-fpm:9000 +APACHE_HOST_LOG_PATH=./logs/apache2 +PHP_SOCKET=php-fpm:9000 + +### MYSQL Container +MYSQL_DATABASE=default +MYSQL_USER=default +MYSQL_PASSWORD=secret +MYSQL_PORT=3306 +MYSQL_ROOT_PASSWORD=root + +### MARIADB Container +MARIADB_DATABASE=default +MARIADB_USER=default +MARIADB_PASSWORD=secret +MARIADB_PORT=3306 + + +### POSTGRES Container +POSTGRES_DB=default +POSTGRES_USER=default +POSTGRES_PASSWORD=secret +POSTGRES_PORT=5432 + +### RABBITMQ Container +RABBITMQ_NODE_HOST_PORT=5672 +RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672 +RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671 +RABBITMQ_DEFAULT_USER=guest +RABBITMQ_DEFAULT_PASS=guest + +### ELASTICSEARCH Container +ELASTICSEARCH_HOST_HTTP_PORT=9200 +ELASTICSEARCH_HOST_TRANSPORT_PORT=9300 + +### MEMCACHED Container +MEMCACHED_HOST_PORT=11211 + +### BEANSTALKD CONSOLE +BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console +BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console +BEANSTALKD_CONSOLE_HOST_PORT=2080 + +### BEANSTALKD Container +BEANSTALKD_HOST_PORT=11300 + +### SELENIUM Container +SELENIUM_PORT=4444 + +### MINIO Container +MINIO_PORT=9000 + +### PHP MY ADMIN Container +# PMA_DB_ENGINE=mariadb +PMA_DB_ENGINE=mysql +PMA_USER=default +PMA_PASSWORD=secret +PMA_ROOT_PASSWORD=secret +PMA_PORT=88 + +### MISC +# Replace with your Docker Host IP (will be appended to /etc/hosts) +DOCKER_HOST_IP=10.0.75.1 +# The Remote Interpreter entry matching name `laradock` +PHP_IDE_CONFIG=serverName=laradock + +### to be continue neo4j mongo rethinkdb redis aerospike pgadmin ... diff --git a/docker-compose.yml b/docker-compose.yml index e9254784..51235b70 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -36,10 +36,9 @@ services: volumes_from: - applications extra_hosts: - # IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts) - - "dockerhost:10.0.75.1" + - "dockerhost:${DOCKER_HOST_IP}" ports: - - "2222:22" + - "${WORKSPACE_SSH_PORT}:22" tty: true ### PHP-FPM Container ####################################### @@ -68,11 +67,9 @@ services: links: - workspace extra_hosts: - # IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts) - - "dockerhost:10.0.75.1" + - "dockerhost:${DOCKER_HOST_IP}" environment: - # IMPORTANT: Set the Remote Interpreter entry matching name to `laravel` - - PHP_IDE_CONFIG=serverName=laravel + - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} ### Nginx Server Container ################################## @@ -87,8 +84,8 @@ services: - ${NGINX_HOST_LOG_PATH}:/var/log/nginx - ${NGINX_SITES_PATH}:/etc/nginx/sites-available ports: - - "80:80" - - "443:443" + - "${NGINX_HOST_HTTP_PORT}:80" + - "${NGINX_HOST_HTTPS_PORT}:443" links: - php-fpm @@ -98,14 +95,14 @@ services: build: context: ./apache2 args: - - PHP_SOCKET=php-fpm:9000 + - PHP_SOCKET=${PHP_SOCKET} volumes_from: - applications volumes: - - ./logs/apache2:/var/log/apache2 + - ${APACHE_HOST_LOG_PATH}:/var/log/apache2 ports: - - "80:80" - - "443:443" + - "${APACHE_HOST_HTTP_PORT}:80" + - "${APACHE_HOST_HTTPS_PORT}:443" links: - php-fpm @@ -127,7 +124,7 @@ services: volumes: - minio:/export ports: - - "9000:9000" + - "${MINIO_PORT}:9000" environment: MINIO_ACCESS_KEY: access MINIO_SECRET_KEY: secretkey @@ -138,14 +135,14 @@ services: build: context: ./mysql args: - - MYSQL_DATABASE=default - - MYSQL_USER=default - - MYSQL_PASSWORD=secret - - MYSQL_ROOT_PASSWORD=root + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} volumes: - mysql:/var/lib/mysql ports: - - "3306:3306" + - "${MYSQL_PORT}:3306" ### MariaDB Container ####################################### @@ -154,12 +151,12 @@ services: volumes: - mariadb:/var/lib/mysql ports: - - "3306:3306" + - "${MARIADB_PORT}:3306" environment: - MYSQL_DATABASE: default - MYSQL_USER: default - MYSQL_PASSWORD: secret - MYSQL_ROOT_PASSWORD: root + MYSQL_DATABASE: ${MARIADB_DATABASE} + MYSQL_USER: ${MARIADB_USER} + MYSQL_PASSWORD: ${MARIADB_PASSWORD} + MYSQL_ROOT_PASSWORD: ${MARIADB_PORT} ### PostgreSQL Container #################################### @@ -168,11 +165,11 @@ services: volumes: - postgres:/var/lib/postgresql/data ports: - - "5432:5432" + - "${POSTGRES_PORT}:5432" environment: - POSTGRES_DB: default - POSTGRES_USER: default - POSTGRES_PASSWORD: secret + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} ### PostgreSQL PostGis Container ############################ @@ -181,11 +178,11 @@ services: volumes: - postgres:/var/lib/postgresql/data ports: - - "5432:5432" + - "${POSTGRES_PORT}:5432" environment: - POSTGRES_DB: default - POSTGRES_USER: default - POSTGRES_PASSWORD: secret + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} ### Neo4j Container ######################################### @@ -248,7 +245,7 @@ services: volumes: - memcached:/var/lib/memcached ports: - - "11211:11211" + - "${MEMCACHED_HOST_PORT}:11211" links: - php-fpm @@ -257,7 +254,7 @@ services: beanstalkd: build: ./beanstalkd ports: - - "11300:11300" + - "${BEANSTALKD_HOST_PORT}:11300" privileged: true links: - php-fpm @@ -267,13 +264,13 @@ services: rabbitmq: build: ./rabbitmq ports: - - "5672:5672" - - "15671:15671" - - "8080:15672" + - "${RABBITMQ_NODE_HOST_PORT}:5672" + - "${RABBITMQ_MANAGEMENT_HTTP_HOST_PORT}:15672" + - "${RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT}:15671" privileged: true environment: - RABBITMQ_DEFAULT_USER: guest - RABBITMQ_DEFAULT_PASS: guest + RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER} + RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS} links: - php-fpm @@ -309,14 +306,14 @@ services: build: ./phpmyadmin environment: PMA_ARBITRARY: 1 - MYSQL_USER: default - MYSQL_PASSWORD: secret - MYSQL_ROOT_PASSWORD: root + MYSQL_USER: ${PMA_USER} + MYSQL_PASSWORD: ${PMA_PASSWORD} + MYSQL_ROOT_PASSWORD: ${PMA_ROOT_PASSWORD} ports: - - "8080:80" + - "${PMA_PORT}:80" links: # for mysql container - - "mysql:db" + - "${PMA_DB_ENGINE}:db" # for mariadb container # - "mariadb:db" @@ -337,8 +334,8 @@ services: - elasticsearch-data:/usr/share/elasticsearch/data - elasticsearch-plugins:/usr/share/elasticsearch/data ports: - - "9200:9200" - - "9300:9300" + - "${ELASTICSEARCH_HOST_HTTP_PORT}:9200" + - "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300" links: - php-fpm @@ -347,7 +344,7 @@ services: selenium: build: ./selenium ports: - - "4444:4444" + - "${SELENIUM_PORT}:4444" volumes: # see https://github.com/SeleniumHQ/docker-selenium#running-the-images - /dev/shm:/dev/shm From fd0cbff16cb5df9c0039bb00d6a20c647b036de2 Mon Sep 17 00:00:00 2001 From: Ignacio Cabrera Date: Tue, 14 Mar 2017 10:58:35 -0300 Subject: [PATCH 29/40] Adding ARG to docker-compose --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 283d7770..b1944ec2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -61,6 +61,7 @@ services: - INSTALL_EXIF=false - INSTALL_AEROSPIKE_EXTENSION=false - CODEIGNITER=false + - GHOSTSCRIPT=false dockerfile: Dockerfile-70 volumes_from: - applications From 9c14954ff4c2f96acf96b4161c0a8e8676cc2420 Mon Sep 17 00:00:00 2001 From: Ignacio Cabrera Date: Tue, 14 Mar 2017 10:59:38 -0300 Subject: [PATCH 30/40] Adding GHOSTSCRIPT support --- php-fpm/Dockerfile-70 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index 20aaf5a9..2aa584c3 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -186,6 +186,20 @@ RUN if [ ${CODEIGNITER} = true ]; then \ docker-php-ext-install tokenizer \ ;fi +##################################### +# GHOSTSCRIPT: +##################################### + +ARG GHOSTSCRIPT=false +RUN if [ ${GHOSTSCRIPT} = true ]; then \ + # Install the ghostscript extension + # for PDF editing + apt-get -y update \ + && apt-get install -y \ + poppler-utils \ + ghostscript \ +;fi + # #-------------------------------------------------------------------------- # Final Touch From 0d41c3d65eb91b207bb85903ba9581a5c9d2ea99 Mon Sep 17 00:00:00 2001 From: Marius van Zundert Date: Wed, 15 Mar 2017 09:12:07 +0100 Subject: [PATCH 31/40] updated env-example and removed .env.example --- .env.example | 124 ------------------------------------ env-example | 177 +++++++++++++++++++-------------------------------- 2 files changed, 67 insertions(+), 234 deletions(-) delete mode 100644 .env.example diff --git a/.env.example b/.env.example deleted file mode 100644 index 91762646..00000000 --- a/.env.example +++ /dev/null @@ -1,124 +0,0 @@ -### Application -# Point to your application code, wish should be available at `/var/www` -APPLICATIONS_HOST_DIR=../ - -### PHP version (Does not apply for HHVM) -# PHP_VERSION=55 -# PHP_VERSION=56 -PHP_VERSION=70 - -### PHP interpreter -# PHP_INTERPRETER=hhvm -PHP_INTERPRETER=php-fpm - -### WORKSPACE Container -WORKSPACE_INSTALL_XDEBUG=false -WORKSPACE_INSTALL_SOAP=false -WORKSPACE_INSTALL_MONGO=false -WORKSPACE_INSTALL_NODE=false -WORKSPACE_INSTALL_YARN=false -WORKSPACE_INSTALL_DRUSH=false -WORKSPACE_INSTALL_AEROSPIKE_EXTENSION=false -WORKSPACE_INSTALL_INSTALL_V8JS_EXTENSION=false -WORKSPACE_COMPOSER_GLOBAL_INSTALL=false -WORKSPACE_INSTALL_WORKSPACE_SSH=false -WORKSPACE_INSTALL_LARAVEL_ENVOY=false -WORKSPACE_INSTALL_DEPLOYER=false -WORKSPACE_INSTALL_LINUXBREW=false -WORKSPACE_PUID=1000 -WORKSPACE_PGID=1000 -WORKSPACE_NODE_VERSION=stable -WORKSPACE_TIMEZONE=UTC -WORKSPACE_SSH_PORT=2222 - -### PHP_FPM Container -PHP_FPM_DOCKER_FILE=Dockerfile-70 -PHP_FPM_INSTALL_XDEBUG=false -PHP_FPM_INSTALL_MONGO=false -PHP_FPM_INSTALL_SOAP=false -PHP_FPM_INSTALL_ZIP_ARCHIVE=false -PHP_FPM_INSTALL_BCMATH=false -PHP_FPM_INSTALL_PHPREDIS=false -PHP_FPM_INSTALL_MEMCACHED=false -PHP_FPM_INSTALL_OPCACHE=false -PHP_FPM_INSTALL_EXIF=false -PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false -PHP_FPM_INSTALL_MYSQLI=false -PHP_FPM_INSTALL_TOKENIZER=false - -### NGINX Container -NGINX_HOST_HTTP_PORT=80 -NGINX_HOST_HTTPS_PORT=433 -NGINX_HOST_LOG_PATH=./logs/nginx/ -NGINX_SITES_PATH=./nginx/sites/ - -### APACHE Container -APACHE_HOST_HTTP_PORT=80 -APACHE_HOST_HTTPS_PORT=443 -APACHE2_PHP_SOCKET=php-fpm:9000 -APACHE_HOST_LOG_PATH=./logs/apache2 -PHP_SOCKET=php-fpm:9000 - -### MYSQL Container -MYSQL_DATABASE=default -MYSQL_USER=default -MYSQL_PASSWORD=secret -MYSQL_PORT=3306 -MYSQL_ROOT_PASSWORD=root - -### MARIADB Container -MARIADB_DATABASE=default -MARIADB_USER=default -MARIADB_PASSWORD=secret -MARIADB_PORT=3306 - - -### POSTGRES Container -POSTGRES_DB=default -POSTGRES_USER=default -POSTGRES_PASSWORD=secret -POSTGRES_PORT=5432 - -### RABBITMQ Container -RABBITMQ_NODE_HOST_PORT=5672 -RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672 -RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671 -RABBITMQ_DEFAULT_USER=guest -RABBITMQ_DEFAULT_PASS=guest - -### ELASTICSEARCH Container -ELASTICSEARCH_HOST_HTTP_PORT=9200 -ELASTICSEARCH_HOST_TRANSPORT_PORT=9300 - -### MEMCACHED Container -MEMCACHED_HOST_PORT=11211 - -### BEANSTALKD CONSOLE -BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console -BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console -BEANSTALKD_CONSOLE_HOST_PORT=2080 - -### BEANSTALKD Container -BEANSTALKD_HOST_PORT=11300 - -### SELENIUM Container -SELENIUM_PORT=4444 - -### MINIO Container -MINIO_PORT=9000 - -### PHP MY ADMIN Container -# PMA_DB_ENGINE=mariadb -PMA_DB_ENGINE=mysql -PMA_USER=default -PMA_PASSWORD=secret -PMA_ROOT_PASSWORD=secret -PMA_PORT=88 - -### MISC -# Replace with your Docker Host IP (will be appended to /etc/hosts) -DOCKER_HOST_IP=10.0.75.1 -# The Remote Interpreter entry matching name `laradock` -PHP_IDE_CONFIG=serverName=laradock - -### to be continue neo4j mongo rethinkdb redis aerospike pgadmin ... diff --git a/env-example b/env-example index 3ecca97a..91762646 100644 --- a/env-example +++ b/env-example @@ -1,25 +1,17 @@ -################## -# DOCKER COMPOSE # -# ################ +### Application +# Point to your application code, wish should be available at `/var/www` +APPLICATIONS_HOST_DIR=../ -DOCKER_HOST_IP=10.0.75.1 +### PHP version (Does not apply for HHVM) +# PHP_VERSION=55 +# PHP_VERSION=56 +PHP_VERSION=70 -# Switch between PHP and HHVM interpreter +### PHP interpreter # PHP_INTERPRETER=hhvm PHP_INTERPRETER=php-fpm -# Switch between supported PHP versions... does not apply for HHVM. -# Please see composer.json in Laravel Framework for the minimum Php Version -#PHP_VERSION=55 -#PHP_VERSION=56 -PHP_VERSION=70 - -# APPLICATIONS -APPLICATIONS_HOST_DIR=../ -APPLICATIONS_IMAGE_NAME=tianon/true -APPLICATIONS_CONTAINER_NAME=applications - -# WORKSPACE +### WORKSPACE Container WORKSPACE_INSTALL_XDEBUG=false WORKSPACE_INSTALL_SOAP=false WORKSPACE_INSTALL_MONGO=false @@ -39,7 +31,7 @@ WORKSPACE_NODE_VERSION=stable WORKSPACE_TIMEZONE=UTC WORKSPACE_SSH_PORT=2222 -# PHP_FPM +### PHP_FPM Container PHP_FPM_DOCKER_FILE=Dockerfile-70 PHP_FPM_INSTALL_XDEBUG=false PHP_FPM_INSTALL_MONGO=false @@ -54,114 +46,79 @@ PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false PHP_FPM_INSTALL_MYSQLI=false PHP_FPM_INSTALL_TOKENIZER=false -# NGINX -NGINX_HOST_HTTP_PORT=8080 -NGINX_HOST_HTTPS_PORT=8433 +### NGINX Container +NGINX_HOST_HTTP_PORT=80 +NGINX_HOST_HTTPS_PORT=433 NGINX_HOST_LOG_PATH=./logs/nginx/ NGINX_SITES_PATH=./nginx/sites/ - - -# APACHE -APACHE2_BUILD_PATH=./apache2 -APACHE2_CONTAINER_NAME=apache2 -APACHE_HOST_HTTP_PORT=7080 -APACHE_HOST_HTTPS_PORT=7443 +### APACHE Container +APACHE_HOST_HTTP_PORT=80 +APACHE_HOST_HTTPS_PORT=443 APACHE2_PHP_SOCKET=php-fpm:9000 APACHE_HOST_LOG_PATH=./logs/apache2 +PHP_SOCKET=php-fpm:9000 -# HHVM -HHVM_BUILD_PATH=./hhvm -HHVM_CONTAINER_NAME=hhvm -HHVM_HOST_PORT=9000 - -# MYSQL -MYSQL_BUILD_PATH=./mysql -MYSQL_CONTAINER_NAME=mysql -MYSQL_HOST_PORT=3307 +### MYSQL Container +MYSQL_DATABASE=default +MYSQL_USER=default +MYSQL_PASSWORD=secret +MYSQL_PORT=3306 MYSQL_ROOT_PASSWORD=root -# MEMCACHED -MEMCACHED_BUILD_PATH=./memcached -MEMCACHED_CONTAINER_NAME=memcached +### MARIADB Container +MARIADB_DATABASE=default +MARIADB_USER=default +MARIADB_PASSWORD=secret +MARIADB_PORT=3306 + + +### POSTGRES Container +POSTGRES_DB=default +POSTGRES_USER=default +POSTGRES_PASSWORD=secret +POSTGRES_PORT=5432 + +### RABBITMQ Container +RABBITMQ_NODE_HOST_PORT=5672 +RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672 +RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671 +RABBITMQ_DEFAULT_USER=guest +RABBITMQ_DEFAULT_PASS=guest + +### ELASTICSEARCH Container +ELASTICSEARCH_HOST_HTTP_PORT=9200 +ELASTICSEARCH_HOST_TRANSPORT_PORT=9300 + +### MEMCACHED Container MEMCACHED_HOST_PORT=11211 -# BEANSTALKD -BEANSTALKD_BUILD_PATH=./beanstalkd -BEANSTALKD_CONTAINER_NAME=beanstalkd -BEANSTALKD_HOST_PORT=11300 - -# BEANSTALKD CONSOLE +### BEANSTALKD CONSOLE BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console BEANSTALKD_CONSOLE_HOST_PORT=2080 -# RABBITMQ -RABBITMQ_BUILD_PATH=./rabbitmq -RABBITMQ_CONTAINER_NAME=rabbitmq -RABBITMQ_NODE_HOST_PORT=5672 -RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671 -RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672 -RABBITMQ_DEFAULT_USER=guest -RABBITMQ_DEFAULT_PASS=guest +### BEANSTALKD Container +BEANSTALKD_HOST_PORT=11300 -# ELASTICSEARCH -ELASTICSEARCH_BUILD_PATH=./elasticsearch/versions/2 -ELASTICSEARCH_CONTAINER_NAME=elasticsearch -ELASTICSEARCH_HOST_HTTP_PORT=9200 -ELASTICSEARCH_HOST_TRANSPORT_PORT=9300 +### SELENIUM Container +SELENIUM_PORT=4444 -#################### -# LARAVEL SPECIFIC # -# ################## +### MINIO Container +MINIO_PORT=9000 -# APP -APP_ENV=local -APP_KEY=base64:FeZgPe6Pqm7dOCy7Sx0P/PQ9ICMuwAsHLms7DUOxCkI= -APP_DEBUG=true -APP_LOG_LEVEL=debug -APP_URL=http://localhost +### PHP MY ADMIN Container +# PMA_DB_ENGINE=mariadb +PMA_DB_ENGINE=mysql +PMA_USER=default +PMA_PASSWORD=secret +PMA_ROOT_PASSWORD=secret +PMA_PORT=88 -# DATABASE -DB_CONNECTION=mysql +### MISC +# Replace with your Docker Host IP (will be appended to /etc/hosts) +DOCKER_HOST_IP=10.0.75.1 +# The Remote Interpreter entry matching name `laradock` +PHP_IDE_CONFIG=serverName=laradock -# Laravel Original: DB_HOST=127.0.0.1 -# must match the service name or container name. -# so if we want to use mariadb it must look like: -# DB_HOST=mariadb -DB_HOST=mysql - -# IMPORTANT: -# - ports are defined in docker-compose.yml like HOST_PORT:CONTAINER_PORT -# - DB_PORT=3306 represents the CONTAINER_PORT not the HOST_PORT -# -# This means that this should not be changed unless you have also tweaked the database image created by -# docker-compose.yml. -DB_PORT=3306 -DB_DATABASE=default -DB_USERNAME=default -DB_PASSWORD=secret - -# DRIVERS -BROADCAST_DRIVER=log -CACHE_DRIVER=file -SESSION_DRIVER=file -QUEUE_DRIVER=sync - -# REDIS -REDIS_HOST=redis -REDIS_PASSWORD=null -REDIS_PORT=6379 - -# MAIL -MAIL_DRIVER=smtp -MAIL_HOST=mailtrap.io -MAIL_PORT=2525 -MAIL_USERNAME=null -MAIL_PASSWORD=null -MAIL_ENCRYPTION=null - -# PUSHER -PUSHER_APP_ID= -PUSHER_KEY= -PUSHER_SECRET= +### to be continue neo4j mongo rethinkdb redis aerospike pgadmin ... From 735647bdf7408e5db253c67c9f3ba6cc48b1fd7b Mon Sep 17 00:00:00 2001 From: David Leung Date: Wed, 15 Mar 2017 13:51:54 -1000 Subject: [PATCH 32/40] Refine container definition Changed to `docker ps` because this one word wraps. `docker-compose ps` will create a newline if text is too long in a small terminal window. Also `awk` represents tokens better than ones created with a " " delimiter. --- xdebugPhpFpm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xdebugPhpFpm b/xdebugPhpFpm index 5af6eac8..9fb9e755 100755 --- a/xdebugPhpFpm +++ b/xdebugPhpFpm @@ -4,7 +4,7 @@ # Grab full name of php-fpm container -PHP_FPM_CONTAINER=$(docker-compose ps | grep php-fpm | cut -d " " -f 1) +PHP_FPM_CONTAINER=$(docker ps | grep php-fpm | awk '{print $1}') # Grab OS type From bed0fd9bdba90d54aef3f3d795511a53a9f31cf9 Mon Sep 17 00:00:00 2001 From: MauricioTRS Date: Thu, 16 Mar 2017 14:24:56 -0300 Subject: [PATCH 33/40] Elasticsearch - Fix plugins directory --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index b1944ec2..8ff9bd83 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -337,7 +337,7 @@ services: build: ./elasticsearch volumes: - elasticsearch-data:/usr/share/elasticsearch/data - - elasticsearch-plugins:/usr/share/elasticsearch/data + - elasticsearch-plugins:/usr/share/elasticsearch/plugins ports: - "9200:9200" - "9300:9300" From 1d6583e97e556778b475486e0cbc3a22903a9190 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Thu, 16 Mar 2017 14:40:45 -0400 Subject: [PATCH 34/40] Revert "Add apache conf file for specific virtualhost ServerName" --- .env | 1 + .gitignore | 1 - apache2/Dockerfile | 3 --- apache2/apache-config.conf | 16 -------------- docker-compose.yml | 44 +++++++++++++++----------------------- 5 files changed, 18 insertions(+), 47 deletions(-) create mode 100644 .env delete mode 100644 apache2/apache-config.conf diff --git a/.env b/.env new file mode 100644 index 00000000..accd09a0 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +COMPOSE_CONVERT_WINDOWS_PATHS=1 diff --git a/.gitignore b/.gitignore index 00571d72..7c6f11b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ .idea /logs /data -.env diff --git a/apache2/Dockerfile b/apache2/Dockerfile index 21373f5c..569ba9f3 100644 --- a/apache2/Dockerfile +++ b/apache2/Dockerfile @@ -15,6 +15,3 @@ WORKDIR /var/www/public ENTRYPOINT ["/opt/docker/bin/entrypoint.sh"] CMD ["supervisord"] - -# Update the default apache site with the config we created. -ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf \ No newline at end of file diff --git a/apache2/apache-config.conf b/apache2/apache-config.conf deleted file mode 100644 index aede94e4..00000000 --- a/apache2/apache-config.conf +++ /dev/null @@ -1,16 +0,0 @@ - - ServerAdmin me@mydomain.com - DocumentRoot ${WEB_DOCUMENT_ROOT} - ServerName ${SERVER_ALIAS} - - - Options Indexes FollowSymLinks MultiViews - AllowOverride All - Order deny,allow - Allow from all - - - ErrorLog ${APACHE_LOG_DIR}/error.log - CustomLog ${APACHE_LOG_DIR}/access.log combined - - \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 477a74c0..f5e1c245 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -77,16 +77,6 @@ services: # IMPORTANT: Set the Remote Interpreter entry matching name to `laravel` - PHP_IDE_CONFIG=serverName=laravel -### PHP-WORKER Container ####################################### - - php-worker: - build: - context: ./php-fpm - dockerfile: Dockerfile-70 # or Dockerfile-56, choose your PHP-FPM container setting - volumes_from: - - applications - command: php artisan queue:work - ### Nginx Server Container ################################## nginx: @@ -117,8 +107,8 @@ services: volumes: - ./logs/apache2:/var/log/apache2 ports: - - "$SERVER_PORT:80" - - "$SERVER_SSL_PORT:443" + - "80:80" + - "443:443" links: - php-fpm @@ -151,14 +141,14 @@ services: build: context: ./mysql args: - - MYSQL_DATABASE=$DB_DATABASE - - MYSQL_USER=$DB_USERNAME - - MYSQL_PASSWORD=$DB_PASSWORD + - MYSQL_DATABASE=homestead + - MYSQL_USER=homestead + - MYSQL_PASSWORD=secret - MYSQL_ROOT_PASSWORD=root volumes: - mysql:/var/lib/mysql ports: - - "$DB_PORT:3306" + - "3306:3306" ### MariaDB Container ####################################### @@ -169,9 +159,9 @@ services: ports: - "3306:3306" environment: - MYSQL_DATABASE: $DB_DATABASE - MYSQL_USER: $DB_USERNAME - MYSQL_PASSWORD: $DB_PASSWORD + MYSQL_DATABASE: homestead + MYSQL_USER: homestead + MYSQL_PASSWORD: secret MYSQL_ROOT_PASSWORD: root ### PostgreSQL Container #################################### @@ -183,9 +173,9 @@ services: ports: - "5432:5432" environment: - POSTGRES_DB: $DB_DATABASE - POSTGRES_USER: $DB_USERNAME - POSTGRES_PASSWORD: $DB_PASSWORD + POSTGRES_DB: homestead + POSTGRES_USER: homestead + POSTGRES_PASSWORD: secret ### PostgreSQL PostGis Container ############################ @@ -196,9 +186,9 @@ services: ports: - "5432:5432" environment: - POSTGRES_DB: $DB_DATABASE - POSTGRES_USER: $DB_USERNAME - POSTGRES_PASSWORD: $DB_PASSWORD + POSTGRES_DB: homestead + POSTGRES_USER: homestead + POSTGRES_PASSWORD: secret ### Neo4j Container ######################################### @@ -322,8 +312,8 @@ services: build: ./phpmyadmin environment: PMA_ARBITRARY: 1 - MYSQL_USER: $DB_USERNAME - MYSQL_PASSWORD: $DB_PASSWORD + MYSQL_USER: homestead + MYSQL_PASSWORD: secret MYSQL_ROOT_PASSWORD: root ports: - "8080:80" From dcec8a46a8f75fb1783928827dabdf20bec954f8 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Thu, 16 Mar 2017 15:11:04 -0400 Subject: [PATCH 35/40] replace the links with depends_on in the docker-compose file closes #636 --- docker-compose.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index f5e1c245..5d24affe 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -68,7 +68,7 @@ services: - applications expose: - "9000" - links: + depends_on: - workspace extra_hosts: # IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts) @@ -92,7 +92,7 @@ services: ports: - "80:80" - "443:443" - links: + depends_on: - php-fpm ### Apache Server Container ################################# @@ -109,7 +109,7 @@ services: ports: - "80:80" - "443:443" - links: + depends_on: - php-fpm ### HHVM Container ########################################## @@ -120,7 +120,7 @@ services: - applications expose: - "9000" - links: + depends_on: - workspace ### Minio Container ######################################### @@ -252,7 +252,7 @@ services: - memcached:/var/lib/memcached ports: - "11211:11211" - links: + depends_on: - php-fpm ### Beanstalkd Container #################################### @@ -262,7 +262,7 @@ services: ports: - "11300:11300" privileged: true - links: + depends_on: - php-fpm ### RabbitMQ Container ###################################### @@ -277,7 +277,7 @@ services: environment: RABBITMQ_DEFAULT_USER: guest RABBITMQ_DEFAULT_PASS: guest - links: + depends_on: - php-fpm ### Beanstalkd Console Container ############################ @@ -286,7 +286,7 @@ services: build: ./beanstalkd-console ports: - "2080:2080" - links: + depends_on: - beanstalkd ### Caddy Server Container ################################## @@ -303,7 +303,7 @@ services: - ./caddy/Caddyfile:/etc/Caddyfile - ./logs/caddy:/var/log/caddy - caddy:/root/.caddy - links: + depends_on: - php-fpm ### phpMyAdmin Container #################################### @@ -317,11 +317,11 @@ services: MYSQL_ROOT_PASSWORD: root ports: - "8080:80" - links: + depends_on: # for mysql container - - "mysql:db" + - "mysql" # for mariadb container - # - "mariadb:db" + # - "mariadb" ### pgAdmin Container ####################################### @@ -329,7 +329,7 @@ services: build: ./pgadmin ports: - "5050:5050" - links: + depends_on: - postgres ### ElasticSearch Container ################################# @@ -342,7 +342,7 @@ services: ports: - "9200:9200" - "9300:9300" - links: + depends_on: - php-fpm ### Certbot Container ################################## From 30cf27e011eb2d2c4f47f67fa783b00d63f208b5 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Thu, 16 Mar 2017 15:56:37 -0400 Subject: [PATCH 36/40] Fix `nginx: [emerg] BIO_new_file("/var/certs/cert1.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/var/certs/cert1.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)` --- nginx/sites/laravel-https.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nginx/sites/laravel-https.conf b/nginx/sites/laravel-https.conf index 0704dbf8..2c0b0bf2 100644 --- a/nginx/sites/laravel-https.conf +++ b/nginx/sites/laravel-https.conf @@ -3,9 +3,9 @@ server { listen 443 default_server; listen [::]:443 default_server ipv6only=on; - ssl on; - ssl_certificate /var/certs/cert1.pem; - ssl_certificate_key /var/certs/privkey1.pem; + #ssl on; + #ssl_certificate /var/certs/cert1.pem; + #ssl_certificate_key /var/certs/privkey1.pem; server_name laravel; root /var/www/laravel/public; From e0e4616ae0b38322776c1b5432e13d5aa9da7197 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Thu, 16 Mar 2017 17:03:05 -0400 Subject: [PATCH 37/40] update installation steps in the docs (.env) --- docker-compose.yml | 2 +- docs/_settings/content/contributing/index.md | 4 +- docs/_settings/content/documentation/index.md | 34 ++-- .../content/getting-started/index.md | 70 ++++--- docs/_settings/content/help/index.md | 4 +- docs/_settings/content/introduction/index.md | 41 +++-- .../content/related-projects/index.md | 6 +- docs/contributing/index.html | 4 +- docs/contributing/index.xml | 4 +- docs/documentation/index.html | 34 ++-- docs/documentation/index.xml | 34 ++-- docs/getting-started/index.html | 83 ++++++--- docs/getting-started/index.xml | 83 ++++++--- docs/help/index.html | 4 +- docs/help/index.xml | 4 +- docs/index.html | 171 +++++++++++------- docs/index.xml | 171 +++++++++++------- docs/introduction/index.html | 40 ++-- docs/introduction/index.xml | 40 ++-- docs/related-projects/index.html | 6 +- docs/related-projects/index.xml | 6 +- env-example | 2 +- 22 files changed, 519 insertions(+), 328 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 0bad6746..4bda231b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: applications: image: tianon/true volumes: - - ${APPLICATIONS_HOST_DIR}:/var/www + - ${APPLICATION_1}:/var/www ### Workspace Utilities Container ########################### diff --git a/docs/_settings/content/contributing/index.md b/docs/_settings/content/contributing/index.md index 4631aa7a..14d01109 100644 --- a/docs/_settings/content/contributing/index.md +++ b/docs/_settings/content/contributing/index.md @@ -9,7 +9,7 @@ Your contribution is more than welcome. ## Got a Question or Problem? -If you have questions about how to use LaraDock, please direct your questions to the discussion on [Gitter](https://gitter.im/LaraDock/laradock). If you believe your question could help others, then consider opening an [Issue](https://github.com/laradock/laradock/issues) (it will be labeled as Question). +If you have questions about how to use Laradock, please direct your questions to the discussion on [Gitter](https://gitter.im/Laradock/laradock). If you believe your question could help others, then consider opening an [Issue](https://github.com/laradock/laradock/issues) (it will be labeled as Question). ## Found an Issue? If you find a bug in the source code or a mistake in the documentation, you can help us by @@ -62,7 +62,7 @@ Laradock uses [Hugo](https://gohugo.io/) as website generator tool, with the [Ma * Edit the files you want to update. * **Note:** If you want to edit the base image of the `Workspace` or the `php-fpm` Containers, -you need to edit their Docker-files from their GitHub repositories. For more info read their Dockerfiles comment on the LaraDock repository. +you need to edit their Docker-files from their GitHub repositories. For more info read their Dockerfiles comment on the Laradock repository. * Make sure to update the `Readme` in case you made any changes. diff --git a/docs/_settings/content/documentation/index.md b/docs/_settings/content/documentation/index.md index f8785f81..ee2e5d75 100644 --- a/docs/_settings/content/documentation/index.md +++ b/docs/_settings/content/documentation/index.md @@ -329,7 +329,7 @@ For information on how to configure xDebug with your IDE and work it out, check By installing xDebug, you are enabling it to run on startup by default. -To control the behavior of xDebug (in the `php-fpm` Container), you can run the following commands from the LaraDock root folder, (at the same prompt where you run docker-compose): +To control the behavior of xDebug (in the `php-fpm` Container), you can run the following commands from the Laradock root folder, (at the same prompt where you run docker-compose): - Stop xDebug from running by default: `./xdebugPhpFpm stop`. - Start xDebug by default: `./xdebugPhpFpm start`. @@ -381,10 +381,10 @@ It should be like this:
- -## Prepare LaraDock for Production + +## Prepare Laradock for Production -It's recommended for production to create a custom `docker-compose.yml` file. For that reason, LaraDock is shipped with `production-docker-compose.yml` which should contain only the containers you are planning to run on production (usage example: `docker-compose -f production-docker-compose.yml up -d nginx mysql redis ...`). +It's recommended for production to create a custom `docker-compose.yml` file. For that reason, Laradock is shipped with `production-docker-compose.yml` which should contain only the containers you are planning to run on production (usage example: `docker-compose -f production-docker-compose.yml up -d nginx mysql redis ...`). Note: The Database (MySQL/MariaDB/...) ports should not be forwarded on production, because Docker will automatically publish the port on the host, which is quite insecure, unless specifically told not to. So make sure to remove these lines: @@ -439,7 +439,7 @@ For more about the Laravel installation click [here](https://laravel.com/docs/ma 3 - Edit `docker-compose.yml` to Map the new application path: -By default, LaraDock assumes the Laravel application is living in the parent directory of the laradock folder. +By default, Laradock assumes the Laravel application is living in the parent directory of the laradock folder. Since the new Laravel application is in the `my-cool-app` folder, we need to replace `../:/var/www` with `../my-cool-app/:/var/www`, as follow: @@ -456,7 +456,7 @@ Since the new Laravel application is in the `my-cool-app` folder, we need to rep cd my-cool-app ``` -5 - Go back to the LaraDock installation steps to see how to edit the `.env` file. +5 - Go back to the Laradock installation steps to see how to edit the `.env` file. @@ -581,7 +581,7 @@ composer require predis/predis:^1.0 5 - You can manually test it from Laravel with this code: ```php -\Cache::store('redis')->put('LaraDock', 'Awesome', 10); +\Cache::store('redis')->put('Laradock', 'Awesome', 10); ``` @@ -893,7 +893,7 @@ docker-compose up -d minio ## Install CodeIgniter -To install CodeIgniter 3 on LaraDock all you have to do is the following simple steps: +To install CodeIgniter 3 on Laradock all you have to do is the following simple steps: 1 - Open the `docker-compose.yml` file. @@ -1198,7 +1198,7 @@ It should be like this:
## Common Terminal Aliases -When you start your docker container, LaraDock will copy the `aliases.sh` file located in the `laradock/workspace` directory and add sourcing to the container `~/.bashrc` file. +When you start your docker container, Laradock will copy the `aliases.sh` file located in the `laradock/workspace` directory and add sourcing to the container `~/.bashrc` file. You are free to modify the `aliases.sh` as you see fit, adding your own aliases (or function macros) to suit your requirements. @@ -1292,10 +1292,10 @@ Remote debug Laravel web and phpunit tests.
- -## Keep track of your LaraDock changes + +## Keep track of your Laradock changes -1. Fork the LaraDock repository. +1. Fork the Laradock repository. 2. Use that fork as a submodule. 3. Commit all your changes to your fork. 4. Pull new stuff from the main repository from time to time. @@ -1308,14 +1308,14 @@ Remote debug Laravel web and phpunit tests.
-## Upgrading LaraDock +## Upgrading Laradock -Moving from Docker Toolbox (VirtualBox) to Docker Native (for Mac/Windows). Requires upgrading LaraDock from v3.* to v4.*: +Moving from Docker Toolbox (VirtualBox) to Docker Native (for Mac/Windows). Requires upgrading Laradock from v3.* to v4.*: 1. Stop the docker VM `docker-machine stop {default}` 2. Install Docker for [Mac](https://docs.docker.com/docker-for-mac/) or [Windows](https://docs.docker.com/docker-for-windows/). -3. Upgrade LaraDock to `v4.*.*` (`git pull origin master`) -4. Use LaraDock as you used to do: `docker-compose up -d nginx mysql`. +3. Upgrade Laradock to `v4.*.*` (`git pull origin master`) +4. Use Laradock as you used to do: `docker-compose up -d nginx mysql`. **Note:** If you face any problem with the last step above: rebuild all your containers `docker-compose build --no-cache` @@ -1454,4 +1454,4 @@ This error sometimes happens because your Laravel application isn't running on t 1. Check your running Laravel application IP by dumping `Request::ip()` variable using `dd(Request::ip())` anywhere on your application. The result is the IP of your Laravel container. 2. Change the `DB_HOST` variable on env with the IP that you received from previous step. * Option B - 1. Change the `DB_HOST` value to the same name as the MySQL docker container. The LaraDock docker-compose file currently has this as `mysql` + 1. Change the `DB_HOST` value to the same name as the MySQL docker container. The Laradock docker-compose file currently has this as `mysql` diff --git a/docs/_settings/content/getting-started/index.md b/docs/_settings/content/getting-started/index.md index 858f95b9..f767d386 100644 --- a/docs/_settings/content/getting-started/index.md +++ b/docs/_settings/content/getting-started/index.md @@ -19,23 +19,35 @@ weight: 2 Choose the setup the best suits your needs. -#### A) Setup for Single Project: -*(In case you want a Docker environment for each project)* +- [A) Setup for Single Project](#A) + - [A.1) Already have a PHP project](#A1) + - [A.2) Don't have a PHP project yet](#A2) +- [B) Setup for Multiple Projects](#B) -##### A.1) Setup environment in existing Project: -*(In case you already have a project, and you want to setup an environment to run it)* -1 - Clone this repository on your project root directory: + +#### A) Setup for Single Project +> (Follow these steps if you want a separate Docker environment for each project) + + + +##### A.1) Already have a PHP project: +> (Follow these steps if you already have a PHP project, and all you need is an environment to run it) + +1 - Clone laradock on your project root directory: ```bash git submodule add https://github.com/Laradock/laradock.git ``` -*Note 1: If you are not yet using Git for your PHP project, you can use `git clone https://github.com/Laradock/laradock.git` instead.* +**Notes:** -*Note 2: To keep track of your LaraDock changes, between your projects and also keep LaraDock updated. [Check this](#keep-tracking-LaraDock)* +- If you are not using Git yet for your project, you can use `git clone` instead of `git submodule `. -*Note 3: In this case the folder structure will be like this:* +- Note 2: To keep track of your Laradock changes, between your projects and also keep Laradock updated. [Check this](#keep-tracking-Laradock) + + +Your folder structure should look like this: ``` - project1 @@ -44,15 +56,18 @@ git submodule add https://github.com/Laradock/laradock.git - laradock ``` -##### A.2) Setup environment first then create project: -*(In case you don't have a project, and you want to create your project inside the Docker environment)* + + +##### A.2) Don't have a PHP project yet: +> (Follow these steps if you don't have a PHP project yet, and you need an environment to create the project) 1 - Clone this repository anywhere on your machine: ```bash git clone https://github.com/laradock/laradock.git ``` -Note: In this case the folder structure will be like this: + +Your folder structure should look like this: ``` - projects @@ -68,8 +83,9 @@ Note: In this case the folder structure will be like this: docker-compose stop && docker-compose up -d XXXX YYYY ZZZZ .... ``` - + #### B) Setup for Multiple Projects: +> (Follow these steps if you want a single Docker environment for all project) 1 - Clone this repository anywhere on your machine: @@ -77,11 +93,10 @@ docker-compose stop && docker-compose up -d XXXX YYYY ZZZZ .... git clone https://github.com/laradock/laradock.git ``` -2 - Edit the `docker-compose.yml` file to map to your projects directories: +2 - Edit the `docker-compose.yml` (or the `.env`) file to map to your projects directories: ``` applications: - image: tianon/true volumes: - ../project1/:/var/www/project1 - ../project2/:/var/www/project2 @@ -120,12 +135,12 @@ Do the same for each project `project2.conf`, `project3.conf`,... If you are using **Docker Toolbox** (VM), do one of the following: -- Upgrade to Docker [Native](https://www.docker.com/products/docker) for Mac/Windows (Recommended). Check out [Upgrading LaraDock](#upgrading-laradock) -- Use LaraDock v3.* (Visit the `LaraDock-ToolBox` [Branch](https://github.com/laradock/laradock/tree/LaraDock-ToolBox)). +- Upgrade to Docker [Native](https://www.docker.com/products/docker) for Mac/Windows (Recommended). Check out [Upgrading Laradock](#upgrading-laradock) +- Use Laradock v3.* (Visit the `Laradock-ToolBox` [Branch](https://github.com/laradock/laradock/tree/Laradock-ToolBox)).
->**Warning:** If you used an older version of LaraDock it's highly recommended to rebuild the containers you need to use [see how you rebuild a container](#Build-Re-build-Containers) in order to prevent errors as much as possible. +>**Warning:** If you used an older version of Laradock it's highly recommended to rebuild the containers you need to use [see how you rebuild a container](#Build-Re-build-Containers) in order to prevent as much errors as possible.
@@ -143,7 +158,9 @@ docker-compose up -d nginx mysql You can select your own combination of Containers form the list below: -`nginx`, `hhvm`, `php-fpm`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `mongo`, `apache2`, `caddy`, `memcached`, `beanstalkd`, `beanstalkd-console`, `rabbitmq`, `workspace`, `phpmyadmin`, `aerospike`, `pgadmin`, `elasticsearch`, `rethinkdb`. +`nginx`, `hhvm`, `php-fpm`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `mongo`, `apache2`, `caddy`, `memcached`, `beanstalkd`, `beanstalkd-console`, `rabbitmq`, `beanstalkd-console`, `workspace`, `phpmyadmin`, `aerospike`, `pgadmin`, `elasticsearch`, `rethinkdb`, `postgres-postgis`, `certbot`, `mailhog`, `minio` and more...! + +*(Please note that sometimes we forget to update the docs, so check the `docker-compose.yml` file to see an updated list of all available containers).*
@@ -159,7 +176,13 @@ Alternatively, for Windows PowerShell users: execute the following command to en docker exec -it {workspace-container-id} bash ``` -**Note:** You can add `--user=laradock` (example `docker-compose exec --user=laradock workspace bash`) to have files created as your host's user. (you can change the PUID (User id) and PGID (group id) variables from the `docker-compose.yml`). +**Note:** You can add `--user=laradock` to have files created as your host's user. Example: + +```shell +docker-compose exec --user=laradock workspace bash +``` + +*You can change the PUID (User id) and PGID (group id) variables from the `docker-compose.yml` or the `.env`)*
3 - Edit your project configurations. @@ -170,12 +193,7 @@ Open your `.env` file and set the `DB_HOST` to `mysql`: DB_HOST=mysql ``` -*If you want to use Laravel and you don't have it installed yet, see [How to Install Laravel in a Docker Container](#Install-Laravel).* +*If you want to install Laravel as PHP project, see [How to Install Laravel in a Docker Container](#Install-Laravel).*
-4 - Open your browser and visit your localhost address (`http://localhost/`). - -
-**Debugging**: if you are facing any problem here check the [Debugging](#debugging) section. - -If you need a special support. Contact me, more details in the [Help & Questions](#Help) section. +4 - Open your browser and visit your localhost address `http://localhost/`. diff --git a/docs/_settings/content/help/index.md b/docs/_settings/content/help/index.md index db758fd0..3f2342de 100644 --- a/docs/_settings/content/help/index.md +++ b/docs/_settings/content/help/index.md @@ -4,6 +4,6 @@ type: index weight: 5 --- -Join the chat room on [Gitter](https://gitter.im/LaraDock/laradock) and get help and support from the community. +Join the chat room on [Gitter](https://gitter.im/Laradock/laradock) and get help and support from the community. -You can as well can open an [issue](https://github.com/laradock/laradock/issues) on Github (will be labeled as Question) and discuss it with people on [Gitter](https://gitter.im/LaraDock/laradock). +You can as well can open an [issue](https://github.com/laradock/laradock/issues) on Github (will be labeled as Question) and discuss it with people on [Gitter](https://gitter.im/Laradock/laradock). diff --git a/docs/_settings/content/introduction/index.md b/docs/_settings/content/introduction/index.md index 463bf0b1..44ae7a70 100644 --- a/docs/_settings/content/introduction/index.md +++ b/docs/_settings/content/introduction/index.md @@ -4,11 +4,11 @@ type: index weight: 1 --- -LaraDock strives to make the PHP development experience easier and faster. +Laradock strives to make the PHP development experience easier and faster. It contains pre-packaged Docker Images that provides you a wonderful *development* environment without requiring you to install PHP, NGINX, MySQL, Redis, and any other software on your machines. -LaraDock is configured to run Laravel Apps by default, and it can be modified to run all kinds of PHP Apps (Symfony, CodeIgniter, WordPress, Drupal...). +Laradock is configured to run Laravel Apps by default, and it can be modified to run all kinds of PHP Apps (Symfony, CodeIgniter, WordPress, Drupal...). @@ -17,19 +17,25 @@ LaraDock is configured to run Laravel Apps by default, and it can be modified to Let's see how easy it is to install `NGINX`, `PHP`, `Composer`, `MySQL`, `Redis` and `beanstalkd`: -1 - Clone LaraDock inside your PHP project: +1 - Clone Laradock inside your PHP project: ```shell git clone https://github.com/Laradock/laradock.git ``` -2 - Enter the laradock folder and run this command: +2 - Enter the laradock folder and rename `env-example` to `.env`. + +```shell +cp env-example .env +``` + +3 - Run your containers: ```shell docker-compose up -d nginx mysql redis beanstalkd ``` -3 - Open your `.env` file and set the following: +3 - Open your project's `.env` file and set the following: ```shell DB_HOST=mysql @@ -76,17 +82,17 @@ Most importantly Docker can run on Development and on Production (same environme -## LaraDock VS Homestead (For Laravel Developers) +## Laradock VS Homestead (For Laravel Developers) -> LaraDock It's like Laravel Homestead but for Docker instead of Vagrant. +> Laradock It's like Laravel Homestead but for Docker instead of Vagrant. -LaraDock and [Homestead](https://laravel.com/docs/master/homestead) both give you complete virtual development environments. (Without the need to install and configure every single software on your own Operating System). +Laradock and [Homestead](https://laravel.com/docs/master/homestead) both give you complete virtual development environments. (Without the need to install and configure every single software on your own Operating System). - Homestead is a tool that controls Vagrant for you (using Homestead special commands). And Vagrant manages your Virtual Machine. -- LaraDock is a tool that controls Docker for you (using Docker & Docker Compose official commands). And Docker manages your Virtual Containers. +- Laradock is a tool that controls Docker for you (using Docker & Docker Compose official commands). And Docker manages your Virtual Containers. -Running a virtual container is much faster than running a full virtual Machine. Thus **LaraDock is much faster than Homestead**. +Running a virtual container is much faster than running a full virtual Machine. Thus **Laradock is much faster than Homestead**. @@ -100,10 +106,10 @@ Running a virtual container is much faster than running a full virtual Machine. What's better than a **Demo Video**: -- LaraDock [v4.*](https://www.youtube.com/watch?v=TQii1jDa96Y) -- LaraDock [v2.*](https://www.youtube.com/watch?v=-DamFMczwDA) -- LaraDock [v0.3](https://www.youtube.com/watch?v=jGkyO6Is_aI) -- LaraDock [v0.1](https://www.youtube.com/watch?v=3YQsHe6oF80) +- Laradock [v4.*](https://www.youtube.com/watch?v=TQii1jDa96Y) +- Laradock [v2.*](https://www.youtube.com/watch?v=-DamFMczwDA) +- Laradock [v0.3](https://www.youtube.com/watch?v=jGkyO6Is_aI) +- Laradock [v0.1](https://www.youtube.com/watch?v=3YQsHe6oF80) @@ -139,11 +145,12 @@ What's better than a **Demo Video**: - **Database Engines:** - MySQL - - PostgreSQL - MariaDB - MongoDB - Neo4j - RethinkDB + - PostgreSQL + - Postgres Postgis - **Cache Engines:** - Redis - Memcached @@ -165,6 +172,8 @@ What's better than a **Demo Video**: - PgAdmin - ElasticSearch - Selenium + - Certbot + - Mailhog - Minio - Workspace - PHP7-CLI @@ -194,4 +203,4 @@ What's better than a **Demo Video**: You are welcome to join our chat room on Gitter. -[![Gitter](https://badges.gitter.im/LaraDock/laradock.svg)](https://gitter.im/LaraDock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![Gitter](https://badges.gitter.im/Laradock/laradock.svg)](https://gitter.im/Laradock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) diff --git a/docs/_settings/content/related-projects/index.md b/docs/_settings/content/related-projects/index.md index f4b4a42c..b5c30959 100644 --- a/docs/_settings/content/related-projects/index.md +++ b/docs/_settings/content/related-projects/index.md @@ -4,10 +4,10 @@ type: index weight: 4 --- -LaraDock related projects: +Laradock related projects: -* [LaraDock CLI](https://github.com/lorinlee/laradock-cli) by [LorinLee](https://github.com/lorinlee) -* [LaraDock Env](https://github.com/bagart/laradock_env) by [BAGArt](https://github.com/bagart) +* [Laradock CLI](https://github.com/lorinlee/laradock-cli) by [LorinLee](https://github.com/lorinlee) +* [Laradock Env](https://github.com/bagart/laradock_env) by [BAGArt](https://github.com/bagart) * [Klaradock](https://github.com/poyhsiao/Klaradock) by [Kim Hsiao](https://github.com/poyhsiao) * [Ansible Laradock Kubernetes](https://github.com/sifat-rahim/ansible-laradock-kubernetes) by [Sifat Rahim](https://github.com/sifat-rahim) These Docker Compose projects have piqued our interest: diff --git a/docs/contributing/index.html b/docs/contributing/index.html index 19bc73aa..b40742f2 100644 --- a/docs/contributing/index.html +++ b/docs/contributing/index.html @@ -317,7 +317,7 @@

Got a Question or Problem?

-

If you have questions about how to use LaraDock, please direct your questions to the discussion on Gitter. If you believe your question could help others, then consider opening an Issue (it will be labeled as Question).

+

If you have questions about how to use Laradock, please direct your questions to the discussion on Gitter. If you believe your question could help others, then consider opening an Issue (it will be labeled as Question).

Found an Issue?

@@ -371,7 +371,7 @@ submitting an Issue. E
  • Edit the files you want to update.

  • Note: If you want to edit the base image of the Workspace or the php-fpm Containers, -you need to edit their Docker-files from their GitHub repositories. For more info read their Dockerfiles comment on the LaraDock repository.

  • +you need to edit their Docker-files from their GitHub repositories. For more info read their Dockerfiles comment on the Laradock repository.

  • Make sure to update the Readme in case you made any changes.

  • diff --git a/docs/contributing/index.xml b/docs/contributing/index.xml index 94bad44d..934ec393 100644 --- a/docs/contributing/index.xml +++ b/docs/contributing/index.xml @@ -20,7 +20,7 @@ <h2 id="got-a-question-or-problem">Got a Question or Problem?</h2> -<p>If you have questions about how to use LaraDock, please direct your questions to the discussion on <a href="https://gitter.im/LaraDock/laradock">Gitter</a>. If you believe your question could help others, then consider opening an <a href="https://github.com/laradock/laradock/issues">Issue</a> (it will be labeled as Question).</p> +<p>If you have questions about how to use Laradock, please direct your questions to the discussion on <a href="https://gitter.im/Laradock/laradock">Gitter</a>. If you believe your question could help others, then consider opening an <a href="https://github.com/laradock/laradock/issues">Issue</a> (it will be labeled as Question).</p> <h2 id="found-an-issue">Found an Issue?</h2> @@ -74,7 +74,7 @@ submitting an <a href="https://github.com/laradock/laradock/issues"&g <li><p>Edit the files you want to update.</p></li> <li><p><strong>Note:</strong> If you want to edit the base image of the <code>Workspace</code> or the <code>php-fpm</code> Containers, -you need to edit their Docker-files from their GitHub repositories. For more info read their Dockerfiles comment on the LaraDock repository.</p></li> +you need to edit their Docker-files from their GitHub repositories. For more info read their Dockerfiles comment on the Laradock repository.</p></li> <li><p>Make sure to update the <code>Readme</code> in case you made any changes.</p></li> </ul> diff --git a/docs/documentation/index.html b/docs/documentation/index.html index 6f6830a1..e43cb4ed 100644 --- a/docs/documentation/index.html +++ b/docs/documentation/index.html @@ -577,7 +577,7 @@ xdebug.remote_connect_back=1

    By installing xDebug, you are enabling it to run on startup by default.

    -

    To control the behavior of xDebug (in the php-fpm Container), you can run the following commands from the LaraDock root folder, (at the same prompt where you run docker-compose):

    +

    To control the behavior of xDebug (in the php-fpm Container), you can run the following commands from the Laradock root folder, (at the same prompt where you run docker-compose):

    diff --git a/docs/documentation/index.xml b/docs/documentation/index.xml index 6eb19dd5..29310c57 100644 --- a/docs/documentation/index.xml +++ b/docs/documentation/index.xml @@ -280,7 +280,7 @@ xdebug.remote_connect_back=1 <p>By installing xDebug, you are enabling it to run on startup by default.</p> -<p>To control the behavior of xDebug (in the <code>php-fpm</code> Container), you can run the following commands from the LaraDock root folder, (at the same prompt where you run docker-compose):</p> +<p>To control the behavior of xDebug (in the <code>php-fpm</code> Container), you can run the following commands from the Laradock root folder, (at the same prompt where you run docker-compose):</p> <ul> <li>Stop xDebug from running by default: <code>./xdebugPhpFpm stop</code>.</li> @@ -320,11 +320,11 @@ xdebug.remote_connect_back=1 <a name="Production"></a></p> <p><br> -<a name="LaraDock-for-Production"></a></p> +<a name="Laradock-for-Production"></a></p> -<h2 id="prepare-laradock-for-production">Prepare LaraDock for Production</h2> +<h2 id="prepare-laradock-for-production">Prepare Laradock for Production</h2> -<p>It&rsquo;s recommended for production to create a custom <code>docker-compose.yml</code> file. For that reason, LaraDock is shipped with <code>production-docker-compose.yml</code> which should contain only the containers you are planning to run on production (usage example: <code>docker-compose -f production-docker-compose.yml up -d nginx mysql redis ...</code>).</p> +<p>It&rsquo;s recommended for production to create a custom <code>docker-compose.yml</code> file. For that reason, Laradock is shipped with <code>production-docker-compose.yml</code> which should contain only the containers you are planning to run on production (usage example: <code>docker-compose -f production-docker-compose.yml up -d nginx mysql redis ...</code>).</p> <p>Note: The Database (MySQL/MariaDB/&hellip;) ports should not be forwarded on production, because Docker will automatically publish the port on the host, which is quite insecure, unless specifically told not to. So make sure to remove these lines:</p> @@ -365,7 +365,7 @@ xdebug.remote_connect_back=1 <p>3 - Edit <code>docker-compose.yml</code> to Map the new application path:</p> -<p>By default, LaraDock assumes the Laravel application is living in the parent directory of the laradock folder.</p> +<p>By default, Laradock assumes the Laravel application is living in the parent directory of the laradock folder.</p> <p>Since the new Laravel application is in the <code>my-cool-app</code> folder, we need to replace <code>../:/var/www</code> with <code>../my-cool-app/:/var/www</code>, as follow:</p> @@ -381,7 +381,7 @@ xdebug.remote_connect_back=1 <pre><code class="language-bash">cd my-cool-app </code></pre> -<p>5 - Go back to the LaraDock installation steps to see how to edit the <code>.env</code> file.</p> +<p>5 - Go back to the Laradock installation steps to see how to edit the <code>.env</code> file.</p> <p><br> <a name="Run-Artisan-Commands"></a></p> @@ -483,7 +483,7 @@ SESSION_DRIVER=redis <p>5 - You can manually test it from Laravel with this code:</p> -<pre><code class="language-php">\Cache::store('redis')-&gt;put('LaraDock', 'Awesome', 10); +<pre><code class="language-php">\Cache::store('redis')-&gt;put('Laradock', 'Awesome', 10); </code></pre> <p><br> @@ -750,7 +750,7 @@ A package (<a href="https://github.com/duxet/laravel-rethinkdb">La <h2 id="install-codeigniter">Install CodeIgniter</h2> -<p>To install CodeIgniter 3 on LaraDock all you have to do is the following simple steps:</p> +<p>To install CodeIgniter 3 on Laradock all you have to do is the following simple steps:</p> <p>1 - Open the <code>docker-compose.yml</code> file.</p> @@ -990,7 +990,7 @@ port=1234 <h2 id="common-terminal-aliases">Common Terminal Aliases</h2> -<p>When you start your docker container, LaraDock will copy the <code>aliases.sh</code> file located in the <code>laradock/workspace</code> directory and add sourcing to the container <code>~/.bashrc</code> file.</p> +<p>When you start your docker container, Laradock will copy the <code>aliases.sh</code> file located in the <code>laradock/workspace</code> directory and add sourcing to the container <code>~/.bashrc</code> file.</p> <p>You are free to modify the <code>aliases.sh</code> as you see fit, adding your own aliases (or function macros) to suit your requirements.</p> @@ -1065,12 +1065,12 @@ e) set it to <code>true</code></p> <p><a href="https://github.com/laradock/laradock/blob/master/_guides/phpstorm.md"><strong>Debugging Guide Here</strong></a></p> <p><br> -<a name="keep-tracking-LaraDock"></a></p> +<a name="keep-tracking-Laradock"></a></p> -<h2 id="keep-track-of-your-laradock-changes">Keep track of your LaraDock changes</h2> +<h2 id="keep-track-of-your-laradock-changes">Keep track of your Laradock changes</h2> <ol> -<li>Fork the LaraDock repository.</li> +<li>Fork the Laradock repository.</li> <li>Use that fork as a submodule.</li> <li>Commit all your changes to your fork.</li> <li>Pull new stuff from the main repository from time to time.</li> @@ -1079,15 +1079,15 @@ e) set it to <code>true</code></p> <p><br> <a name="upgrading-laradock"></a></p> -<h2 id="upgrading-laradock">Upgrading LaraDock</h2> +<h2 id="upgrading-laradock">Upgrading Laradock</h2> -<p>Moving from Docker Toolbox (VirtualBox) to Docker Native (for Mac/Windows). Requires upgrading LaraDock from v3.* to v4.*:</p> +<p>Moving from Docker Toolbox (VirtualBox) to Docker Native (for Mac/Windows). Requires upgrading Laradock from v3.* to v4.*:</p> <ol> <li>Stop the docker VM <code>docker-machine stop {default}</code></li> <li>Install Docker for <a href="https://docs.docker.com/docker-for-mac/">Mac</a> or <a href="https://docs.docker.com/docker-for-windows/">Windows</a>.</li> -<li>Upgrade LaraDock to <code>v4.*.*</code> (<code>git pull origin master</code>)</li> -<li>Use LaraDock as you used to do: <code>docker-compose up -d nginx mysql</code>.</li> +<li>Upgrade Laradock to <code>v4.*.*</code> (<code>git pull origin master</code>)</li> +<li>Use Laradock as you used to do: <code>docker-compose up -d nginx mysql</code>.</li> </ol> <p><strong>Note:</strong> If you face any problem with the last step above: rebuild all your containers @@ -1203,7 +1203,7 @@ e) set it to <code>true</code></p> <li>Option B <ol> -<li>Change the <code>DB_HOST</code> value to the same name as the MySQL docker container. The LaraDock docker-compose file currently has this as <code>mysql</code></li> +<li>Change the <code>DB_HOST</code> value to the same name as the MySQL docker container. The Laradock docker-compose file currently has this as <code>mysql</code></li> </ol></li> </ul> diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html index 9285ff25..a93294df 100644 --- a/docs/getting-started/index.html +++ b/docs/getting-started/index.html @@ -324,24 +324,46 @@

    Choose the setup the best suits your needs.

    -

    A) Setup for Single Project:

    + -
    A.1) Setup environment in existing Project:
    +

    -

    (In case you already have a project, and you want to setup an environment to run it)

    +

    A) Setup for Single Project

    -

    1 - Clone this repository on your project root directory:

    +
    +

    (Follow these steps if you want a separate Docker environment for each project)

    +
    + +

    + +
    A.1) Already have a PHP project:
    + +
    +

    (Follow these steps if you already have a PHP project, and all you need is an environment to run it)

    +
    + +

    1 - Clone laradock on your project root directory:

    git submodule add https://github.com/Laradock/laradock.git
     
    -

    Note 1: If you are not yet using Git for your PHP project, you can use git clone https://github.com/Laradock/laradock.git instead.

    +

    Notes:

    -

    Note 2: To keep track of your LaraDock changes, between your projects and also keep LaraDock updated. Check this

    +
      +
    • If you are not using Git yet for your project, you can use git clone instead of git submodule.

    • -

      Note 3: In this case the folder structure will be like this:

      +
    • Note 2: To keep track of your Laradock changes, between your projects and also keep Laradock updated. Check this

    • +
    + +

    Your folder structure should look like this:

    - project1
     	- laradock
    @@ -349,16 +371,20 @@
     	- laradock
     
    -
    A.2) Setup environment first then create project:
    +

    -

    (In case you don’t have a project, and you want to create your project inside the Docker environment)

    +
    A.2) Don’t have a PHP project yet:
    + +
    +

    (Follow these steps if you don’t have a PHP project yet, and you need an environment to create the project)

    +

    1 - Clone this repository anywhere on your machine:

    git clone https://github.com/laradock/laradock.git
     
    -

    Note: In this case the folder structure will be like this:

    +

    Your folder structure should look like this:

    - projects
     	- laradock
    @@ -372,17 +398,22 @@
     
    docker-compose stop && docker-compose up -d XXXX YYYY ZZZZ ....
     
    +

    +

    B) Setup for Multiple Projects:

    +
    +

    (Follow these steps if you want a single Docker environment for all project)

    +
    +

    1 - Clone this repository anywhere on your machine:

    git clone https://github.com/laradock/laradock.git
     
    -

    2 - Edit the docker-compose.yml file to map to your projects directories:

    +

    2 - Edit the docker-compose.yml (or the .env) file to map to your projects directories:

        applications:
    -        image: tianon/true
             volumes:
                 - ../project1/:/var/www/project1
                 - ../project2/:/var/www/project2
    @@ -414,14 +445,14 @@
     

    If you are using Docker Toolbox (VM), do one of the following:


    -

    Warning: If you used an older version of LaraDock it’s highly recommended to rebuild the containers you need to use see how you rebuild a container in order to prevent errors as much as possible.

    +

    Warning: If you used an older version of Laradock it’s highly recommended to rebuild the containers you need to use see how you rebuild a container in order to prevent as much errors as possible.


    @@ -437,7 +468,9 @@

    You can select your own combination of Containers form the list below:

    -

    nginx, hhvm, php-fpm, mysql, redis, postgres, mariadb, neo4j, mongo, apache2, caddy, memcached, beanstalkd, beanstalkd-console, rabbitmq, workspace, phpmyadmin, aerospike, pgadmin, elasticsearch, rethinkdb.

    +

    nginx, hhvm, php-fpm, mysql, redis, postgres, mariadb, neo4j, mongo, apache2, caddy, memcached, beanstalkd, beanstalkd-console, rabbitmq, beanstalkd-console, workspace, phpmyadmin, aerospike, pgadmin, elasticsearch, rethinkdb, postgres-postgis, certbot, mailhog, minio and more…!

    + +

    (Please note that sometimes we forget to update the docs, so check the docker-compose.yml file to see an updated list of all available containers).


    2 - Enter the Workspace container, to execute commands like (Artisan, Composer, PHPUnit, Gulp, …).

    @@ -450,7 +483,12 @@
    docker exec -it {workspace-container-id} bash
     
    -

    Note: You can add --user=laradock (example docker-compose exec --user=laradock workspace bash) to have files created as your host’s user. (you can change the PUID (User id) and PGID (group id) variables from the docker-compose.yml).

    +

    Note: You can add --user=laradock to have files created as your host’s user. Example:

    + +
    docker-compose exec --user=laradock workspace bash
    +
    + +

    You can change the PUID (User id) and PGID (group id) variables from the docker-compose.yml or the .env)


    3 - Edit your project configurations.

    @@ -460,15 +498,10 @@
    DB_HOST=mysql
     
    -

    If you want to use Laravel and you don’t have it installed yet, see How to Install Laravel in a Docker Container.

    +

    If you want to install Laravel as PHP project, see How to Install Laravel in a Docker Container.


    -4 - Open your browser and visit your localhost address (http://localhost/).

    - -


    -Debugging: if you are facing any problem here check the Debugging section.

    - -

    If you need a special support. Contact me, more details in the Help & Questions section.

    +4 - Open your browser and visit your localhost address http://localhost/.