From e07ee7d07d8bd7f3091ac333fbd90b3b29a2153e Mon Sep 17 00:00:00 2001 From: Madson Jr Date: Wed, 18 Jul 2018 13:25:16 -0300 Subject: [PATCH 001/295] GraphViz support in workspace Issue #1003 --- docker-compose.yml | 1 + env-example | 1 + workspace/Dockerfile | 11 +++++++++++ 3 files changed, 13 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 2e6a7ea5..22049d0e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -88,6 +88,7 @@ services: - INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT} - INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE} - INSTALL_LIBPNG=${WORKSPACE_INSTALL_LIBPNG} + - INSTALL_GRAPHVIZ=${WORKSPACE_INSTALL_GRAPHVIZ} - PUID=${WORKSPACE_PUID} - PGID=${WORKSPACE_PGID} - CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION} diff --git a/env-example b/env-example index 25ebcb7e..b0cb7dcd 100644 --- a/env-example +++ b/env-example @@ -114,6 +114,7 @@ WORKSPACE_INSTALL_DUSK_DEPS=false WORKSPACE_INSTALL_PG_CLIENT=false WORKSPACE_INSTALL_SWOOLE=false WORKSPACE_INSTALL_LIBPNG=false +WORKSPACE_INSTALL_GRAPHVIZ=false WORKSPACE_PUID=1000 WORKSPACE_PGID=1000 WORKSPACE_CHROME_DRIVER_VERSION=2.32 diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 4f1e4645..6d252364 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -377,6 +377,17 @@ RUN if [ ${INSTALL_LIBPNG} = true ]; then \ apt install libpng16-16 \ ;fi +########################################################################### +# GraphViz extension +########################################################################### + +ARG INSTALL_GRAPHVIZ=false + +RUN if [ ${INSTALL_GRAPHVIZ} = true ]; then \ + apt-get update && \ + apt-get install -y graphviz \ +;fi + ########################################################################### # Drupal Console: ########################################################################### From 7aba9991f658d78eda59db04f67c3ff5d11bc4c1 Mon Sep 17 00:00:00 2001 From: Madson Jr Date: Wed, 18 Jul 2018 13:26:27 -0300 Subject: [PATCH 002/295] Conflict merge --- docker-compose.yml | 2 +- .../docker-entrypoint-initdb.d/createdb.sql.example | 12 ++++++------ nginx/sites/{default.conf => default.conf.example} | 0 workspace/Dockerfile | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) rename nginx/sites/{default.conf => default.conf.example} (100%) diff --git a/docker-compose.yml b/docker-compose.yml index d9566e85..8b2cbd13 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -685,7 +685,7 @@ services: networks: - frontend - backend - + ### Solr ################################################ solr: build: diff --git a/mysql/docker-entrypoint-initdb.d/createdb.sql.example b/mysql/docker-entrypoint-initdb.d/createdb.sql.example index 6420afb8..dc48e59b 100644 --- a/mysql/docker-entrypoint-initdb.d/createdb.sql.example +++ b/mysql/docker-entrypoint-initdb.d/createdb.sql.example @@ -16,13 +16,13 @@ # mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql # -#CREATE DATABASE IF NOT EXISTS `dev_db_1` COLLATE 'utf8_general_ci' ; -#GRANT ALL ON `dev_db_1`.* TO 'default'@'%' ; +CREATE DATABASE IF NOT EXISTS `finance_control` COLLATE 'utf8_general_ci' ; +GRANT ALL ON `finance_control`.* TO 'fincon'@'%' IDENTIFIED BY 'fincon'; -#CREATE DATABASE IF NOT EXISTS `dev_db_2` COLLATE 'utf8_general_ci' ; -#GRANT ALL ON `dev_db_2`.* TO 'default'@'%' ; +-- CREATE DATABASE IF NOT EXISTS `dev_db_2` COLLATE 'utf8_general_ci' ; +-- GRANT ALL ON `dev_db_2`.* TO 'default'@'%' ; -#CREATE DATABASE IF NOT EXISTS `dev_db_3` COLLATE 'utf8_general_ci' ; -#GRANT ALL ON `dev_db_3`.* TO 'default'@'%' ; +-- CREATE DATABASE IF NOT EXISTS `dev_db_3` COLLATE 'utf8_general_ci' ; +-- GRANT ALL ON `dev_db_3`.* TO 'default'@'%' ; FLUSH PRIVILEGES ; diff --git a/nginx/sites/default.conf b/nginx/sites/default.conf.example similarity index 100% rename from nginx/sites/default.conf rename to nginx/sites/default.conf.example diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 6d252364..36e44375 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -787,7 +787,7 @@ RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \ USER root RUN apt-get update -yqq \ - && apt-get -yqq install nasm + && apt-get -yqq install nasm ########################################################################### # Dusk Dependencies: From d04fa78a75f614819faf873ee1dc94e97998ec56 Mon Sep 17 00:00:00 2001 From: Madson Jr Date: Wed, 18 Jul 2018 13:39:52 -0300 Subject: [PATCH 003/295] Removed invalid example file --- .../createdb.sql.example | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 mysql/docker-entrypoint-initdb.d/createdb.sql.example diff --git a/mysql/docker-entrypoint-initdb.d/createdb.sql.example b/mysql/docker-entrypoint-initdb.d/createdb.sql.example deleted file mode 100644 index dc48e59b..00000000 --- a/mysql/docker-entrypoint-initdb.d/createdb.sql.example +++ /dev/null @@ -1,28 +0,0 @@ -# -# Copy createdb.sql.example to createdb.sql -# then uncomment then set database name and username to create you need databases -# -# example: .env MYSQL_USER=appuser and need db name is myshop_db -# -# CREATE DATABASE IF NOT EXISTS `myshop_db` ; -# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ; -# -# -# this sql script will auto run when the mysql container starts and the $DATA_PATH_HOST/mysql not found. -# -# if your $DATA_PATH_HOST/mysql exists and you do not want to delete it, you can run by manual execution: -# -# docker-compose exec mysql bash -# mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql -# - -CREATE DATABASE IF NOT EXISTS `finance_control` COLLATE 'utf8_general_ci' ; -GRANT ALL ON `finance_control`.* TO 'fincon'@'%' IDENTIFIED BY 'fincon'; - --- CREATE DATABASE IF NOT EXISTS `dev_db_2` COLLATE 'utf8_general_ci' ; --- GRANT ALL ON `dev_db_2`.* TO 'default'@'%' ; - --- CREATE DATABASE IF NOT EXISTS `dev_db_3` COLLATE 'utf8_general_ci' ; --- GRANT ALL ON `dev_db_3`.* TO 'default'@'%' ; - -FLUSH PRIVILEGES ; From e526e46e60beff6d2bf5ecb5395d8265f3994a36 Mon Sep 17 00:00:00 2001 From: Madson Jr Date: Fri, 20 Jul 2018 19:14:11 -0300 Subject: [PATCH 004/295] MySQL create DB example. --- .../createdb.sql.example | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 mysql/docker-entrypoint-initdb.d/createdb.sql.example diff --git a/mysql/docker-entrypoint-initdb.d/createdb.sql.example b/mysql/docker-entrypoint-initdb.d/createdb.sql.example new file mode 100644 index 00000000..6420afb8 --- /dev/null +++ b/mysql/docker-entrypoint-initdb.d/createdb.sql.example @@ -0,0 +1,28 @@ +# +# Copy createdb.sql.example to createdb.sql +# then uncomment then set database name and username to create you need databases +# +# example: .env MYSQL_USER=appuser and need db name is myshop_db +# +# CREATE DATABASE IF NOT EXISTS `myshop_db` ; +# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ; +# +# +# this sql script will auto run when the mysql container starts and the $DATA_PATH_HOST/mysql not found. +# +# if your $DATA_PATH_HOST/mysql exists and you do not want to delete it, you can run by manual execution: +# +# docker-compose exec mysql bash +# mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql +# + +#CREATE DATABASE IF NOT EXISTS `dev_db_1` COLLATE 'utf8_general_ci' ; +#GRANT ALL ON `dev_db_1`.* TO 'default'@'%' ; + +#CREATE DATABASE IF NOT EXISTS `dev_db_2` COLLATE 'utf8_general_ci' ; +#GRANT ALL ON `dev_db_2`.* TO 'default'@'%' ; + +#CREATE DATABASE IF NOT EXISTS `dev_db_3` COLLATE 'utf8_general_ci' ; +#GRANT ALL ON `dev_db_3`.* TO 'default'@'%' ; + +FLUSH PRIVILEGES ; From f8ec06ac1cd32aee0f5083fe847b6b510c04fa02 Mon Sep 17 00:00:00 2001 From: anribras Date: Sat, 6 Jul 2019 17:41:11 +0800 Subject: [PATCH 005/295] Add mariadb timezone setting via WORKSPACE_TIMEZONE in .env --- docker-compose.yml | 1 + mariadb/Dockerfile | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index a136f741..49a4c3a9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -407,6 +407,7 @@ services: ports: - "${MARIADB_PORT}:3306" environment: + - TZ=${WORKSPACE_TIMEZONE} - MYSQL_DATABASE=${MARIADB_DATABASE} - MYSQL_USER=${MARIADB_USER} - MYSQL_PASSWORD=${MARIADB_PASSWORD} diff --git a/mariadb/Dockerfile b/mariadb/Dockerfile index 0dcb9481..7538b4e2 100644 --- a/mariadb/Dockerfile +++ b/mariadb/Dockerfile @@ -2,6 +2,13 @@ FROM mariadb:latest LABEL maintainer="Mahmoud Zalt " +##################################### +# Set Timezone +##################################### + +ARG TZ=UTC +ENV TZ ${TZ} +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && chown -R mysql:root /var/lib/mysql/ COPY my.cnf /etc/mysql/conf.d/my.cnf CMD ["mysqld"] From c4a99cce57da0d47632586c6ee73de9c59d7d9ab Mon Sep 17 00:00:00 2001 From: Zack Craig Date: Fri, 2 Aug 2019 09:02:52 -0400 Subject: [PATCH 006/295] Add en_US.UTF-8 to the default list of extra locales Feel free to decline this, but I thought maybe adding US English to the default list of extra locales may be beneficial? --- env-example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/env-example b/env-example index 0e80c21b..214b828b 100644 --- a/env-example +++ b/env-example @@ -191,7 +191,7 @@ PHP_FPM_INSTALL_MYSQL_CLIENT=false PHP_FPM_INSTALL_PING=false PHP_FPM_INSTALL_SSHPASS=false PHP_FPM_FFMPEG=false -PHP_FPM_ADDITIONAL_LOCALES="es_ES.UTF-8 fr_FR.UTF-8" +PHP_FPM_ADDITIONAL_LOCALES="en_US.UTF-8 es_ES.UTF-8 fr_FR.UTF-8" ### PHP_WORKER ############################################ @@ -770,4 +770,4 @@ CASSANDRA_ENABLE_RPC=true # Datacenter name for the cluster. Ignored in SimpleSnitch endpoint snitch. Default: dc1. CASSANDRA_DATACENTER=dc1 # Rack name for the cluster. Ignored in SimpleSnitch endpoint snitch. Default: rack1. -CASSANDRA_RACK=rack1 \ No newline at end of file +CASSANDRA_RACK=rack1 From 70e63c59d0ba01f3ca4c20041870802aa0dad7e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=85=8B?= Date: Sun, 20 Oct 2019 17:16:25 +0800 Subject: [PATCH 007/295] Fix localhost address --- DOCUMENTATION/content/getting-started/index.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/DOCUMENTATION/content/getting-started/index.md b/DOCUMENTATION/content/getting-started/index.md index f71661da..9e756951 100644 --- a/DOCUMENTATION/content/getting-started/index.md +++ b/DOCUMENTATION/content/getting-started/index.md @@ -221,8 +221,12 @@ Or you can change them and rebuild the container.
5 - Open your browser and visit your localhost address. +Make sure you add use the right port number as provided by your running server. + +[http://localhost:80](http://localhost:80) + If you followed the multiple projects setup, you can visit `http://project-1.test/` and `http://project-2.test/`. -[http://localhost:8080](http://localhost:8080) -Make sure you add use the right port number as provided by your running server. Ex: NGINX uses port 8080 by default while Apache2 uses 80. + + From 2af7bfa60fcc3c9202cc2a05ae8ecfa4bcc954fc Mon Sep 17 00:00:00 2001 From: Anton Sannikov Date: Thu, 31 Oct 2019 16:02:33 +0300 Subject: [PATCH 008/295] Varnish vs Nginx configuration added --- DOCUMENTATION/content/documentation/index.md | 70 ++++++ docker-compose.yml | 7 + env-example | 4 +- nginx/Dockerfile | 4 +- nginx/sites/laravel_varnish.conf.example | 110 +++++++++ varnish/Dockerfile | 10 +- varnish/default.vcl | 9 +- varnish/default_wordpress.vcl | 243 +++++++++++++++++++ varnish/start.sh | 8 + 9 files changed, 451 insertions(+), 14 deletions(-) create mode 100644 nginx/sites/laravel_varnish.conf.example create mode 100644 varnish/default_wordpress.vcl diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index d2b91fb4..81725358 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -674,6 +674,7 @@ You may wanna change the default security configuration, so go to `http://localh
+ ## Use Redis 1 - First make sure you run the Redis Container (`redis`) with the `docker-compose up` command. @@ -761,12 +762,81 @@ Read the [Laravel official documentation](https://laravel.com/docs/5.7/redis#con ``` +
+ +## Use Varnish +The goal was to proxy request to varnish server using nginx. So only nginx has been configured for Varnish proxy. +Nginx is on port 80 or 443. Nginx sends request through varnish server and varnish server sends request back to nginx on port 81 (external port is defined in `VARNISH_BACKEND_PORT`). +The idea was taken from this [post](https://www.linode.com/docs/websites/varnish/use-varnish-and-nginx-to-serve-wordpress-over-ssl-and-http-on-debian-8/) + +The Varnish configuration was developed and tested for Wordpress only. Probably it works with other systems. + +#### Steps to configure varnish proxy server: +1. You have to set domain name for VARNISH_PROXY1_BACKEND_HOST variable. +2. If you want to use varnish for different domains, you have to add new configuration section in your env file. + ``` + VARNISH_PROXY1_CACHE_SIZE=128m + VARNISH_PROXY1_BACKEND_HOST=replace_with_your_domain.name + VARNISH_PROXY1_SERVER=SERVER1 + ``` +3. Then you have to add new config section into docker-compose.yml with related variables: + ``` + custom_proxy_name: + container_name: custom_proxy_name + build: ./varnish + expose: + - ${VARNISH_PORT} + environment: + - VARNISH_CONFIG=${VARNISH_CONFIG} + - CACHE_SIZE=${VARNISH_PROXY2_CACHE_SIZE} + - VARNISHD_PARAMS=${VARNISHD_PARAMS} + - VARNISH_PORT=${VARNISH_PORT} + - BACKEND_HOST=${VARNISH_PROXY2_BACKEND_HOST} + - BACKEND_PORT=${VARNISH_BACKEND_PORT} + - VARNISH_SERVER=${VARNISH_PROXY2_SERVER} + ports: + - "${VARNISH_PORT}:${VARNISH_PORT}" + links: + - workspace + networks: + - frontend + ``` +4. change your varnish config and add nginx configuration. Example Nginx configuration is here: `nginx/sites/laravel_varnish.conf.example`. +5. `varnish/default.vcl` is old varnish configuration, which was used in the previous version. Use `default_wordpress.vcl` instead. + +#### How to run: +1. Rename `default_wordpress.vcl` to `default.vcl` +2. `docker-compose up -d nginx` +3. `docker-compose up -d proxy` + +Keep in mind that varnish server must be built after Nginx cause varnish checks domain affordability. + +#### FAQ: + +1. How to purge cache?
+run from any cli:
`curl -X PURGE https://yourwebsite.com/`. +2. How to reload varnish?
+`docker container exec proxy varnishreload` +3. Which varnish commands are allowed? + - varnishadm + - varnishd + - varnishhist + - varnishlog + - varnishncsa + - varnishreload + - varnishstat + - varnishtest + - varnishtop +4. How to reload Nginx?
+`docker exec Nginx nginx -t`
+`docker exec Nginx nginx -s reload`
+ ## Use Mongo 1 - First install `mongo` in the Workspace and the PHP-FPM Containers: diff --git a/docker-compose.yml b/docker-compose.yml index 896adb59..2ab5d442 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -291,6 +291,7 @@ services: ports: - "${NGINX_HOST_HTTP_PORT}:80" - "${NGINX_HOST_HTTPS_PORT}:443" + - "${VARNISH_BACKEND_PORT}:81" depends_on: - php-fpm networks: @@ -836,6 +837,7 @@ services: ### Varnish ########################################## proxy: + container_name: proxy build: ./varnish expose: - ${VARNISH_PORT} @@ -847,12 +849,15 @@ services: - BACKEND_HOST=${VARNISH_PROXY1_BACKEND_HOST} - BACKEND_PORT=${VARNISH_BACKEND_PORT} - VARNISH_SERVER=${VARNISH_PROXY1_SERVER} + ports: + - "${VARNISH_PORT}:${VARNISH_PORT}" links: - workspace networks: - frontend proxy2: + container_name: proxy2 build: ./varnish expose: - ${VARNISH_PORT} @@ -864,6 +869,8 @@ services: - BACKEND_HOST=${VARNISH_PROXY2_BACKEND_HOST} - BACKEND_PORT=${VARNISH_BACKEND_PORT} - VARNISH_SERVER=${VARNISH_PROXY2_SERVER} + ports: + - "${VARNISH_PORT}:${VARNISH_PORT}" links: - workspace networks: diff --git a/env-example b/env-example index 1b714796..b8a80d3b 100644 --- a/env-example +++ b/env-example @@ -364,8 +364,8 @@ MAILDEV_SMTP_PORT=25 ### VARNISH ############################################### VARNISH_CONFIG=/etc/varnish/default.vcl -VARNISH_PORT=8080 -VARNISH_BACKEND_PORT=8888 +VARNISH_PORT=6081 +VARNISH_BACKEND_PORT=81 VARNISHD_PARAMS=-p default_ttl=3600 -p default_grace=3600 ### Varnish ############################################### diff --git a/nginx/Dockerfile b/nginx/Dockerfile index eb1015bd..e51879c8 100644 --- a/nginx/Dockerfile +++ b/nginx/Dockerfile @@ -18,6 +18,8 @@ RUN apk update \ && apk add --no-cache openssl \ && apk add --no-cache bash +RUN apk add --no-cache curl + RUN set -x ; \ addgroup -g 82 -S www-data ; \ adduser -u 82 -D -S -G www-data www-data && exit 0 ; exit 1 @@ -39,4 +41,4 @@ ADD ./startup.sh /opt/startup.sh RUN sed -i 's/\r//g' /opt/startup.sh CMD ["/bin/bash", "/opt/startup.sh"] -EXPOSE 80 443 +EXPOSE 80 81 443 diff --git a/nginx/sites/laravel_varnish.conf.example b/nginx/sites/laravel_varnish.conf.example new file mode 100644 index 00000000..7d545872 --- /dev/null +++ b/nginx/sites/laravel_varnish.conf.example @@ -0,0 +1,110 @@ +server { + listen 80; + listen [::]:80; + server_name www.laravel.test; + rewrite ^(.*) https://laravel.test$1/ permanent; +} + +server { + listen 80; + listen [::]:80; + server_name laravel.test; + rewrite ^(.*) https://laravel.test$1/ permanent; +} + +server { + listen 443 ssl ; + listen [::]:443 ssl; + ssl_certificate /etc/nginx/ssl/laravel.test.crt; + ssl_certificate_key /etc/nginx/ssl/laravel.test.key; + server_name www.laravel.test; + rewrite ^(.*) https://laravel.test$1/ permanent; +} + +server { + server_name laravel.test; + + # For https + listen 443 ssl ; + listen [::]:443 ssl; + ssl_certificate /etc/nginx/ssl/laravel.test.crt; + ssl_certificate_key /etc/nginx/ssl/laravel.test.key; + + port_in_redirect off; + + add_header Strict-Transport-Security "max-age=31536000"; + add_header X-Content-Type-Options nosniff; + + location / { + proxy_pass http://proxy:6081; + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto https; + proxy_set_header HTTPS "on"; + proxy_redirect off; + } +} + +server { + server_name laravel.test; + + listen 81; + listen [::]:81; + + root /var/www/laravel.test/www; + + index index.php index.html index.htm; + + location / { + try_files $uri $uri/ /index.php$is_args$args; + } + + location ~ \.php$ { + fastcgi_max_temp_file_size 4m; + fastcgi_pass php-upstream; + + # Additional configs + fastcgi_pass_header Set-Cookie; + fastcgi_pass_header Cookie; + fastcgi_ignore_headers Cache-Control Expires Set-Cookie; + try_files $uri /index.php =404; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; + fastcgi_param HTTPS on; + + fastcgi_buffers 16 16k; + fastcgi_buffer_size 32k; + + fastcgi_intercept_errors on; + + #fixes timeouts + fastcgi_read_timeout 600; + include fastcgi_params; + } + + # Caching + location ~* \.(ico|jpg|webp|jpeg|gif|css|png|js|ico|bmp|zip|woff)$ { + access_log off; + log_not_found off; + add_header Pragma public; + add_header Cache-Control "public"; + expires 14d; + } + + location ~* \.(php|html)$ { + access_log on; + log_not_found on; + add_header Pragma public; + add_header Cache-Control "public"; + expires 14d; + } + + location ~ /\.ht { + deny all; + } +} diff --git a/varnish/Dockerfile b/varnish/Dockerfile index 8cc4fbfb..3139da78 100644 --- a/varnish/Dockerfile +++ b/varnish/Dockerfile @@ -1,16 +1,8 @@ -FROM debian:latest - -LABEL maintainer="ZeroC0D3 Team" +FROM varnish:6.3 # Set Environment Variables ENV DEBIAN_FRONTEND noninteractive -# Install Dependencies -RUN apt-get update && apt-get install -y apt-utils && apt-get upgrade -y -RUN mkdir /home/site && mkdir /home/site/cache -RUN apt-get install -y varnish -RUN rm -rf /var/lib/apt/lists/* - # Setting Configurations ENV VARNISH_CONFIG /etc/varnish/default.vcl ENV CACHE_SIZE 128m diff --git a/varnish/default.vcl b/varnish/default.vcl index 73099c39..9da3360c 100644 --- a/varnish/default.vcl +++ b/varnish/default.vcl @@ -52,6 +52,7 @@ sub vcl_init { # vdir.add_backend(servern); } +# This function is used when a request is send by a HTTP client (Browser) sub vcl_recv { # Called at the beginning of a request, after the complete request has been received and parsed. # Its purpose is to decide whether or not to serve the request, how to do it, and, if applicable, @@ -75,8 +76,12 @@ sub vcl_recv { # Not from an allowed IP? Then die with an error. return (synth(405, "This IP is not allowed to send PURGE requests.")); } - # If you got this stage (and didn't error out above), purge the cached result - return (purge); + + ban("req.http.host == " + req.http.host); + # Throw a synthetic page so the request won't go to the backend. + return(synth(200, "Ban added")); + # If allowed, do a cache_lookup -> vlc_hit() or vlc_miss() + #return (purge); } # Only deal with "normal" types diff --git a/varnish/default_wordpress.vcl b/varnish/default_wordpress.vcl new file mode 100644 index 00000000..a304f97d --- /dev/null +++ b/varnish/default_wordpress.vcl @@ -0,0 +1,243 @@ +vcl 4.1; +# Based on: https://github.com/mattiasgeniar/varnish-6.0-configuration-templates/blob/master/default.vcl + +import std; +import directors; + +backend everpracticalsolutionsServer { # Define one backend + .host = "${BACKEND_HOST}"; # IP or Hostname of backend + .port = "${BACKEND_PORT}"; # Port Apache or whatever is listening + .max_connections = 300; # That's it + + .probe = { + #.url = "/"; # short easy way (GET /) + # We prefer to only do a HEAD / + .request = + "HEAD /health_check.php HTTP/1.1" + "Host: ${BACKEND_HOST}" + "Connection: close" + "User-Agent: Varnish Health Probe"; + + .interval = 5s; # check the health of each backend every 5 seconds + .timeout = 1s; # timing out after 1 second. + .window = 5; # If 3 out of the last 5 polls succeeded the backend is considered healthy, otherwise it will be marked as sick + .threshold = 3; + } + + .first_byte_timeout = 300s; # How long to wait before we receive a first byte from our backend? + .connect_timeout = 5s; # How long to wait for a backend connection? + .between_bytes_timeout = 2s; # How long to wait between bytes received from our backend? +} + +# Only allow purging from specific IPs +acl purge { + "localhost"; + "127.0.0.1"; + "192.168.16.5"; + "192.168.16.6"; + "185.228.234.203"; +} + +# This function is used when a request is send by a HTTP client (Browser) +sub vcl_recv { + # Normalize the header, remove the port (in case you're testing this on various TCP ports) + set req.http.Host = regsub(req.http.Host, ":[0-9]+", ""); + + # Allow purging from ACL + if (req.method == "PURGE") { + # If not allowed then a error 405 is returned + if (!client.ip ~ purge) { + return(synth(405, "This IP is not allowed to send PURGE requests.")); + } + + ban("req.http.host == " + req.http.host); + # Throw a synthetic page so the request won't go to the backend. + return(synth(200, "Ban added")); + # If allowed, do a cache_lookup -> vlc_hit() or vlc_miss() + #return (purge); + } + + # Post requests will not be cached + if (req.http.Authorization || req.method == "POST") { + return (pass); + } + + # --- WordPress specific configuration + + # Did not cache the RSS feed + if (req.url ~ "/feed") { + return (pass); + } + + # Blitz hack + if (req.url ~ "/mu-.*") { + return (pass); + } + + # Did not cache the admin and login pages + if (req.url ~ "/wp-(login|admin)") { + return (pass); + } + + # Remove the "has_js" cookie + set req.http.Cookie = regsuball(req.http.Cookie, "has_js=[^;]+(; )?", ""); + + # Remove any Google Analytics based cookies + set req.http.Cookie = regsuball(req.http.Cookie, "__utm.=[^;]+(; )?", ""); + + # Remove the Quant Capital cookies (added by some plugin, all __qca) + set req.http.Cookie = regsuball(req.http.Cookie, "__qc.=[^;]+(; )?", ""); + + # Remove the wp-settings-1 cookie + set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-1=[^;]+(; )?", ""); + + # Remove the wp-settings-time-1 cookie + set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-time-1=[^;]+(; )?", ""); + + # Remove the wp test cookie + set req.http.Cookie = regsuball(req.http.Cookie, "wordpress_test_cookie=[^;]+(; )?", ""); + + # Are there cookies left with only spaces or that are empty? + if (req.http.cookie ~ "^ *$") { + unset req.http.cookie; + } + + # Cache the following files extensions + if (req.url ~ "\.(css|js|png|gif|jp(e)?g|swf|ico)") { + unset req.http.cookie; + } + + # Normalize Accept-Encoding header and compression + # https://www.varnish-cache.org/docs/3.0/tutorial/vary.html + if (req.http.Accept-Encoding) { + # Do no compress compressed files... + if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg)$") { + unset req.http.Accept-Encoding; + } elsif (req.http.Accept-Encoding ~ "gzip") { + set req.http.Accept-Encoding = "gzip"; + } elsif (req.http.Accept-Encoding ~ "deflate") { + set req.http.Accept-Encoding = "deflate"; + } else { + unset req.http.Accept-Encoding; + } + } + + # Check the cookies for wordpress-specific items + if (req.http.Cookie ~ "wordpress_" || req.http.Cookie ~ "comment_") { + return (pass); + } + if (!req.http.cookie) { + unset req.http.cookie; + } + + # --- End of WordPress specific configuration + + # Do not cache HTTP authentication and HTTP Cookie + if (req.http.Authorization || req.http.Cookie) { + # Not cacheable by default + return (pass); + } + + # Cache all others requests + return (hash); +} + +sub vcl_pipe { + return (pipe); +} + +sub vcl_pass { + return (fetch); +} + +# The data on which the hashing will take place +sub vcl_hash { + hash_data(req.url); + if (req.http.host) { + hash_data(req.http.host); + } else { + hash_data(server.ip); + } + + # If the client supports compression, keep that in a different cache + if (req.http.Accept-Encoding) { + hash_data(req.http.Accept-Encoding); + } + + return (lookup); +} + +# This function is used when a request is sent by our backend (Nginx server) +sub vcl_backend_response { + # Remove some headers we never want to see + unset beresp.http.Server; + unset beresp.http.X-Powered-By; + + # For static content strip all backend cookies + if (bereq.url ~ "\.(css|js|png|gif|jp(e?)g)|swf|ico") { + unset beresp.http.cookie; + } + + # Only allow cookies to be set if we're in admin area + if (beresp.http.Set-Cookie && bereq.url !~ "^/wp-(login|admin)") { + unset beresp.http.Set-Cookie; + } + + # don't cache response to posted requests or those with basic auth + if ( bereq.method == "POST" || bereq.http.Authorization ) { + set beresp.uncacheable = true; + set beresp.ttl = 120s; + return (deliver); + } + + # don't cache search results + if ( bereq.url ~ "\?s=" ){ + set beresp.uncacheable = true; + set beresp.ttl = 120s; + return (deliver); + } + + # only cache status ok + if ( beresp.status != 200 ) { + set beresp.uncacheable = true; + set beresp.ttl = 120s; + return (deliver); + } + + # A TTL of 24h + set beresp.ttl = 24h; + # Define the default grace period to serve cached content + set beresp.grace = 30s; + + return (deliver); +} + +# The routine when we deliver the HTTP request to the user +# Last chance to modify headers that are sent to the client +sub vcl_deliver { + if (obj.hits > 0) { + set resp.http.X-Cache = "cached"; + } else { + set resp.http.x-Cache = "uncached"; + } + + # Remove some headers: PHP version + unset resp.http.X-Powered-By; + + # Remove some headers: Apache version & OS + unset resp.http.Server; + + # Remove some heanders: Varnish + unset resp.http.Via; + unset resp.http.X-Varnish; + + return (deliver); +} + +sub vcl_init { + return (ok); +} + +sub vcl_fini { + return (ok); +} \ No newline at end of file diff --git a/varnish/start.sh b/varnish/start.sh index 7e7c28a5..8bdad94a 100644 --- a/varnish/start.sh +++ b/varnish/start.sh @@ -7,6 +7,14 @@ do sed -i "s|\${${name}}|${value}|g" /etc/varnish/default.vcl done +echo "exec varnishd \ + -a :$VARNISH_PORT \ + -T localhost:6082 \ + -F \ + -f $VARNISH_CONFIG \ + -s malloc,$CACHE_SIZE \ + $VARNISHD_PARAMS" + exec bash -c \ "exec varnishd \ -a :$VARNISH_PORT \ From a760da348804a675af657b876599331828d483c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=85=8B?= Date: Sat, 2 Nov 2019 20:42:33 +0800 Subject: [PATCH 009/295] Update index.md --- DOCUMENTATION/content/getting-started/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCUMENTATION/content/getting-started/index.md b/DOCUMENTATION/content/getting-started/index.md index 9e756951..df193542 100644 --- a/DOCUMENTATION/content/getting-started/index.md +++ b/DOCUMENTATION/content/getting-started/index.md @@ -223,7 +223,7 @@ Or you can change them and rebuild the container. Make sure you add use the right port number as provided by your running server. -[http://localhost:80](http://localhost:80) +[http://localhost](http://localhost) If you followed the multiple projects setup, you can visit `http://project-1.test/` and `http://project-2.test/`. From 754e61d15f196ef7e016f3801d44b71686531ee2 Mon Sep 17 00:00:00 2001 From: Claudio Ludovico <921500+ludo237@users.noreply.github.com> Date: Wed, 4 Dec 2019 11:36:47 +0000 Subject: [PATCH 010/295] Add key to install ffmpeg in horizon --- env-example | 1 + 1 file changed, 1 insertion(+) diff --git a/env-example b/env-example index a52f36ef..120c36eb 100644 --- a/env-example +++ b/env-example @@ -237,6 +237,7 @@ NGINX_SSL_PATH=./nginx/ssl/ LARAVEL_HORIZON_INSTALL_SOCKETS=false LARAVEL_HORIZON_INSTALL_PHPREDIS=true +LARAVEL_HORIZON_INSTALL_FFMPEG=false ### APACHE ################################################ From c11c1fd69d902553d0360504798e87a92b065e28 Mon Sep 17 00:00:00 2001 From: Claudio Ludovico <921500+ludo237@users.noreply.github.com> Date: Wed, 4 Dec 2019 11:38:36 +0000 Subject: [PATCH 011/295] Add ffmpeg directive to Dockerfile --- laravel-horizon/Dockerfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 5ce1d8ef..3c0509e7 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -60,6 +60,12 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ && docker-php-ext-enable redis \ ;fi +ARG INSTALL_FFMPEG=false +RUN if [ ${INSTALL_FFMPEG} = true ]; then \ + # Add ffmpeg to horizon + apk add ffmpeg \ +;fi + WORKDIR /usr/src RUN if [ ${INSTALL_CASSANDRA} = true ]; then \ git clone https://github.com/datastax/php-driver.git \ From d40abcb939a0f35161911dedb1e2d6e4880d8e93 Mon Sep 17 00:00:00 2001 From: Claudio Ludovico <921500+ludo237@users.noreply.github.com> Date: Wed, 4 Dec 2019 11:40:04 +0000 Subject: [PATCH 012/295] Add arg to laravel-horizon service --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 4f32e05b..d3aca5a9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -271,6 +271,7 @@ services: - INSTALL_SOCKETS=${LARAVEL_HORIZON_INSTALL_SOCKETS} - INSTALL_CASSANDRA=${PHP_FPM_INSTALL_CASSANDRA} - INSTALL_PHPREDIS=${LARAVEL_HORIZON_INSTALL_PHPREDIS} + - INSTALL_FFMPEG=${LARAVEL_HORIZON_INSTALL_FFMPEG} volumes: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} - ./laravel-horizon/supervisord.d:/etc/supervisord.d From 9aecc53dba723c7a9f110ee245218e2b673c8b3f Mon Sep 17 00:00:00 2001 From: Justin Seliga Date: Fri, 27 Dec 2019 19:34:56 -0500 Subject: [PATCH 013/295] provide smbclient and php-smbclient to php-fpm and workspace containers --- docker-compose.yml | 2 ++ env-example | 2 ++ php-fpm/Dockerfile | 10 ++++++++++ workspace/Dockerfile | 10 ++++++++++ 4 files changed, 24 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 76dacec5..fdab1416 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -73,6 +73,7 @@ services: - INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP} - INSTALL_XSL=${WORKSPACE_INSTALL_XSL} - INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP} + - INSTALL_SMB=${WORKSPACE_INSTALL_SMB} - INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP} - INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO} - INSTALL_AMQP=${WORKSPACE_INSTALL_AMQP} @@ -173,6 +174,7 @@ services: - INSTALL_SSH2=${PHP_FPM_INSTALL_SSH2} - INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP} - INSTALL_XSL=${PHP_FPM_INSTALL_XSL} + - INSTALL_SMB=${PHP_FPM_INSTALL_SMB} - INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP} - INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO} - INSTALL_AMQP=${PHP_FPM_INSTALL_AMQP} diff --git a/env-example b/env-example index aa5f25e0..c521fd04 100644 --- a/env-example +++ b/env-example @@ -108,6 +108,7 @@ WORKSPACE_INSTALL_LDAP=false WORKSPACE_INSTALL_GMP=false WORKSPACE_INSTALL_SOAP=false WORKSPACE_INSTALL_XSL=false +WORKSPACE_INSTALL_SMB=false WORKSPACE_INSTALL_IMAP=false WORKSPACE_INSTALL_MONGO=false WORKSPACE_INSTALL_AMQP=false @@ -172,6 +173,7 @@ PHP_FPM_INSTALL_XDEBUG=false PHP_FPM_INSTALL_PCOV=false PHP_FPM_INSTALL_XHPROF=false PHP_FPM_INSTALL_PHPDBG=false +PHP_FPM_INSTALL_SMB=false PHP_FPM_INSTALL_IMAP=false PHP_FPM_INSTALL_MONGO=false PHP_FPM_INSTALL_AMQP=false diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 559351d9..a0af2228 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -658,6 +658,16 @@ RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ docker-php-ext-enable imagick \ ;fi +########################################################################### +# SMB: +########################################################################### + +ARG INSTALL_SMB=false + +RUN if [ ${INSTALL_SMB} = true ]; then \ + apt-get install -y smbclient php-smbclient coreutils \ +;fi + ########################################################################### # IMAP: ########################################################################### diff --git a/workspace/Dockerfile b/workspace/Dockerfile index a0619410..6223e0a2 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -298,6 +298,16 @@ RUN if [ ${INSTALL_LDAP} = true ]; then \ apt-get install -y php${LARADOCK_PHP_VERSION}-ldap \ ;fi +########################################################################### +# SMB: +########################################################################### + +ARG INSTALL_SMB=false + +RUN if [ ${INSTALL_SMB} = true ]; then \ + apt-get install -y smbclient php-smbclient coreutils \ +;fi + ########################################################################### # IMAP: ########################################################################### From de57f728cc757317c0a68872778114ebdc04d38f Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 31 Dec 2019 19:12:37 +0800 Subject: [PATCH 014/295] fix build-args INSTALL_GHOSTSCRIPT were not consumed (#2452) --- php-worker/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index e72f51a8..df78ab42 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -142,6 +142,7 @@ RUN if [ $INSTALL_PHALCON = true ]; then \ && rm -rf /tmp/cphalcon* \ ;fi +ARG INSTALL_GHOSTSCRIPT=false RUN if [ $INSTALL_GHOSTSCRIPT = true ]; then \ apk --update add ghostscript \ ;fi From 92e7a8559d6ccba2f79bd3cc34aa21d0ec0c2f8b Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Fri, 3 Jan 2020 20:07:42 +0800 Subject: [PATCH 015/295] upgrade apache2 --- apache2/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apache2/Dockerfile b/apache2/Dockerfile index 71cad501..7f0e6571 100644 --- a/apache2/Dockerfile +++ b/apache2/Dockerfile @@ -1,4 +1,4 @@ -FROM webdevops/apache:ubuntu-16.04 +FROM webdevops/apache:ubuntu-18.04 LABEL maintainer="Eric Pfeiffer " From ef267a64e6b9b802c39e310d404e1439cb270ada Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Mon, 6 Jan 2020 23:39:23 +0800 Subject: [PATCH 016/295] PHP 7.4 zip option removed --- php-fpm/Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index a0af2228..74b072ee 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -51,7 +51,11 @@ RUN set -xe; \ # # next lines are here becase there is no auto build on dockerhub see https://github.com/laradock/laradock/pull/1903#issuecomment-463142846 libzip-dev zip unzip && \ - docker-php-ext-configure zip --with-libzip && \ + if [ ${LARADOCK_PHP_VERSION} = "7.3" ] || [ ${LARADOCK_PHP_VERSION} = "7.4" ]; then \ + docker-php-ext-configure zip; \ + else \ + docker-php-ext-configure zip --with-libzip; \ + fi && \ # Install the zip extension docker-php-ext-install zip && \ php -m | grep -q 'zip' From 5c10a024f1d61c99c42d5cb53694f760f00d051e Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Sun, 12 Jan 2020 15:38:58 +0100 Subject: [PATCH 017/295] Make small documentation updates - remove guides section - re-order some content - fix some links - remove duplicated ads --- DOCUMENTATION/config.toml | 25 +- DOCUMENTATION/content/contributing/index.md | 2 +- DOCUMENTATION/content/documentation/index.md | 17 +- .../content/getting-started/index.md | 12 - DOCUMENTATION/content/guides/index.md | 878 ------------------ DOCUMENTATION/content/help/index.md | 8 +- DOCUMENTATION/content/introduction/index.md | 154 +-- .../layouts/_default/single.html | 14 - .../hugo-material-docs/layouts/index.html | 2 +- 9 files changed, 108 insertions(+), 1004 deletions(-) delete mode 100644 DOCUMENTATION/content/guides/index.md diff --git a/DOCUMENTATION/config.toml b/DOCUMENTATION/config.toml index 1d11afbd..56e4fe03 100644 --- a/DOCUMENTATION/config.toml +++ b/DOCUMENTATION/config.toml @@ -17,7 +17,7 @@ googleAnalytics = "UA-37514928-9" # Repository provider = "" - repo_url = "" + repo_url = "https://github.com/laradock/laradock" version = "" logo = "images/logo.png" @@ -43,7 +43,7 @@ googleAnalytics = "UA-37514928-9" [social] twitter = "" github = "laradock/laradock" - email = "" + email = "support@laradock.io" # ------- MENU START ----------------------------------------- @@ -63,29 +63,24 @@ googleAnalytics = "UA-37514928-9" weight = 3 [[menu.main]] - name = "4. Guides" - url = "guides/" + name = "4. Help & Questions" + url = "help/" weight = 4 [[menu.main]] - name = "5. Help & Questions" - url = "help/" + name = "5. Related Projects" + url = "related-projects/" weight = 5 [[menu.main]] - name = "6. Related Projects" - url = "related-projects/" + name = "6. Contributing" + url = "contributing/" weight = 6 [[menu.main]] - name = "7. Contributing" - url = "contributing/" - weight = 7 - -[[menu.main]] - name = "8. License" + name = "7. License" url = "license/" - weight = 8 + weight = 7 # ------- MENU END ----------------------------------------- diff --git a/DOCUMENTATION/content/contributing/index.md b/DOCUMENTATION/content/contributing/index.md index 1d58dcfc..dbe3efb8 100644 --- a/DOCUMENTATION/content/contributing/index.md +++ b/DOCUMENTATION/content/contributing/index.md @@ -204,4 +204,4 @@ After your pull request is merged, you can safely delete your branch and pull th
-#### Happy Coding :) +## Happy Coding :) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index 30afd7b8..14d5be03 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -272,10 +272,6 @@ docker-compose build workspace ``` - - - -
## Install xDebug @@ -2065,6 +2061,19 @@ Remote debug Laravel web and phpunit tests. +
+ +## Setup Google Cloud for docker registry + +``` +gcloud auth configure-docker +``` + +Login to gcloud for use the registry and auth the permission. + +``` +gcloud auth login +``` diff --git a/DOCUMENTATION/content/getting-started/index.md b/DOCUMENTATION/content/getting-started/index.md index aa18b22d..f71661da 100644 --- a/DOCUMENTATION/content/getting-started/index.md +++ b/DOCUMENTATION/content/getting-started/index.md @@ -8,7 +8,6 @@ weight: 2 - [Git](https://git-scm.com/downloads) - [Docker](https://www.docker.com/products/docker/) `>= 17.12` -- [gcloud](https://cloud.google.com/sdk/install) @@ -22,17 +21,6 @@ Choose the setup the best suits your needs. - [A.2) Don't have a PHP project yet](#A2) - [B) Setup for Multiple Projects](#B) -### Setup gcloud for docker registry - -``` -gcloud auth configure-docker -``` - -and login to gcloud for use the registry and auth the permission. - -``` -gcloud auth login -``` ### A) Setup for Single Project diff --git a/DOCUMENTATION/content/guides/index.md b/DOCUMENTATION/content/guides/index.md deleted file mode 100644 index ab8c9c7e..00000000 --- a/DOCUMENTATION/content/guides/index.md +++ /dev/null @@ -1,878 +0,0 @@ ---- -title: 4. Guides -type: index -weight: 4 ---- - - - -## Production Setup on Digital Ocean - -### Install Docker - -- Visit [DigitalOcean](https://cloud.digitalocean.com/login) and login. -- Click the `Create Droplet` button. -- Open the `One-click apps` tab. -- Select Docker with your preferred version. -- Continue creating the droplet as you normally would. -- If needed, check your e-mail for the droplet root password. - -### SSH to your Server - -Find the IP address of the droplet in the DigitalOcean interface. Use it to connect to the server. - -``` -ssh root@ipaddress -``` - -You may be prompted for a password. Type the one you found within your e-mailbox. It'll then ask you to change the password. - -You can now check if Docker is available: - -``` -$root@server:~# docker -``` - -### Set Up Your Laravel Project - -``` -$root@server:~# apt-get install git -$root@server:~# git clone https://github.com/laravel/laravel -$root@server:~# cd laravel -$root@server:~/laravel/ git submodule add https://github.com/Laradock/laradock.git -$root@server:~/laravel/ cd laradock -``` - -### Enter the laradock folder and rename env-example to .env. -``` -$root@server:~/laravel/laradock# cp env-example .env -``` - -### Create Your Laradock Containers - -``` -$root@server:~/laravel/laradock# docker-compose up -d nginx mysql -``` - -Note that more containers are available, find them in the [docs](http://laradock.io/introduction/#supported-software-containers) or the `docker-compose.yml` file. - -### Go to Your Workspace - -``` -docker-compose exec workspace bash -``` - -### Execute commands - -If you want to only execute some command and don't want to enter bash, you can execute `docker-compose run workspace `. - -``` -docker-compose run workspace php artisan migrate -``` - -### Prepare for Visual Studio Code remote development - -If you want to use Visual Studio Code for [remote development](https://code.visualstudio.com/docs/remote/containers) directly on your `workspace` container, copy file `devcontainer.example.json` to `devcontainer.json` and customize it (see [devcontainer.json reference](https://code.visualstudio.com/docs/remote/containers#_devcontainerjson-reference) for more options): -``` -cd .devcontainer -cp devcontainer.example.json devcontainer.json -``` - -Then open your `laradock` folder in Visual Studio Code and click on popup button **Reopen in Container**. - -### Install and configure Laravel - -Let's install Laravel's dependencies, add the `.env` file, generate the key and give proper permissions to the cache folder. - -``` -$ root@workspace:/var/www# composer install -$ root@workspace:/var/www# cp .env.example .env -$ root@workspace:/var/www# php artisan key:generate -$ root@workspace:/var/www# exit -$root@server:~/laravel/laradock# cd .. -$root@server:~/laravel# sudo chmod -R 777 storage bootstrap/cache -``` - -You can then view your Laravel site by visiting the IP address of your server in your browser. For example: - -``` -http://192.168.1.1 -``` - -It should show you the Laravel default welcome page. - -However, we want it to show up using your custom domain name, as well. - -### Using Your Own Domain Name - -Login to your DNS provider, such as Godaddy, Namecheap. - -Point the Custom Domain Name Server to: - -``` -ns1.digitalocean.com -ns2.digitalocean.com -ns3.digitalocean.com -``` - -Within DigitalOcean, you'll need to change some settings, too. - -Visit: https://cloud.digitalocean.com/networking/domains - -Add your domain name and choose the server IP you'd provision earlier. - -### Serving Site With NGINX (HTTP ONLY) - -Go back to command line. - -``` -$root@server:~/laravel/laradock# cd nginx -$root@server:~/laravel/laradock/nginx# vim laravel.conf -``` - -Remove `default_server` - -``` - listen 80 default_server; - listen [::]:80 default_server ipv6only=on; -``` - -And add `server_name` (your custom domain) - -``` - listen 80; - listen [::]:80 ipv6only=on; - server_name yourdomain.com; -``` - -### Rebuild Your Nginx - -``` -$root@server:~/laravel/laradock# docker-compose down -$root@server:~/laravel/laradock# docker-compose build nginx -``` - -### Re Run Your Containers MYSQL and NGINX - -``` -$root@server:~/laravel/laradock/nginx# docker-compose up -d nginx mysql -``` - -**View Your Site with HTTP ONLY (http://yourdomain.com)** - -### Run Site on SSL with Let's Encrypt Certificate - -**Note: You need to Use Caddy here Instead of Nginx** - -To go Caddy Folders and Edit CaddyFile - -``` -$root@server:~/laravel/laradock# cd caddy -$root@server:~/laravel/laradock/caddy# vim Caddyfile -``` - -Remove 0.0.0.0:80 - -``` -0.0.0.0:80 -root /var/www/public -``` - -and replace with your https://yourdomain.com - -``` -https://yourdomain.com -root /var/www/public -``` - -uncomment tls - -``` -#tls self-signed -``` - -and replace self-signed with your email address - -``` -tls serverbreaker@gmai.com -``` - -This is needed Prior to Creating Let's Encypt - -### Run Your Caddy Container without the -d flag and Generate SSL with Let's Encrypt - -``` -$root@server:~/laravel/laradock# docker-compose up caddy -``` - -You'll be prompt here to enter your email... you may enter it or not - -``` -Attaching to laradock_mysql_1, laradock_caddy_1 -caddy_1 | Activating privacy features... -caddy_1 | Your sites will be served over HTTPS automatically using Let's Encrypt. -caddy_1 | By continuing, you agree to the Let's Encrypt Subscriber Agreement at: -caddy_1 | https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf -caddy_1 | Activating privacy features... done. -caddy_1 | https://yourdomain.com -caddy_1 | http://yourdomain.com -``` - -After it finishes, press `Ctrl` + `C` to exit. - -### Stop All Containers and ReRun Caddy and Other Containers on Background - -``` -$root@server:~/laravel/laradock# docker-compose down -$root@server:~/laravel/laradock# docker-compose up -d mysql caddy -``` - -View your Site in the Browser Securely Using HTTPS (https://yourdomain.com) - -**Note that Certificate will be Automatically Renew By Caddy** - ->References: -> -- [https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04) -- [https://www.digitalocean.com/products/one-click-apps/docker/](https://www.digitalocean.com/products/one-click-apps/docker/) -- [https://docs.docker.com/engine/installation/linux/ubuntulinux/](https://docs.docker.com/engine/installation/linux/ubuntulinux/) -- [https://docs.docker.com/compose/install/](https://docs.docker.com/compose/install/) -- [https://caddyserver.com/docs/automatic-https](https://caddyserver.com/docs/automatic-https) -- [https://caddyserver.com/docs/tls](https://caddyserver.com/docs/tls) -- [https://caddyserver.com/docs/caddyfile](https://caddyserver.com/docs/caddyfile) - -
-
-
-
-
- - -## Running Laravel Dusk Tests - -### Option 1: Without Selenium - -- [Intro](#option1-dusk-intro) -- [Workspace Setup](#option1-workspace-setup) -- [Application Setup](#option1-application-setup) -- [Choose Chrome Driver Version (Optional)](#option1-choose-chrome-driver-version) -- [Run Dusk Tests](#option1-run-dusk-tests) - -#### Intro - -This is a guide to run Dusk tests in your `workspace` container with headless -google-chrome and chromedriver. It has been tested with Laravel 5.4 and 5.5. - -#### Workspace Setup - -Update your .env with following entries: - -``` -... -# Install Laravel installer bin to setup demo app -WORKSPACE_INSTALL_LARAVEL_INSTALLER=true -... -# Install all the necessary dependencies for running Dusk tests -WORKSPACE_INSTALL_DUSK_DEPS=true -... -``` - -Then run below to build your workspace. - -``` -docker-compose build workspace -``` - -#### Application Setup - -Run a `workspace` container and you will be inside the container at `/var/www` directory. - -``` -docker-compose run workspace bash - -/var/www#> _ -``` - -Create new Laravel application named `dusk-test` and install Laravel Dusk package. - -``` -/var/www> laravel new dusk-test -/var/www> cd dusk-test -/var/www/dusk-test> composer require --dev laravel/dusk -/var/www/dusk-test> php artisan dusk:install -``` - -Create `.env.dusk.local` by copying from `.env` file. - -``` -/var/www/dusk-test> cp .env .env.dusk.local -``` - -Update the `APP_URL` entry in `.env.dusk.local` to local Laravel server. - -``` -APP_URL=http://localhost:8000 -``` - -You will need to run chromedriver with `headless` and `no-sandbox` flag. In Laravel Dusk 2.x it is -already set `headless` so you just need to add `no-sandbox` flag. If you on previous version 1.x, -you will need to update your `DustTestCase#driver` as shown below. - - -``` -addArguments([ - '--disable-gpu', - '--headless', - '--no-sandbox' - ]); - - return RemoteWebDriver::create( - 'http://localhost:9515', DesiredCapabilities::chrome()->setCapability( - ChromeOptions::CAPABILITY, $options - ) - ); - } -} -``` - -#### Choose Chrome Driver Version (Optional) - -You could choose to use either: - -1. Chrome Driver shipped with Laravel Dusk. (Default) -2. Chrome Driver installed in `workspace` container. (Required tweak on DuskTestCase class) - -For Laravel Dusk 2.x, you need to update `DuskTestCase#prepare` method if you wish to go with option #2. - -``` - -setPrefix('chromedriver') - ->getProcess() - ->setEnv(static::chromeEnvironment()); - } - - ... -} -``` - -#### Run Dusk Tests - -Run local server in `workspace` container and run Dusk tests. - -``` -# alias to run Laravel server in the background (php artisan serve --quiet &) -/var/www/dusk-test> serve -# alias to run Dusk tests (php artisan dusk) -/var/www/dusk-test> dusk - -PHPUnit 6.4.0 by Sebastian Bergmann and contributors. - -. 1 / 1 (100%) - -Time: 837 ms, Memory: 6.00MB -``` - -### Option 2: With Selenium - -- [Intro](#dusk-intro) -- [DNS Setup](#dns-setup) -- [Docker Compose Setup](#docker-compose) -- [Laravel Dusk Setup](#laravel-dusk-setup) -- [Running Laravel Dusk Tests](#running-tests) - -#### Intro -Setting up Laravel Dusk tests to run with Laradock appears be something that -eludes most Laradock users. This guide is designed to show you how to wire them -up to work together. This guide is written with macOS and Linux in mind. As such, -it's only been tested on macOS. Feel free to create pull requests to update the guide -for Windows-specific instructions. - -This guide assumes you know how to use a DNS forwarder such as `dnsmasq` or are comfortable -with editing the `/etc/hosts` file for one-off DNS changes. - -#### DNS Setup -According to RFC-2606, only four TLDs are reserved for local testing[^1]: - -- `.test` -- `.example` -- `.invalid` -- `.localhost` - -A common TLD used for local development is `.dev`, but newer versions of Google -Chrome (such as the one bundled with the Selenium Docker image), will fail to -resolve that DNS as there will appear to be a name collision. - -The recommended extension is `.test` for your Laravel web apps because you're -running tests. Using a DNS forwarder such as `dnsmasq` or by editing the `/etc/hosts` -file, configure the host to point to `localhost`. - -For example, in your `/etc/hosts` file: -``` -## -# Host Database -# -# localhost is used to configure the loopback interface -# when the system is booting. Do not change this entry. -## -127.0.0.1 localhost -255.255.255.255 broadcasthost -::1 localhost -127.0.0.1 myapp.test -``` - -This will ensure that when navigating to `myapp.test`, it will route the -request to `127.0.0.1` which will be handled by Nginx in Laradock. - -#### Docker Compose setup -In order to make the Selenium container talk to the Nginx container appropriately, -the `docker-compose.yml` needs to be edited to accommodate this. Make the following -changes: - -```yaml -... -selenium: - ... - depends_on: - - nginx - links: - - nginx: -``` - -This allows network communication between the Nginx and Selenium containers -and it also ensures that when starting the Selenium container, the Nginx -container starts up first unless it's already running. This allows -the Selenium container to make requests to the Nginx container, which is -necessary for running Dusk tests. These changes also link the `nginx` environment -variable to the domain you wired up in your hosts file. - -#### Laravel Dusk Setup - -In order to make Laravel Dusk make the proper request to the Selenium container, -you have to edit the `DuskTestCase.php` file that's provided on the initial -installation of Laravel Dusk. The change you have to make deals with the URL the -Remote Web Driver attempts to use to set up the Selenium session. - -One recommendation for this is to add a separate config option in your `.env.dusk.local` -so it's still possible to run your Dusk tests locally should you want to. - -##### .env.dusk.local -``` -... -USE_SELENIUM=true -``` - -##### DuskTestCase.php -```php -abstract class DuskTestCase extends BaseTestCase -{ -... - protected function driver() - { - if (env('USE_SELENIUM', 'false') == 'true') { - return RemoteWebDriver::create( - 'http://selenium:4444/wd/hub', DesiredCapabilities::chrome() - ); - } else { - return RemoteWebDriver::create( - 'http://localhost:9515', DesiredCapabilities::chrome() - ); - } - } -} -``` - -#### Running Laravel Dusk Tests - -Now that you have everything set up, to run your Dusk tests, you have to SSH -into the workspace container as you normally would: -```docker-compose exec --user=laradock workspace bash``` - -Once inside, you can change directory to your application and run: - -```php artisan dusk``` - -One way to make this easier from your project is to create a helper script. Here's one such example: -```bash -#!/usr/bin/env sh - -LARADOCK_HOME="path/to/laradock" - -pushd ${LARADOCK_HOME} - -docker-compose exec --user=laradock workspace bash -c "cd my-project && php artisan dusk && exit" -``` - -This invokes the Dusk command from inside the workspace container but when the script completes -execution, it returns your session to your project directory. - -[^1]: [Don't Use .dev for Development](https://iyware.com/dont-use-dev-for-development/) - - -
-
-
-
-
- - -## PHPStorm XDebug Setup - -- [Intro](#Intro) -- [Installation](#Installation) - - [Customize laradock/docker-compose.yml](#CustomizeDockerCompose) - - [Clean House](#InstallCleanHouse) - - [Laradock Dial Tone](#InstallLaradockDialTone) - - [hosts](#AddToHosts) - - [Firewall](#FireWall) - - [Enable xDebug on php-fpm](#enablePhpXdebug) - - [PHPStorm Settings](#InstallPHPStorm) - - [Configs](#InstallPHPStormConfigs) -- [Usage](#Usage) - - [Laravel](#UsageLaravel) - - [Run ExampleTest](#UsagePHPStormRunExampleTest) - - [Debug ExampleTest](#UsagePHPStormDebugExampleTest) - - [Debug Web Site](#UsagePHPStormDebugSite) -- [SSH into workspace](#SSHintoWorkspace) - - [KiTTY](#InstallKiTTY) - -### Intro - -Wiring up [Laravel](https://laravel.com/), [Laradock](https://github.com/Laradock/laradock) [Laravel+Docker] and [PHPStorm](https://www.jetbrains.com/phpstorm/) to play nice together complete with remote xdebug'ing as icing on top! Although this guide is based on `PHPStorm Windows`, -you should be able to adjust accordingly. This guide was written based on Docker for Windows Native. - -### Installation - -- This guide assumes the following: - - you have already installed and are familiar with Laravel, Laradock and PHPStorm. - - you have installed Laravel as a parent of `laradock`. This guide assumes `/c/_dk/laravel`. - -### hosts -- Add `laravel` to your hosts file located on Windows 10 at `C:\Windows\System32\drivers\etc\hosts`. It should be set to the IP of your running container. Mine is: `10.0.75.2` -On Windows you can find it by opening Windows `Hyper-V Manager`. - - ![Windows Hyper-V Manager](images/photos/PHPStorm/Settings/WindowsHyperVManager.png) - -- [Hosts File Editor](https://github.com/scottlerch/HostsFileEditor) makes it easy to change your hosts file. - - Set `laravel` to your docker host IP. See [Example](images/photos/SimpleHostsEditor/AddHost_laravel.png). - - -### Firewall -Your PHPStorm will need to be able to receive a connection from PHP xdebug either your running workspace or php-fpm containers on port 9000. This means that your Windows Firewall should either enable connections from the Application PHPStorm OR the port. - -- It is important to note that if the Application PHPStorm is NOT enabled in the firewall, you will not be able to recreate a rule to override that. -- Also be aware that if you are installing/upgrade different versions of PHPStorm, you MAY have orphaned references to PHPStorm in your Firewall! You may decide to remove orphaned references however in either case, make sure that they are set to receive public TCP traffic. - -#### Edit laradock/docker-compose.yml -Set the following variables: -``` -### Workspace Utilities Container ############### - - workspace: - build: - context: ./workspace - args: - - INSTALL_XDEBUG=true - - INSTALL_WORKSPACE_SSH=true - ... - - -### PHP-FPM Container ##################### - - php-fpm: - build: - context: ./php-fpm - args: - - INSTALL_XDEBUG=true - ... - -``` - -#### Edit xdebug.ini files -- `laradock/workspace/xdebug.ini` -- `laradock/php-fpm/xdebug.ini` - -Set the following variables: - -``` -xdebug.remote_autostart=1 -xdebug.remote_enable=1 -xdebug.remote_connect_back=1 -xdebug.cli_color=1 -``` - - -#### Need to clean house first? - -Make sure you are starting with a clean state. For example, do you have other Laradock containers and images? -Here are a few things I use to clean things up. - -- Delete all containers using `grep laradock_` on the names, see: [Remove all containers based on docker image name](https://linuxconfig.org/remove-all-containners-based-on-docker-image-name). - -`docker ps -a | awk '{ print $1,$2 }' | grep laradock_ | awk '{print $1}' | xargs -I {} docker rm {}` - -- Delete all images containing `laradock`. - -`docker images | awk '{print $1,$2,$3}' | grep laradock_ | awk '{print $3}' | xargs -I {} docker rmi {}` -**Note:** This will only delete images that were built with `Laradock`, **NOT** `laradock/*` which are pulled down by `Laradock` such as `laradock/workspace`, etc. -**Note:** Some may fail with: -`Error response from daemon: conflict: unable to delete 3f38eaed93df (cannot be forced) - image has dependent child images` - -- I added this to my `.bashrc` to remove orphaned images. - -``` -dclean() { - processes=`docker ps -q -f status=exited` - if [ -n "$processes" ]; then - docker rm $processes - fi - - images=`docker images -q -f dangling=true` - if [ -n "$images" ]; then - docker rmi $images - fi -} -``` - -- If you frequently switch configurations for Laradock, you may find that adding the following and added to your `.bashrc` or equivalent useful: - -``` -# remove laravel* containers -# remove laravel_* images -dcleanlaradockfunction() -{ - echo 'Removing ALL containers associated with laradock' - docker ps -a | awk '{ print $1,$2 }' | grep laradock | awk '{print $1}' | xargs -I {} docker rm {} - - # remove ALL images associated with laradock_ - # does NOT delete laradock/* which are hub images - echo 'Removing ALL images associated with laradock_' - docker images | awk '{print $1,$2,$3}' | grep laradock_ | awk '{print $3}' | xargs -I {} docker rmi {} - - echo 'Listing all laradock docker hub images...' - docker images | grep laradock - - echo 'dcleanlaradock completed' -} -# associate the above function with an alias -# so can recall/lookup by typing 'alias' -alias dcleanlaradock=dcleanlaradockfunction -``` - - -### Let's get a dial-tone with Laravel - -``` -# barebones at this point -docker-compose up -d nginx mysql - -# run -docker-compose ps - -# Should see: - Name Command State Ports ------------------------------------------------------------------------------------------------------------ -laradock_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp -laradock_nginx_1 nginx Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp -laradock_php-fpm_1 php-fpm Up 9000/tcp -laradock_volumes_data_1 true Exit 0 -laradock_volumes_source_1 true Exit 0 -laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp -``` - -### Enable xDebug on php-fpm - -In a host terminal sitting in the laradock folder, run: `./php-fpm/xdebug status` -You should see something like the following: - -``` -xDebug status -laradock_php-fpm_1 -PHP 7.0.9 (cli) (built: Aug 10 2016 19:45:48) ( NTS ) -Copyright (c) 1997-2016 The PHP Group -Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies - with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans -``` - -Other commands include `./php-fpm/xdebug start | stop`. - -If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will already be running when -`php-fpm` is started and listening for debug info on port 9000. - - -### PHPStorm Settings - -- Here are some settings that are known to work: - - `Settings/BuildDeploymentConnection` - - ![Settings/BuildDeploymentConnection](/images/photos/PHPStorm/Settings/BuildDeploymentConnection.png) - - - `Settings/BuildDeploymentConnectionMappings` - - ![Settings/BuildDeploymentConnectionMappings](/images/photos/PHPStorm/Settings/BuildDeploymentConnectionMappings.png) - - - `Settings/BuildDeploymentDebugger` - - ![Settings/BuildDeploymentDebugger](/images/photos/PHPStorm/Settings/BuildDeploymentDebugger.png) - - - `Settings/EditRunConfigurationRemoteWebDebug` - - ![Settings/EditRunConfigurationRemoteWebDebug](/images/photos/PHPStorm/Settings/EditRunConfigurationRemoteWebDebug.png) - - - `Settings/EditRunConfigurationRemoteExampleTestDebug` - - ![Settings/EditRunConfigurationRemoteExampleTestDebug](/images/photos/PHPStorm/Settings/EditRunConfigurationRemoteExampleTestDebug.png) - - - `Settings/LangsPHPDebug` - - ![Settings/LangsPHPDebug](/images/photos/PHPStorm/Settings/LangsPHPDebug.png) - - - `Settings/LangsPHPInterpreters` - - ![Settings/LangsPHPInterpreters](/images/photos/PHPStorm/Settings/LangsPHPInterpreters.png) - - - `Settings/LangsPHPPHPUnit` - - ![Settings/LangsPHPPHPUnit](/images/photos/PHPStorm/Settings/LangsPHPPHPUnit.png) - - - `Settings/LangsPHPServers` - - ![Settings/LangsPHPServers](/images/photos/PHPStorm/Settings/LangsPHPServers.png) - - - `RemoteHost` - To switch on this view, go to: `Menu/Tools/Deployment/Browse Remote Host`. - - ![RemoteHost](/images/photos/PHPStorm/RemoteHost.png) - - - `RemoteWebDebug` - - ![DebugRemoteOn](/images/photos/PHPStorm/DebugRemoteOn.png) - - - `EditRunConfigurationRemoteWebDebug` - Go to: `Menu/Run/Edit Configurations`. - - ![EditRunConfigurationRemoteWebDebug](/images/photos/PHPStorm/Settings/EditRunConfigurationRemoteWebDebug.png) - - - `EditRunConfigurationRemoteExampleTestDebug` - Go to: `Menu/Run/Edit Configurations`. - - ![EditRunConfigurationRemoteExampleTestDebug](/images/photos/PHPStorm/Settings/EditRunConfigurationRemoteExampleTestDebug.png) - - - `WindowsFirewallAllowedApps` - Go to: `Control Panel\All Control Panel Items\Windows Firewall\Allowed apps`. - - ![WindowsFirewallAllowedApps.png](/images/photos/PHPStorm/Settings/WindowsFirewallAllowedApps.png) - - - `hosts` - Edit: `C:\Windows\System32\drivers\etc\hosts`. - - ![WindowsFirewallAllowedApps.png](/images/photos/PHPStorm/Settings/hosts.png) - - - [Enable xDebug on php-fpm](#enablePhpXdebug) - - - -### Usage - -#### Run ExampleTest -- right-click on `tests/ExampleTest.php` - - Select: `Run 'ExampleTest.php'` or `Ctrl+Shift+F10`. - - Should pass!! You just ran a remote test via SSH! - -#### Debug ExampleTest -- Open to edit: `tests/ExampleTest.php` -- Add a BreakPoint on line 16: `$this->visit('/')` -- right-click on `tests/ExampleTest.php` - - Select: `Debug 'ExampleTest.php'`. - - Should have stopped at the BreakPoint!! You are now debugging locally against a remote Laravel project via SSH! - - ![Remote Test Debugging Success](/images/photos/PHPStorm/RemoteTestDebuggingSuccess.png) - -#### Debug WebSite -- In case xDebug is disabled, from the `laradock` folder run: -`./php-fpm/xdebug start`. - - To switch xdebug off, run: -`./php-fpm/xdebug stop` - -- Start Remote Debugging - - ![DebugRemoteOn](/images/photos/PHPStorm/DebugRemoteOn.png) - -- Open to edit: `bootstrap/app.php` -- Add a BreakPoint on line 14: `$app = new Illuminate\Foundation\Application(` -- Reload [Laravel Site](http://laravel/) - - Should have stopped at the BreakPoint!! You are now debugging locally against a remote Laravel project via SSH! - - ![Remote Debugging Success](/images/photos/PHPStorm/RemoteDebuggingSuccess.png) - - -### Let's shell into workspace -Assuming that you are in laradock folder, type: -`ssh -i workspace/insecure_id_rsa -p2222 root@laravel` -**Cha Ching!!!!** -- `workspace/insecure_id_rsa.ppk` may become corrupted. In which case: - - fire up `puttygen` - - import `workspace/insecure_id_rsa` - - save private key to `workspace/insecure_id_rsa.ppk` - -#### KiTTY -[Kitty](http://www.9bis.net/kitty/) KiTTY is a fork from version 0.67 of PuTTY. - -- Here are some settings that are working for me: - - ![Session](/images/photos/KiTTY/Session.png) - - ![Terminal](/images/photos/KiTTY/Terminal.png) - - ![Window](/images/photos/KiTTY/Window.png) - - ![WindowAppearance](/images/photos/KiTTY/WindowAppearance.png) - - ![Connection](/images/photos/KiTTY/Connection.png) - - ![ConnectionData](/images/photos/KiTTY/ConnectionData.png) - - ![ConnectionSSH](/images/photos/KiTTY/ConnectionSSH.png) - - ![ConnectionSSHAuth](/images/photos/KiTTY/ConnectionSSHAuth.png) - - ![TerminalShell](/images/photos/KiTTY/TerminalShell.png) - -
-
-
-
-
- - -## Setup remote debugging for PhpStorm on Linux - - - Make sure you have followed the steps above in the [Install Xdebug section](#install-xdebug). - - - Make sure Xdebug accepts connections and listens on port 9000. (Should be default configuration). - -![Debug Configuration](/images/photos/PHPStorm/linux/configuration/debugConfiguration.png "Debug Configuration"). - - - Create a server with name `laradock` (matches **PHP_IDE_CONFIG** key in environment file) and make sure to map project root path with server correctly. - -![Server Configuration](/images/photos/PHPStorm/linux/configuration/serverConfiguration.png "Server Configuration"). - - - Start listening for debug connections, place a breakpoint and you are good to go ! diff --git a/DOCUMENTATION/content/help/index.md b/DOCUMENTATION/content/help/index.md index 1d971c51..8267bc5a 100644 --- a/DOCUMENTATION/content/help/index.md +++ b/DOCUMENTATION/content/help/index.md @@ -6,6 +6,8 @@ weight: 5 Join the chat room on [Gitter](https://gitter.im/Laradock/laradock) and get help and support from the community. +[![Gitter](https://badges.gitter.im/Laradock/laradock.svg)](https://gitter.im/Laradock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) + 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). @@ -41,7 +43,7 @@ Use `http://127.0.0.1` instead of `http://localhost` in your browser.
-## I see an error message containing `address already in use` or `port is already allocated` +## I see an error message containing (address already in use) or (port is already allocated) Make sure the ports for the services that you are trying to run (22, 80, 443, 3306, etc.) are not being used already by other programs on the host, such as a built in `apache`/`httpd` service or other development tools you have installed. @@ -85,7 +87,7 @@ This error sometimes happens because your Laravel application isn't running on t * 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` -## I get stuck when building nginx on `fetch http://mirrors.aliyun.com/alpine/v3.5/main/x86_64/APKINDEX.tar.gz` +## I get stuck when building nginx on (fetch mirrors.aliyun.com/alpine/v3.5/main/x86_64/APKINDEX.tar.gz) As stated on [#749](https://github.com/laradock/laradock/issues/749#issuecomment-419652646), Already fixed,just set `CHANGE_SOURCE` to false. @@ -101,7 +103,7 @@ WORKSPACE_COMPOSER_REPO_PACKAGIST=https://packagist.phpcomposer.com
-## I get `Module build failed: Error: write EPIPE` while compiling react application +## I got (Module build failed: Error: write EPIPE) while compiling react application When you run `npm build` or `yarn dev` building a react application using webpack with elixir you may receive a `Error: write EPIPE` while processing .jpg images. diff --git a/DOCUMENTATION/content/introduction/index.md b/DOCUMENTATION/content/introduction/index.md index 85115551..3c6437d7 100644 --- a/DOCUMENTATION/content/introduction/index.md +++ b/DOCUMENTATION/content/introduction/index.md @@ -33,69 +33,6 @@ Supporting a variety of common services, all pre-configured to provide a full PH --- - -## Sponsors - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Support Laradock with your [organization](https://opencollective.com/laradock/contribute/). -
-Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page. -
-For more info contact support@laradock.io. - -
- - ## Quick Overview Let's see how easy it is to setup our demo stack `PHP`, `NGINX`, `MySQL`, `Redis` and `Composer`: @@ -300,28 +237,28 @@ Laradock exists thanks to all the people who contribute.
Bo-Yi Wu
- @appleboy + @appleboy
Philippe Trépanier
- @philtrep + @philtrep
Mike Erickson
- @mikeerickson + @mikeerickson
Dwi Fahni Denni
- @zeroc0d3 + @zeroc0d3 @@ -330,35 +267,35 @@ Laradock exists thanks to all the people who contribute.
Thor Erik
- @thorerik + @thorerik
Winfried van Loon
- @winfried-van-loon + @winfried-van-loon
TJ Miller
- @sixlive + @sixlive
Yu-Lung Shao (Allen)
- @bestlong + @bestlong
Milan Urukalo
- @urukalo + @urukalo @@ -367,28 +304,28 @@ Laradock exists thanks to all the people who contribute.
Vince Chu
- @vwchu + @vwchu
Huadong Zuo
- @zuohuadong + @zuohuadong
Lan Phan
- @lanphan + @lanphan
Ahkui
- @ahkui + @ahkui @@ -423,3 +360,68 @@ Contribute and help us sustain the project. Option 3: Become a backer on [Open Collective](https://opencollective.com/laradock/contribute). + + + + +## Sponsors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Support Laradock with your [organization](https://opencollective.com/laradock/contribute/). +
+Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page. +
+For more info contact support@laradock.io. + +
+ diff --git a/DOCUMENTATION/themes/hugo-material-docs/layouts/_default/single.html b/DOCUMENTATION/themes/hugo-material-docs/layouts/_default/single.html index af662ad5..050f28d2 100644 --- a/DOCUMENTATION/themes/hugo-material-docs/layouts/_default/single.html +++ b/DOCUMENTATION/themes/hugo-material-docs/layouts/_default/single.html @@ -24,20 +24,6 @@
- - - - - - - - -

{{ .Title }} {{ if .IsDraft }} (Draft){{ end }}

{{ .Content }} diff --git a/DOCUMENTATION/themes/hugo-material-docs/layouts/index.html b/DOCUMENTATION/themes/hugo-material-docs/layouts/index.html index 502cd68c..a7c9bc13 100644 --- a/DOCUMENTATION/themes/hugo-material-docs/layouts/index.html +++ b/DOCUMENTATION/themes/hugo-material-docs/layouts/index.html @@ -25,7 +25,7 @@
- +
From 8011182a3413716a62f0cbc0fe0a10521597672c Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Tue, 14 Jan 2020 21:38:24 +0800 Subject: [PATCH 018/295] php 7.4 required oniguruma --- php-worker/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index df78ab42..d9733e5f 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -29,6 +29,7 @@ RUN apk --update add wget \ autoconf \ cyrus-sasl-dev \ libgsasl-dev \ + oniguruma-dev \ supervisor RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml pcntl From 4fbe5c03b972fedbe9e36df090cc12beb48c1e77 Mon Sep 17 00:00:00 2001 From: Claudio Ludovico <921500+ludo237@users.noreply.github.com> Date: Tue, 14 Jan 2020 16:06:25 +0100 Subject: [PATCH 019/295] Update Dockerfile Add non-root user for ffmpeg installation --- laravel-horizon/Dockerfile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 3c0509e7..f627557b 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -26,6 +26,15 @@ RUN apk --update add wget \ RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml pcntl RUN pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 mongodb && docker-php-ext-enable memcached mongodb +# Add a non-root user to help install ffmpeg: +ARG PUID=1000 +ENV PUID ${PUID} +ARG PGID=1000 +ENV PGID ${PGID} + +RUN addgroup -g ${PGID} laradock && \ + adduser -D -G laradock -u ${PUID} laradock + #Install BCMath package: ARG INSTALL_BCMATH=false RUN if [ ${INSTALL_BCMATH} = true ]; then \ From a84611ff4b117dfa0c5ee52ec3ca0a7141120f34 Mon Sep 17 00:00:00 2001 From: Claudio Ludovico <921500+ludo237@users.noreply.github.com> Date: Tue, 14 Jan 2020 16:07:07 +0100 Subject: [PATCH 020/295] Update docker-compose.yml Add necessary args --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index d3aca5a9..22d96b68 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -272,6 +272,8 @@ services: - INSTALL_CASSANDRA=${PHP_FPM_INSTALL_CASSANDRA} - INSTALL_PHPREDIS=${LARAVEL_HORIZON_INSTALL_PHPREDIS} - INSTALL_FFMPEG=${LARAVEL_HORIZON_INSTALL_FFMPEG} + - PUID=${PHP_WORKER_PUID} + - PGID=${PHP_WORKER_PGID} volumes: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} - ./laravel-horizon/supervisord.d:/etc/supervisord.d From 84b5c5aaa00b623fbbcc20acf45c9247e3083999 Mon Sep 17 00:00:00 2001 From: Claudio Ludovico <921500+ludo237@users.noreply.github.com> Date: Tue, 14 Jan 2020 16:10:42 +0100 Subject: [PATCH 021/295] Update config Add user created during docker installation --- laravel-horizon/supervisord.d/laravel-horizon.conf.example | 1 + 1 file changed, 1 insertion(+) diff --git a/laravel-horizon/supervisord.d/laravel-horizon.conf.example b/laravel-horizon/supervisord.d/laravel-horizon.conf.example index 245dccd5..f664320a 100644 --- a/laravel-horizon/supervisord.d/laravel-horizon.conf.example +++ b/laravel-horizon/supervisord.d/laravel-horizon.conf.example @@ -1,5 +1,6 @@ [program:laravel-horizon] process_name=%(program_name)s_%(process_num)02d +user=laradock command=php /var/www/artisan horizon autostart=true autorestart=true From 8ecd35d2e9ba7c18de7b281a6287379d806f1fb7 Mon Sep 17 00:00:00 2001 From: Dan Wilson Date: Wed, 15 Jan 2020 12:01:35 -0500 Subject: [PATCH 022/295] Added wkhtmltopdf installation to both Workspace and PHP-FPM --- docker-compose.yml | 2 ++ env-example | 2 ++ php-fpm/Dockerfile | 20 ++++++++++++++++++++ workspace/Dockerfile | 20 ++++++++++++++++++++ 4 files changed, 44 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index fdab1416..c935c83e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -138,6 +138,7 @@ services: - INSTALL_POWERLINE=${WORKSPACE_INSTALL_POWERLINE} - INSTALL_SUPERVISOR=${WORKSPACE_INSTALL_SUPERVISOR} - INSTALL_FFMPEG=${WORKSPACE_INSTALL_FFMPEG} + - INSTALL_WKHTMLTOPDF=${WORKSPACE_INSTALL_WKHTMLTOPDF} - INSTALL_GNU_PARALLEL=${WORKSPACE_INSTALL_GNU_PARALLEL} - http_proxy - https_proxy @@ -217,6 +218,7 @@ services: - INSTALL_PCNTL=${PHP_FPM_INSTALL_PCNTL} - ADDITIONAL_LOCALES=${PHP_FPM_ADDITIONAL_LOCALES} - INSTALL_FFMPEG=${PHP_FPM_FFMPEG} + - INSTALL_WKHTMLTOPDF=${PHP_FPM_INSTALL_WKHTMLTOPDF} - INSTALL_XHPROF=${PHP_FPM_INSTALL_XHPROF} - PUID=${PHP_FPM_PUID} - PGID=${PHP_FPM_PGID} diff --git a/env-example b/env-example index c521fd04..82234e8c 100644 --- a/env-example +++ b/env-example @@ -155,6 +155,7 @@ WORKSPACE_CHROME_DRIVER_VERSION=2.42 WORKSPACE_TIMEZONE=UTC WORKSPACE_SSH_PORT=2222 WORKSPACE_INSTALL_FFMPEG=false +WORKSPACE_INSTALL_WKHTMLTOPDF=false WORKSPACE_INSTALL_GNU_PARALLEL=false WORKSPACE_INSTALL_AST=true WORKSPACE_AST_VERSION=1.0.3 @@ -210,6 +211,7 @@ PHP_FPM_INSTALL_MYSQL_CLIENT=false PHP_FPM_INSTALL_PING=false PHP_FPM_INSTALL_SSHPASS=false PHP_FPM_INSTALL_MAILPARSE=false +PHP_FPM_INSTALL_WKHTMLTOPDF=false PHP_FPM_FFMPEG=false PHP_FPM_ADDITIONAL_LOCALES="es_ES.UTF-8 fr_FR.UTF-8" PHP_FPM_DEFAULT_LOCALE=POSIX diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 74b072ee..24b6c6ec 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -846,6 +846,26 @@ RUN if [ ${INSTALL_FFMPEG} = true ]; then \ apt-get -y install ffmpeg \ ;fi +##################################### +# wkhtmltopdf: +##################################### + +USER root + +ARG INSTALL_WKHTMLTOPDF=false + +RUN if [ ${INSTALL_WKHTMLTOPDF} = true ]; then \ + apt-get install -y \ + libxrender1 \ + libfontconfig1 \ + libx11-dev \ + libjpeg62 \ + libxtst6 \ + wget \ + && wget https://github.com/h4cc/wkhtmltopdf-amd64/blob/master/bin/wkhtmltopdf-amd64?raw=true -O /usr/local/bin/wkhtmltopdf \ + && chmod +x /usr/local/bin/wkhtmltopdf \ +;fi + ########################################################################### # Mailparse extension: ########################################################################### diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 6223e0a2..a5f3d280 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1231,6 +1231,26 @@ RUN if [ ${INSTALL_FFMPEG} = true ]; then \ apt-get -y install ffmpeg \ ;fi +##################################### +# wkhtmltopdf: +##################################### + +USER root + +ARG INSTALL_WKHTMLTOPDF=false + +RUN if [ ${INSTALL_WKHTMLTOPDF} = true ]; then \ + apt-get install -y \ + libxrender1 \ + libfontconfig1 \ + libx11-dev \ + libjpeg62 \ + libxtst6 \ + wget \ + && wget https://github.com/h4cc/wkhtmltopdf-amd64/blob/master/bin/wkhtmltopdf-amd64?raw=true -O /usr/local/bin/wkhtmltopdf \ + && chmod +x /usr/local/bin/wkhtmltopdf \ +;fi + ########################################################################### # Mailparse extension: ########################################################################### From 711b2e7449cbf6e2368cb6a1cd75413929d7a7d1 Mon Sep 17 00:00:00 2001 From: Dan Wilson Date: Wed, 15 Jan 2020 13:44:53 -0500 Subject: [PATCH 023/295] Updated documentation with wkhtmltopdf section --- DOCUMENTATION/content/documentation/index.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index 14d5be03..1cafb334 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -1876,7 +1876,21 @@ To install FFMPEG in the Workspace container **PS** Don't forget to install the binary in the `php-fpm` container too by applying the same steps above to its container, otherwise the you'll get an error when running the `php-ffmpeg` binary. +
+ +## Install wkhtmltopdf +[wkhtmltopdf](https://wkhtmltopdf.org/) is a utility for outputting a PDF from HTML + +To install wkhtmltopdf in the Workspace container + +1 - Open the `.env` file + +2 - Search for the `WORKSPACE_INSTALL_WKHTMLTOPDF` argument under the Workspace Container and set it to `true` + +3 - Re-build the container `docker-compose build workspace` + +**PS** Don't forget to install the binary in the `php-fpm` container too by applying the same steps above to its container, otherwise the you'll get an error when running the `wkhtmltopdf` binary. From 9461c859f07b27200646704fc0e9e47a6f029727 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Thu, 16 Jan 2020 14:57:19 +0800 Subject: [PATCH 024/295] upgrade base image version --- php-fpm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 74b072ee..1d6a8bfe 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -14,7 +14,7 @@ ARG LARADOCK_PHP_VERSION -FROM laradock/php-fpm:2.6.2-${LARADOCK_PHP_VERSION} +FROM laradock/php-fpm:2.7-${LARADOCK_PHP_VERSION} LABEL maintainer="Mahmoud Zalt " From b28f44955681244da1a7b04c013a667ae68b825d Mon Sep 17 00:00:00 2001 From: Scott Collier Date: Mon, 20 Jan 2020 12:24:18 -0600 Subject: [PATCH 025/295] Add bash-git-prompt in order to have a more descriptive prompt when working with repositories. Also, update documentation for bash-git-prompt usage --- DOCUMENTATION/content/documentation/index.md | 19 ++++++++++++++++ docker-compose.yml | 1 + env-example | 1 + workspace/Dockerfile | 13 +++++++++++ workspace/git-prompt.sh | 24 ++++++++++++++++++++ 5 files changed, 58 insertions(+) create mode 100644 workspace/git-prompt.sh diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index 14d5be03..d007bcac 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -2052,6 +2052,25 @@ AST exposes the abstract syntax tree generated by PHP 7+. This extension is requ +
+ +## Install Git Bash Prompt +A bash prompt that displays information about the current git repository. In particular the branch name, difference with remote branch, number of files staged, changed, etc. + +1 - Open the `.env` file + +2 - Search for the `WORKSPACE_INSTALL_GIT_PROMPT` argument under the Workspace Container + +3 - Set it to `true` + +4 - Re-build the container `docker-compose build workspace` + +**Note** You can configure bash-git-prompt by editing the `workspace/gitprompt.sh` file and re-building the workspace container. +For configuration information, visit the [bash-git-prompt repository](https://github.com/magicmonty/bash-git-prompt). + + + +
## PHPStorm Debugging Guide diff --git a/docker-compose.yml b/docker-compose.yml index 7f1543fe..bb751284 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -125,6 +125,7 @@ services: - INSTALL_AST=${WORKSPACE_INSTALL_AST} - INSTALL_YAML=${WORKSPACE_INSTALL_YAML} - INSTALL_MAILPARSE=${WORKSPACE_INSTALL_MAILPARSE} + - INSTALL_GIT_PROMPT=${WORKSPACE_INSTALL_GIT_PROMPT} - PUID=${WORKSPACE_PUID} - PGID=${WORKSPACE_PGID} - CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION} diff --git a/env-example b/env-example index feecbd65..256288da 100644 --- a/env-example +++ b/env-example @@ -158,6 +158,7 @@ WORKSPACE_INSTALL_FFMPEG=false WORKSPACE_INSTALL_GNU_PARALLEL=false WORKSPACE_INSTALL_AST=true WORKSPACE_AST_VERSION=1.0.3 +WORKSPACE_INSTALL_GIT_PROMPT=true ### PHP_FPM ############################################### diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 6223e0a2..3bf68724 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1253,6 +1253,19 @@ RUN if [ ${INSTALL_GNU_PARALLEL} = true ]; then \ apt-get -y install parallel \ ;fi +########################################################################### +# Bash Git Prompt +########################################################################### + +ARG INSTALL_GIT_PROMPT=false + +COPY git-prompt.sh /tmp/git-prompt + +RUN if [ ${INSTALL_GIT_PROMPT} = true ]; then \ + git clone https://github.com/magicmonty/bash-git-prompt.git /root/.bash-git-prompt --depth=1 && \ + cat /tmp/git-prompt >> /root/.bashrc && \ + rm /tmp/git-prompt \ +;fi ########################################################################### # Check PHP version: diff --git a/workspace/git-prompt.sh b/workspace/git-prompt.sh new file mode 100644 index 00000000..374e9fad --- /dev/null +++ b/workspace/git-prompt.sh @@ -0,0 +1,24 @@ +# Settings info at https://github.com/magicmonty/bash-git-prompt +if [ -f "$HOME/.bash-git-prompt/gitprompt.sh" ]; then + # Set config variables first + GIT_PROMPT_ONLY_IN_REPO=1 + GIT_PROMPT_FETCH_REMOTE_STATUS=0 # uncomment to avoid fetching remote status + GIT_PROMPT_IGNORE_SUBMODULES=1 # uncomment to avoid searching for changed files in submodules + # GIT_PROMPT_WITH_VIRTUAL_ENV=0 # uncomment to avoid setting virtual environment infos for node/python/conda environments + + # GIT_PROMPT_SHOW_UPSTREAM=1 # uncomment to show upstream tracking branch + # GIT_PROMPT_SHOW_UNTRACKED_FILES=normal # can be no, normal or all; determines counting of untracked files + + # GIT_PROMPT_SHOW_CHANGED_FILES_COUNT=0 # uncomment to avoid printing the number of changed files + + # GIT_PROMPT_STATUS_COMMAND=gitstatus_pre-1.7.10.sh # uncomment to support Git older than 1.7.10 + + # GIT_PROMPT_START=... # uncomment for custom prompt start sequence + # GIT_PROMPT_END=... # uncomment for custom prompt end sequence + + # as last entry source the gitprompt script + # GIT_PROMPT_THEME=Custom # use custom theme specified in file GIT_PROMPT_THEME_FILE (default ~/.git-prompt-colors.sh) + # GIT_PROMPT_THEME_FILE=~/.git-prompt-colors.sh + # GIT_PROMPT_THEME=Solarized # use theme optimized for solarized color scheme + source $HOME/.bash-git-prompt/gitprompt.sh +fi From 7fec2186ef0a140a19c603d7406614bb4c321e18 Mon Sep 17 00:00:00 2001 From: Scott Collier Date: Mon, 20 Jan 2020 12:25:44 -0600 Subject: [PATCH 026/295] Add bash-git-prompt in order to have a more descriptive prompt when working with repositories. Also, update documentation for bash-git-prompt usage. Make sure initial value for usage is false. --- env-example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/env-example b/env-example index 256288da..a98d14b4 100644 --- a/env-example +++ b/env-example @@ -158,7 +158,7 @@ WORKSPACE_INSTALL_FFMPEG=false WORKSPACE_INSTALL_GNU_PARALLEL=false WORKSPACE_INSTALL_AST=true WORKSPACE_AST_VERSION=1.0.3 -WORKSPACE_INSTALL_GIT_PROMPT=true +WORKSPACE_INSTALL_GIT_PROMPT=false ### PHP_FPM ############################################### From 5aafed586be0aade83a20928d0d45bb508521478 Mon Sep 17 00:00:00 2001 From: Nathanael Date: Wed, 22 Jan 2020 15:37:04 -0300 Subject: [PATCH 027/295] upgraded elasticsearch, logstash and kibana images and provided an environment variable to specify a version for the entire ELK stack. --- docker-compose.yml | 15 ++++++++++++--- elasticsearch/Dockerfile | 3 ++- env-example | 3 +++ kibana/Dockerfile | 3 ++- logstash/Dockerfile | 3 ++- 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index fdab1416..26bd2043 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -770,7 +770,10 @@ services: ### ElasticSearch ######################################## elasticsearch: - build: ./elasticsearch + build: + context: ./elasticsearch + args: + - ELK_VERSION=${ELK_VERSION} volumes: - elasticsearch:/usr/share/elasticsearch/data environment: @@ -794,7 +797,10 @@ services: ### Logstash ############################################## logstash: - build: ./logstash + build: + context: ./logstash + args: + - ELK_VERSION=${ELK_VERSION} volumes: - './logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml' - './logstash/pipeline:/usr/share/logstash/pipeline' @@ -812,7 +818,10 @@ services: ### Kibana ############################################## kibana: - build: ./kibana + build: + context: ./kibana + args: + - ELK_VERSION=${ELK_VERSION} ports: - "${KIBANA_HTTP_PORT}:5601" depends_on: diff --git a/elasticsearch/Dockerfile b/elasticsearch/Dockerfile index dcc28741..7d77e070 100644 --- a/elasticsearch/Dockerfile +++ b/elasticsearch/Dockerfile @@ -1,3 +1,4 @@ -FROM docker.elastic.co/elasticsearch/elasticsearch:7.1.1 +ARG ELK_VERSION=7.5.1 +FROM docker.elastic.co/elasticsearch/elasticsearch:${ELK_VERSION} EXPOSE 9200 9300 diff --git a/env-example b/env-example index c521fd04..46ad0047 100644 --- a/env-example +++ b/env-example @@ -848,3 +848,6 @@ GEARMAN_MYSQL_PASSWORD_FILE= GEARMAN_MYSQL_DB=Gearmand # Table to use by Gearman (Default: gearman_queue) GEARMAN_MYSQL_TABLE=gearman_queue + +### ELK Stack ################################################## +ELK_VERSION=7.5.1 diff --git a/kibana/Dockerfile b/kibana/Dockerfile index b831d6d0..46ef6539 100644 --- a/kibana/Dockerfile +++ b/kibana/Dockerfile @@ -1,3 +1,4 @@ -FROM docker.elastic.co/kibana/kibana:7.1.1 +ARG ELK_VERSION=7.5.1 +FROM docker.elastic.co/kibana/kibana:${ELK_VERSION} EXPOSE 5601 diff --git a/logstash/Dockerfile b/logstash/Dockerfile index a8c54527..161d381e 100644 --- a/logstash/Dockerfile +++ b/logstash/Dockerfile @@ -1,4 +1,5 @@ -FROM docker.elastic.co/logstash/logstash:6.4.2 +ARG ELK_VERSION=7.5.1 +FROM docker.elastic.co/logstash/logstash:${ELK_VERSION} USER root RUN rm -f /usr/share/logstash/pipeline/logstash.conf From 8b4391e63ca9260a29177d368fbf5eb7b494fd6f Mon Sep 17 00:00:00 2001 From: Saulo Paiva Date: Sat, 25 Jan 2020 11:23:48 -0300 Subject: [PATCH 028/295] Use MYSQL_VERSION env var to build mysql image --- mysql/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql/Dockerfile b/mysql/Dockerfile index 03bb15ca..870a5e46 100644 --- a/mysql/Dockerfile +++ b/mysql/Dockerfile @@ -1,4 +1,4 @@ -ARG MYSQL_VERSION=latest +ARG MYSQL_VERSION FROM mysql:${MYSQL_VERSION} LABEL maintainer="Mahmoud Zalt " From e14e5b7caff15136fe17c12411733d04c5288c4a Mon Sep 17 00:00:00 2001 From: Patrick Date: Sat, 1 Feb 2020 15:18:36 +0100 Subject: [PATCH 029/295] Fix bad style --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7f1543fe..a6cd3b29 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -291,8 +291,8 @@ services: - INSTALL_PHPREDIS=${LARAVEL_HORIZON_INSTALL_PHPREDIS} - INSTALL_MONGO=${LARAVEL_HORIZON_INSTALL_MONGO} - INSTALL_FFMPEG=${LARAVEL_HORIZON_INSTALL_FFMPEG} - - PUID=${PHP_WORKER_PUID} - - PGID=${PHP_WORKER_PGID} + - PUID=${LARAVEL_HORIZON_PUID} + - PGID=${LARAVEL_HORIZON_PGID} volumes: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} - ./laravel-horizon/supervisord.d:/etc/supervisord.d From f3f3dfa7240ec70f9288a1f6b8b6d5ba0de935de Mon Sep 17 00:00:00 2001 From: Patrick Date: Sat, 1 Feb 2020 15:20:02 +0100 Subject: [PATCH 030/295] Add group/user id setting to horizon .env section --- env-example | 2 ++ 1 file changed, 2 insertions(+) diff --git a/env-example b/env-example index feecbd65..03d3f38f 100644 --- a/env-example +++ b/env-example @@ -254,6 +254,8 @@ LARAVEL_HORIZON_INSTALL_SOCKETS=false LARAVEL_HORIZON_INSTALL_PHPREDIS=true LARAVEL_HORIZON_INSTALL_MONGO=false LARAVEL_HORIZON_INSTALL_FFMPEG=false +LARAVEL_HORIZON_PGID=1000 +LARAVEL_HORIZON_PUID=1000 ### APACHE ################################################ From 34daaba270654e15f279953fbe1d65c4c537a96c Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Sat, 1 Feb 2020 20:31:18 +0100 Subject: [PATCH 031/295] update github issues and PR templates, add config for github stale bot in addition to some small updates in the readme, /.github and /docs.. --- .github/CODE_OF_CONDUCT.md | 46 ----------- .github/CONTRIBUTING.md | 3 - .github/FUNDING.yml | 5 +- .github/ISSUE_TEMPLATE.md | 23 ------ .github/ISSUE_TEMPLATE/bug_report.md | 50 ++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 ++ .github/ISSUE_TEMPLATE/feature_request.md | 17 ++++ .github/PULL_REQUEST_TEMPLATE.md | 21 +++-- .github/SUPPORT.md | 3 + .github/stale.yml | 21 +++++ CODE_OF_CONDUCT.md | 3 + CONTRIBUTING.md | 3 + DOCUMENTATION/content/introduction/index.md | 78 ++++++++++++++---- .../hugo-material-docs/layouts/index.html | 3 - .../layouts/partials/head.html | 21 ----- README.md | 81 ++++++++++++++++--- 16 files changed, 252 insertions(+), 131 deletions(-) delete mode 100644 .github/CODE_OF_CONDUCT.md delete mode 100644 .github/CONTRIBUTING.md delete mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/SUPPORT.md create mode 100644 .github/stale.yml create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md deleted file mode 100644 index 8359c58e..00000000 --- a/.github/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,46 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at mahmoud@zalt.me. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md deleted file mode 100644 index 7d5865b0..00000000 --- a/.github/CONTRIBUTING.md +++ /dev/null @@ -1,3 +0,0 @@ -### First off, thanks for taking the time to contribute! - -For the contribution guide [click here](http://laradock.io/contributing/). diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 61a5c983..40005024 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,6 +1,5 @@ # DO NOT CHANGE THIS FILE PLEASE. +github: Mahmoudz open_collective: laradock -ko_fi: laradock -issuehunt: laradock -custom: ['beerpay.io/laradock/laradock', 'paypal.me/mzmmzz'] +custom: ['paypal.me/mzmmzz'] diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index eff16ef7..00000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,23 +0,0 @@ -### Info: -- Docker version (`$ docker --version`): -- Laradock commit (`$ git rev-parse HEAD`): -- System info (Mac, PC, Linux): -- System info disto/version: - -### Issue: - -_____ - -### Expected behavior: - -_____ - -### Reproduce: - -_____ - -### Relevant Code: - -``` -// place a code sample here -``` diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..14edccab --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,50 @@ +--- +name: "Bug report" +about: "Report a general issue, encountered while using Laradock." +labels: "Type: Bug" +--- + +### Description: + + +### Expected Behavior: + + +### Context information: + +**Output of `git rev-parse HEAD`** + +``` +{paste here} +``` + +**Output of `docker version`** + +``` +{paste here} +``` + +**Output of `docker-compose version`** + +``` +{paste here} +``` + +**System info: Mac, Windows or Linux. Include which disto/version** + +``` +{paste here} +``` + +### Steps to reproduce the issue: + + +1. +2. +3. + +### Stacktrace & Additional info: + +``` +{paste here} +``` diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..18ff9f8b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Support question + url: https://gitter.im/LaraDock/laradock + about: 'This repository is only for reporting bugs. If you need help, get in touch with us via Gitter.' diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..15ad6ff8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,17 @@ +--- +name: "Feature request" +about: "Suggest an idea for this project." +labels: "Type: Feature Request" +--- + +**Is your feature request related to a problem? Please describe.** + + +**Describe the solution you'd like** + + +**Describe alternatives you've considered** + + +**Additional context** + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 163c99c0..85ca95d7 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,7 +1,18 @@ - +## Description + + -##### I completed the 3 steps below: +## Motivation and Context + -- [ ] I've read the [Contribution Guide](http://laradock.io/contributing). -- [ ] I've updated the **documentation**. (refer to [this](http://laradock.io/contributing/#update-the-documentation-site) for how to do so). -- [ ] I enjoyed my time contributing and making developer's life easier :) +## Types of Changes + +- [] Bug fix (non-breaking change which fixes an issue). +- [] New feature (non-breaking change which adds functionality). +- [] Breaking change (fix or feature that would cause existing functionality to not work as expected). + +## Definition of Done Checklist: + +- [] I've read the [Contribution Guide](http://laradock.io/contributing). +- [] I've updated the **documentation**. (refer to [this](http://laradock.io/contributing/#update-the-documentation-site) for how to do so). +- [] I enjoyed my time contributing and making developer's life easier :) diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md new file mode 100644 index 00000000..323f966f --- /dev/null +++ b/.github/SUPPORT.md @@ -0,0 +1,3 @@ +# Support Questions + +For help, please visit our official chatting room on [Gitter](https://gitter.im/Laradock/laradock). diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 00000000..f3c36da7 --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,21 @@ +# Configuration for probot-stale - https://github.com/probot/stale + +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 180 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 90 +# Issues with these labels will never be considered stale +exemptLabels: + - 'Type: Feature Request' +# Label to use when marking an issue as stale +staleLabel: stale +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: > + This issue has been automatically closed because it had not recent activity during the stale period. +# Limit to only `issues` or `pulls` +only: issues diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..4d6e3062 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,3 @@ +# Laradock Code of Conduct + +We follow the [Contributor Covenant](https://www.contributor-covenant.org/version/1/4/code-of-conduct) Code of Conduct. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..74868e19 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,3 @@ +# Thank you for your consideration + +Checkout out our [contribution guide](http://laradock.io/contributing). diff --git a/DOCUMENTATION/content/introduction/index.md b/DOCUMENTATION/content/introduction/index.md index 3c6437d7..5dcc92da 100644 --- a/DOCUMENTATION/content/introduction/index.md +++ b/DOCUMENTATION/content/introduction/index.md @@ -212,7 +212,7 @@ You can choose, which tools to install in your workspace container and other con ## Chat with us -You are welcome to join our chat room on Gitter. +Feel free to join us 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) @@ -349,19 +349,11 @@ Laradock exists thanks to all the people who contribute. Contribute and help us sustain the project. -Option 1: Donate directly to [Paypal](https://paypal.me/mzmmzz). - -[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/mzmmzz) - -Option 2: Support us via [BeerPay](https://beerpay.io/laradock/laradock). - -[![Beerpay](https://beerpay.io/laradock/laradock/badge.svg?style=flat)](https://beerpay.io/laradock/laradock) - -Option 3: Become a backer on [Open Collective](https://opencollective.com/laradock/contribute). - - - - +Option 1: Donate via [Paypal](https://paypal.me/mzmmzz). +
+Option 2: Become a Sponsor via [Github Sponsors](https://github.com/sponsors/Mahmoudz). +
+Option 3: Become a Sponsor/Backer via [Open Collective](https://opencollective.com/laradock/contribute). ## Sponsors @@ -423,5 +415,61 @@ Your logo will show up on the [github repository](https://github.com/laradock/la
For more info contact support@laradock.io. + +## Backers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- + diff --git a/DOCUMENTATION/themes/hugo-material-docs/layouts/index.html b/DOCUMENTATION/themes/hugo-material-docs/layouts/index.html index a7c9bc13..7f14e8b8 100644 --- a/DOCUMENTATION/themes/hugo-material-docs/layouts/index.html +++ b/DOCUMENTATION/themes/hugo-material-docs/layouts/index.html @@ -25,8 +25,6 @@
- -
@@ -39,7 +37,6 @@ (adsbygoogle = window.adsbygoogle || []).push({}); -



laradock logo diff --git a/DOCUMENTATION/themes/hugo-material-docs/layouts/partials/head.html b/DOCUMENTATION/themes/hugo-material-docs/layouts/partials/head.html index ea23eb84..09533958 100644 --- a/DOCUMENTATION/themes/hugo-material-docs/layouts/partials/head.html +++ b/DOCUMENTATION/themes/hugo-material-docs/layouts/partials/head.html @@ -70,27 +70,6 @@ {{ end }} - - {{ with .RSSLink }} diff --git a/README.md b/README.md index 53e29e0a..00071f6e 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,15 @@ --- + +## Chat with us + +Feel free to join us 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) + +--- + ## Awesome People Laradock exists thanks to all the people who contribute. @@ -162,17 +171,11 @@ Laradock exists thanks to all the people who contribute. Contribute and help us sustain the project. -Option 1: Donate directly to [Paypal](https://paypal.me/mzmmzz). - -[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/mzmmzz) - -Option 2: Support us via [BeerPay](https://beerpay.io/laradock/laradock). - -[![Beerpay](https://beerpay.io/laradock/laradock/badge.svg?style=flat)](https://beerpay.io/laradock/laradock) - -Option 3: Become a backer on [Open Collective](https://opencollective.com/laradock/contribute). - - +Option 1: Donate via [Paypal](https://paypal.me/mzmmzz). +
+Option 2: Become a Sponsor via [Github Sponsors](https://github.com/sponsors/Mahmoudz). +
+Option 3: Become a Sponsor/Backer via [Open Collective](https://opencollective.com/laradock/contribute). ## Sponsors @@ -233,6 +236,60 @@ Your logo will show up on the [github repository](https://github.com/laradock/la
For more info contact support@laradock.io. +## Backers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ## License -[MIT License](https://github.com/laradock/laradock/blob/master/LICENSE) +[MIT](https://github.com/laradock/laradock/blob/master/LICENSE) © Mahmoud Zalt From 5b33a2b319bfdaedfb97833f799d443fda7fe8b0 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Tue, 4 Feb 2020 16:53:14 +0100 Subject: [PATCH 032/295] Add variable to install YAML extension --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index dfc7a2e2..d72ffd4b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -287,6 +287,7 @@ services: - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - INSTALL_SOCKETS=${LARAVEL_HORIZON_INSTALL_SOCKETS} + - INSTALL_YAML=${LARAVEL_HORIZON_INSTALL_YAML} - INSTALL_CASSANDRA=${PHP_FPM_INSTALL_CASSANDRA} - INSTALL_PHPREDIS=${LARAVEL_HORIZON_INSTALL_PHPREDIS} - INSTALL_MONGO=${LARAVEL_HORIZON_INSTALL_MONGO} From c9e71c695ea38873dc12517d40a35935d9934286 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Tue, 4 Feb 2020 16:55:50 +0100 Subject: [PATCH 033/295] Add variable to install YAML extension --- env-example | 1 + 1 file changed, 1 insertion(+) diff --git a/env-example b/env-example index 720f94b9..e0ab2284 100644 --- a/env-example +++ b/env-example @@ -251,6 +251,7 @@ NGINX_SSL_PATH=./nginx/ssl/ ### LARAVEL_HORIZON ################################################ LARAVEL_HORIZON_INSTALL_SOCKETS=false +LARAVEL_HORIZON_INSTALL_YAML=false LARAVEL_HORIZON_INSTALL_PHPREDIS=true LARAVEL_HORIZON_INSTALL_MONGO=false LARAVEL_HORIZON_INSTALL_FFMPEG=false From 82a4b1db60f0aff8e97c61e843ee90a47a814c82 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Tue, 4 Feb 2020 16:57:14 +0100 Subject: [PATCH 034/295] Add code to install YAML extension --- laravel-horizon/Dockerfile | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 05a8ef24..c6cfadab 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -105,6 +105,23 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \ && docker-php-ext-enable mongodb \ ;fi +########################################################################### + # YAML: extension + ########################################################################### + + ARG INSTALL_YAML=false + + RUN if [ ${INSTALL_YAML} = true ]; then \ + apt-get install libyaml-dev -y ; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ + pecl install -a yaml-1.3.2; \ + else \ + pecl install yaml; \ + fi && \ + echo "extension=yaml.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini && \ + ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini \ + ;fi + ########################################################################### # PHP Memcached: From 72d11e4485b4d2e014ff97201aa03ac10be241b1 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Tue, 4 Feb 2020 17:00:01 +0100 Subject: [PATCH 035/295] fix indentations --- laravel-horizon/Dockerfile | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index c6cfadab..07a8f8d7 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -106,21 +106,21 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \ ;fi ########################################################################### - # YAML: extension - ########################################################################### +# YAML: extension +########################################################################### - ARG INSTALL_YAML=false +ARG INSTALL_YAML=false - RUN if [ ${INSTALL_YAML} = true ]; then \ - apt-get install libyaml-dev -y ; \ - if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - pecl install -a yaml-1.3.2; \ - else \ - pecl install yaml; \ - fi && \ - echo "extension=yaml.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini && \ - ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini \ - ;fi +RUN if [ ${INSTALL_YAML} = true ]; then \ + apt-get install libyaml-dev -y ; \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ + pecl install -a yaml-1.3.2; \ + else \ + pecl install yaml; \ + fi && \ + echo "extension=yaml.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini && \ + ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini \ +;fi ########################################################################### From 0a253a3d7e464c967c4b9cb179a4571ef07a2ebc Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Tue, 4 Feb 2020 20:33:41 +0100 Subject: [PATCH 036/295] Alpine commands used --- laravel-horizon/Dockerfile | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 07a8f8d7..49d04955 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -106,20 +106,21 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \ ;fi ########################################################################### -# YAML: extension +# YAML: extension ########################################################################### ARG INSTALL_YAML=false - + RUN if [ ${INSTALL_YAML} = true ]; then \ - apt-get install libyaml-dev -y ; \ - if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - pecl install -a yaml-1.3.2; \ - else \ - pecl install yaml; \ - fi && \ - echo "extension=yaml.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini && \ - ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/yaml.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/35-yaml.ini \ + apk --update add -U --no-cache --virtual temp yaml-dev \ + && apk add --no-cache yaml \ + && docker-php-source extract \ + && pecl channel-update pecl.php.net \ + && pecl install yaml \ + && docker-php-ext-enable yaml \ + && pecl clear-cache \ + && docker-php-source delete \ + && apk del temp \ ;fi From b26bcdb42a403d060ad366d90d8218f3af28e34c Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Wed, 5 Feb 2020 14:54:57 +0800 Subject: [PATCH 037/295] php 7.4 php-worker zip ext. --- docker-compose.yml | 2 +- php-worker/Dockerfile | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 0fa1a0d4..e352a29d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -248,7 +248,7 @@ services: context: ./php-worker args: - CHANGE_SOURCE=${CHANGE_SOURCE} - - PHP_VERSION=${PHP_VERSION} + - LARADOCK_PHP_VERSION=${PHP_VERSION} - PHALCON_VERSION=${PHALCON_VERSION} - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} - INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index d9733e5f..388940ef 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -4,11 +4,13 @@ #-------------------------------------------------------------------------- # -ARG PHP_VERSION=${PHP_VERSION} -FROM php:${PHP_VERSION}-alpine +ARG LARADOCK_PHP_VERSION +FROM php:${LARADOCK_PHP_VERSION}-alpine LABEL maintainer="Mahmoud Zalt " +ARG LARADOCK_PHP_VERSION + # If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env. ARG CHANGE_SOURCE=false @@ -65,9 +67,14 @@ RUN if [ ${INSTALL_PGSQL} = true ]; then \ # Install ZipArchive: ARG INSTALL_ZIP_ARCHIVE=false -RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \ +RUN set -eux; \ + if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \ apk --update add libzip-dev && \ - docker-php-ext-configure zip --with-libzip && \ + if [ ${LARADOCK_PHP_VERSION} = "7.3" ] || [ ${LARADOCK_PHP_VERSION} = "7.4" ]; then \ + docker-php-ext-configure zip; \ + else \ + docker-php-ext-configure zip --with-libzip; \ + fi && \ # Install the zip extension docker-php-ext-install zip \ ;fi @@ -75,7 +82,7 @@ RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \ # Install MySQL Client: ARG INSTALL_MYSQL_CLIENT=false RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \ - if [ ${PHP_VERSION} = "7.3" ]; then \ + if [ ${LARADOCK_PHP_VERSION} = "7.3" ]; then \ apk --update add default-mysql-client \ ;else \ apk --update add mysql-client \ From 63b3d2ff14b58ee582d1b462397082f6cde2ce48 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Thu, 6 Feb 2020 23:58:07 +0800 Subject: [PATCH 038/295] postgresql version can specify --- docker-compose.yml | 5 ++++- env-example | 1 + postgres/Dockerfile | 5 ++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 1aabe823..3c4f8439 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -469,7 +469,10 @@ services: ### PostgreSQL ########################################### postgres: - build: ./postgres + build: + context: ./postgres + args: + - POSTGRES_VERSION=${POSTGRES_VERSION} volumes: - ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data - ${POSTGRES_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d diff --git a/env-example b/env-example index fd14dc2e..dbbbdf55 100644 --- a/env-example +++ b/env-example @@ -316,6 +316,7 @@ MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d ### POSTGRES ############################################## +POSTGRES_VERSION=alpine POSTGRES_DB=default POSTGRES_USER=default POSTGRES_PASSWORD=secret diff --git a/postgres/Dockerfile b/postgres/Dockerfile index b5f121c5..67b5ea29 100644 --- a/postgres/Dockerfile +++ b/postgres/Dockerfile @@ -1,6 +1,5 @@ -FROM postgres:alpine - -LABEL maintainer="Ben M " +ARG POSTGRES_VERSION=alpine +FROM postgres:${POSTGRES_VERSION} CMD ["postgres"] From 66134095b1ca6092195adf0179c976369638e1a3 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Fri, 7 Feb 2020 22:13:23 +0100 Subject: [PATCH 039/295] update stale bot configuration to close staled issues in 21 days --- .github/stale.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/stale.yml b/.github/stale.yml index f3c36da7..dfadd790 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,21 +1,21 @@ -# Configuration for probot-stale - https://github.com/probot/stale +# Configuration for Github probot-stale - https://github.com/probot/stale # Number of days of inactivity before an issue becomes stale -daysUntilStale: 180 +daysUntilStale: 90 # Number of days of inactivity before a stale issue is closed -daysUntilClose: 90 +daysUntilClose: 21 # Issues with these labels will never be considered stale exemptLabels: - 'Type: Feature Request' # Label to use when marking an issue as stale -staleLabel: stale +staleLabel: Stale # Comment to post when marking an issue as stale. Set to `false` to disable markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. + Hi 👋 this issue has been automatically marked as `stale` 📌 because it has not had recent activity 😴. + It will be closed if no further activity occurs. Thank you for your contributions ❤️. # Comment to post when closing a stale issue. Set to `false` to disable closeComment: > - This issue has been automatically closed because it had not recent activity during the stale period. + Hi again 👋 we would like to inform you that this issue has been automatically `closed` 🔒 because it had not recent activity during the `stale` period. + We really really appreciate your contributions, and looking forward for more in the future 🎈. # Limit to only `issues` or `pulls` only: issues From 29def5f0b4dd675838ee5302ee47edd874be850f Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Fri, 7 Feb 2020 23:10:44 +0100 Subject: [PATCH 040/295] add some missing social media meta tags to the website --- .../layouts/partials/head.html | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/DOCUMENTATION/themes/hugo-material-docs/layouts/partials/head.html b/DOCUMENTATION/themes/hugo-material-docs/layouts/partials/head.html index 09533958..e890c0a2 100644 --- a/DOCUMENTATION/themes/hugo-material-docs/layouts/partials/head.html +++ b/DOCUMENTATION/themes/hugo-material-docs/layouts/partials/head.html @@ -12,17 +12,23 @@ {{ .Title }}{{ if not .IsHome }} - {{ .Site.Title }}{{ end }} {{ .Hugo.Generator }} - {{ with .Site.Params.description }} - - {{ end }} + {{ with .Site.Params.description }}{{ end }} - {{ with .Site.Params.author }} - - {{ end }} + {{ with .Site.Params.author }}{{ end }} + + {{ with .Site.Title }}{{ end }} + {{ with .Site.Params.description }}{{ end }} {{ with .Site.Title }}{{ end }} {{ with .Site.Params.logo }}{{ end }} + + + + {{ with .Site.Title }}{{ end }} + {{ with .Site.Params.description }}{{ end }} + {{ with .Site.Params.logo }}{{ end }} + {{ with .Site.Title }}{{ end }} From b2ae5f6d44533f057a296f038228aed330a59a25 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 11 Feb 2020 18:41:19 +0800 Subject: [PATCH 041/295] Arrange (#2499) * unify php verson variable * CASSANDRA move together * unify all php base container --- docker-compose.yml | 2 +- laravel-horizon/Dockerfile | 18 ++++++++++-------- php-fpm/Dockerfile | 9 +-------- workspace/Dockerfile | 1 - 4 files changed, 12 insertions(+), 18 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 3c4f8439..c3250a6a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -282,7 +282,7 @@ services: context: ./laravel-horizon args: - CHANGE_SOURCE=${CHANGE_SOURCE} - - PHP_VERSION=${PHP_VERSION} + - LARADOCK_PHP_VERSION=${PHP_VERSION} - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL} - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 49d04955..696a1606 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -4,11 +4,13 @@ #-------------------------------------------------------------------------- # -ARG PHP_VERSION=${PHP_VERSION} -FROM php:${PHP_VERSION}-alpine +ARG LARADOCK_PHP_VERSION +FROM php:${LARADOCK_PHP_VERSION}-alpine LABEL maintainer="Mahmoud Zalt " +ARG LARADOCK_PHP_VERSION + # If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env. ARG CHANGE_SOURCE=false @@ -63,12 +65,6 @@ RUN if [ ${INSTALL_PGSQL} = true ]; then \ && docker-php-ext-install pdo_pgsql \ ;fi -# Install Cassandra drivers: -ARG INSTALL_CASSANDRA=false -RUN if [ ${INSTALL_CASSANDRA} = true ]; then \ - apk --update add cassandra-cpp-driver \ - ;fi - # Install PhpRedis package: ARG INSTALL_PHPREDIS=false RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ @@ -84,6 +80,12 @@ RUN if [ ${INSTALL_FFMPEG} = true ]; then \ apk add ffmpeg \ ;fi +# Install Cassandra drivers: +ARG INSTALL_CASSANDRA=false +RUN if [ ${INSTALL_CASSANDRA} = true ]; then \ + apk --update add cassandra-cpp-driver \ + ;fi + WORKDIR /usr/src RUN if [ ${INSTALL_CASSANDRA} = true ]; then \ git clone https://github.com/datastax/php-driver.git \ diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 1d6a8bfe..a36aaf5c 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -13,7 +13,6 @@ # ARG LARADOCK_PHP_VERSION - FROM laradock/php-fpm:2.7-${LARADOCK_PHP_VERSION} LABEL maintainer="Mahmoud Zalt " @@ -194,7 +193,6 @@ RUN if [ ${INSTALL_PCOV} = true ]; then \ ;fi \ ;fi - ########################################################################### # Phpdbg: ########################################################################### @@ -330,7 +328,7 @@ ARG INSTALL_AMQP=false RUN if [ ${INSTALL_AMQP} = true ]; then \ # download and install manually, to make sure it's compatible with ampq installed by pecl later # install cmake first - apt-get update && apt-get -y install cmake && \ + apt-get -y install cmake && \ curl -L -o /tmp/rabbitmq-c.tar.gz https://github.com/alanxz/rabbitmq-c/archive/master.tar.gz && \ mkdir -p rabbitmq-c && \ tar -C rabbitmq-c -zxvf /tmp/rabbitmq-c.tar.gz --strip 1 && \ @@ -352,7 +350,6 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \ ARG INSTALL_GEARMAN=false RUN if [ ${INSTALL_GEARMAN} = true ]; then \ - apt-get update && \ apt-get -y install libgearman-dev && \ cd /tmp && \ curl -L https://github.com/wcgallego/pecl-gearman/archive/gearman-2.0.5.zip -O && \ @@ -799,7 +796,6 @@ USER root ARG INSTALL_MYSQL_CLIENT=false RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \ - apt-get update -yqq && \ if [ ${LARADOCK_PHP_VERSION} = "7.3" ]; then \ apt-get -y install default-mysql-client \ ;else \ @@ -816,7 +812,6 @@ USER root ARG INSTALL_PING=false RUN if [ ${INSTALL_PING} = true ]; then \ - apt-get update -yqq && \ apt-get -y install inetutils-ping \ ;fi @@ -829,7 +824,6 @@ USER root ARG INSTALL_SSHPASS=false RUN if [ ${INSTALL_SSHPASS} = true ]; then \ - apt-get update -yqq && \ apt-get -y install sshpass \ ;fi @@ -842,7 +836,6 @@ USER root ARG INSTALL_FFMPEG=false RUN if [ ${INSTALL_FFMPEG} = true ]; then \ - apt-get update -yqq && \ apt-get -y install ffmpeg \ ;fi diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 6223e0a2..0fa66a47 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -13,7 +13,6 @@ # ARG LARADOCK_PHP_VERSION - FROM laradock/workspace:2.6.1-${LARADOCK_PHP_VERSION} LABEL maintainer="Mahmoud Zalt " From f8b7404263d60b597995880a5e7bd2e6221ebf8f Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Tue, 11 Feb 2020 23:56:58 +0800 Subject: [PATCH 042/295] php ext bz2 (#2500) * php ext bz2 * fix typo * fix php-fpm bz2 ext * fix horizon bz2 ext --- docker-compose.yml | 4 ++++ env-example | 4 ++++ laravel-horizon/Dockerfile | 7 +++++++ php-fpm/Dockerfile | 10 ++++++++++ php-worker/Dockerfile | 7 +++++++ workspace/Dockerfile | 9 +++++++++ 6 files changed, 41 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index c3250a6a..72e8645f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -64,6 +64,7 @@ services: - LARADOCK_PHP_VERSION=${PHP_VERSION} - LARADOCK_PHALCON_VERSION=${PHALCON_VERSION} - INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION} + - INSTALL_BZ2=${WORKSPACE_INSTALL_BZ2} - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} - INSTALL_PCOV=${WORKSPACE_INSTALL_PCOV} - INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG} @@ -167,6 +168,7 @@ services: - CHANGE_SOURCE=${CHANGE_SOURCE} - LARADOCK_PHP_VERSION=${PHP_VERSION} - LARADOCK_PHALCON_VERSION=${PHALCON_VERSION} + - INSTALL_BZ2=${PHP_FPM_INSTALL_BZ2} - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG} - INSTALL_PCOV=${PHP_FPM_INSTALL_PCOV} - INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG} @@ -250,6 +252,7 @@ services: - CHANGE_SOURCE=${CHANGE_SOURCE} - LARADOCK_PHP_VERSION=${PHP_VERSION} - PHALCON_VERSION=${PHALCON_VERSION} + - INSTALL_BZ2=${PHP_WORKER_INSTALL_BZ2} - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} - INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} - INSTALL_PHALCON=${PHP_WORKER_INSTALL_PHALCON} @@ -283,6 +286,7 @@ services: args: - CHANGE_SOURCE=${CHANGE_SOURCE} - LARADOCK_PHP_VERSION=${PHP_VERSION} + - INSTALL_BZ2=${LARAVEL_HORIZON_INSTALL_BZ2} - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL} - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} diff --git a/env-example b/env-example index dbbbdf55..05358cf2 100644 --- a/env-example +++ b/env-example @@ -100,6 +100,7 @@ WORKSPACE_INSTALL_NPM_ANGULAR_CLI=false WORKSPACE_INSTALL_PHPREDIS=true WORKSPACE_INSTALL_WORKSPACE_SSH=false WORKSPACE_INSTALL_SUBVERSION=false +WORKSPACE_INSTALL_BZ2=false WORKSPACE_INSTALL_XDEBUG=false WORKSPACE_INSTALL_PCOV=false WORKSPACE_INSTALL_PHPDBG=false @@ -169,6 +170,7 @@ PHP_FPM_INSTALL_OPCACHE=true PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true PHP_FPM_INSTALL_PHPREDIS=true PHP_FPM_INSTALL_MEMCACHED=false +PHP_FPM_INSTALL_BZ2=false PHP_FPM_INSTALL_XDEBUG=false PHP_FPM_INSTALL_PCOV=false PHP_FPM_INSTALL_XHPROF=false @@ -219,6 +221,7 @@ PHP_FPM_PGID=1000 ### PHP_WORKER ############################################ +PHP_WORKER_INSTALL_BZ2=false PHP_WORKER_INSTALL_PGSQL=false PHP_WORKER_INSTALL_BCMATH=false PHP_WORKER_INSTALL_PHALCON=false @@ -250,6 +253,7 @@ NGINX_SSL_PATH=./nginx/ssl/ ### LARAVEL_HORIZON ################################################ +LARAVEL_HORIZON_INSTALL_BZ2=false LARAVEL_HORIZON_INSTALL_SOCKETS=false LARAVEL_HORIZON_INSTALL_YAML=false LARAVEL_HORIZON_INSTALL_PHPREDIS=true diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 696a1606..965cf261 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -46,6 +46,13 @@ ENV PGID ${PGID} RUN addgroup -g ${PGID} laradock && \ adduser -D -G laradock -u ${PUID} laradock +#Install BZ2: +ARG INSTALL_BZ2=false +RUN if [ ${INSTALL_BZ2} = true ]; then \ + apk --update add bzip2-dev; \ + docker-php-ext-install bz2 \ +;fi + #Install BCMath package: ARG INSTALL_BCMATH=false RUN if [ ${INSTALL_BCMATH} = true ]; then \ diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index a36aaf5c..58bbe47d 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -70,6 +70,16 @@ RUN set -xe; \ # - INSTALL_SOAP=true # +########################################################################### +# BZ2: +########################################################################### + +ARG INSTALL_BZ2=false +RUN if [ ${INSTALL_BZ2} = true ]; then \ + apt-get -y install libbz2-dev; \ + docker-php-ext-install bz2 \ +;fi + ########################################################################### # SSH2: ########################################################################### diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index 388940ef..f55ae45b 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -46,6 +46,13 @@ ENV PGID ${PGID} RUN addgroup -g ${PGID} laradock && \ adduser -D -G laradock -u ${PUID} laradock +#Install BZ2: +ARG INSTALL_BZ2=false +RUN if [ ${INSTALL_BZ2} = true ]; then \ + apk --update add bzip2-dev; \ + docker-php-ext-install bz2; \ +fi + #Install SOAP package: ARG INSTALL_SOAP=false RUN if [ ${INSTALL_SOAP} = true ]; then \ diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 0fa66a47..553e0ecd 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -232,6 +232,15 @@ RUN if [ ${INSTALL_WP_CLI} = true ]; then \ chmod +x /usr/local/bin/wp \ ;fi +########################################################################### +# BZ2: +########################################################################### + +ARG INSTALL_BZ2=false +RUN if [ ${INSTALL_BZ2} = true ]; then \ + apt-get -y install php${LARADOCK_PHP_VERSION}-bz2 \ +;fi + ########################################################################### # SSH2: ########################################################################### From 3fe18368bd7b0a1596bd6efaa3ec30f8be17d09d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?La=C3=A9rcio=20de=20Sousa?= Date: Tue, 11 Feb 2020 14:58:08 -0300 Subject: [PATCH 043/295] Added option to map vue-cli ports from workspace container --- DOCUMENTATION/content/documentation/index.md | 16 +++++++++++++--- docker-compose.yml | 2 ++ env-example | 2 ++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index 91127676..5fbe085f 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -560,8 +560,14 @@ composer update ```bash phpunit ``` - - +``` +vue serve +``` +(browse the results at `http://localhost:[WORKSPACE_VUE_CLI_SERVE_HOST_PORT]`) +``` +vue ui +``` +(browse the results at `http://localhost:[WORKSPACE_VUE_CLI_UI_HOST_PORT]`) @@ -1890,7 +1896,11 @@ To install NPM VUE CLI in the Workspace container 2 - Search for the `WORKSPACE_INSTALL_NPM_VUE_CLI` argument under the Workspace Container and set it to `true` -3 - Re-build the container `docker-compose build workspace` +3 - Change `vue serve` port using `WORKSPACE_VUE_CLI_SERVE_HOST_PORT` if you wish to (default value is 8080) + +4 - Change `vue ui` port using `WORKSPACE_VUE_CLI_UI_HOST_PORT` if you wish to (default value is 8001) + +5 - Re-build the container `docker-compose build workspace` diff --git a/docker-compose.yml b/docker-compose.yml index 72e8645f..084aff4f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -150,6 +150,8 @@ services: - "dockerhost:${DOCKER_HOST_IP}" ports: - "${WORKSPACE_SSH_PORT}:22" + - "${WORKSPACE_VUE_CLI_SERVE_HOST_PORT}:8080" + - "${WORKSPACE_VUE_CLI_UI_HOST_PORT}:8000" tty: true environment: - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} diff --git a/env-example b/env-example index 05358cf2..2503842a 100644 --- a/env-example +++ b/env-example @@ -159,6 +159,8 @@ WORKSPACE_INSTALL_FFMPEG=false WORKSPACE_INSTALL_GNU_PARALLEL=false WORKSPACE_INSTALL_AST=true WORKSPACE_AST_VERSION=1.0.3 +WORKSPACE_VUE_CLI_SERVE_HOST_PORT=8080 +WORKSPACE_VUE_CLI_UI_HOST_PORT=8001 ### PHP_FPM ############################################### From 53d13f23f7024a91f2470d8c7f72a40cc3d6f28e Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Wed, 12 Feb 2020 18:23:22 +0800 Subject: [PATCH 044/295] horizon gmp ext --- docker-compose.yml | 7 ++++--- env-example | 7 ++++--- laravel-horizon/Dockerfile | 7 +++++++ php-fpm/Dockerfile | 30 +++++++++++++++--------------- php-worker/Dockerfile | 14 +++++++------- workspace/Dockerfile | 28 ++++++++++++++-------------- 6 files changed, 51 insertions(+), 42 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 22708518..79c31cc6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -65,12 +65,12 @@ services: - LARADOCK_PHALCON_VERSION=${PHALCON_VERSION} - INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION} - INSTALL_BZ2=${WORKSPACE_INSTALL_BZ2} + - INSTALL_GMP=${WORKSPACE_INSTALL_GMP} - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG} - INSTALL_PCOV=${WORKSPACE_INSTALL_PCOV} - INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG} - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE} - INSTALL_SSH2=${WORKSPACE_INSTALL_SSH2} - - INSTALL_GMP=${WORKSPACE_INSTALL_GMP} - INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP} - INSTALL_XSL=${WORKSPACE_INSTALL_XSL} - INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP} @@ -170,6 +170,7 @@ services: - LARADOCK_PHP_VERSION=${PHP_VERSION} - LARADOCK_PHALCON_VERSION=${PHALCON_VERSION} - INSTALL_BZ2=${PHP_FPM_INSTALL_BZ2} + - INSTALL_GMP=${PHP_FPM_INSTALL_GMP} - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG} - INSTALL_PCOV=${PHP_FPM_INSTALL_PCOV} - INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG} @@ -185,7 +186,6 @@ services: - INSTALL_GEARMAN=${PHP_FPM_INSTALL_GEARMAN} - INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL} - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - - INSTALL_GMP=${PHP_FPM_INSTALL_GMP} - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE} @@ -254,6 +254,7 @@ services: - LARADOCK_PHP_VERSION=${PHP_VERSION} - PHALCON_VERSION=${PHALCON_VERSION} - INSTALL_BZ2=${PHP_WORKER_INSTALL_BZ2} + - INSTALL_GMP=${PHP_WORKER_INSTALL_GMP} - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} - INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} - INSTALL_PHALCON=${PHP_WORKER_INSTALL_PHALCON} @@ -267,7 +268,6 @@ services: - INSTALL_SWOOLE=${PHP_WORKER_INSTALL_SWOOLE} - INSTALL_TAINT=${PHP_WORKER_INSTALL_TAINT} - INSTALL_FFMPEG=${PHP_WORKER_INSTALL_FFMPEG} - - INSTALL_GMP=${PHP_WORKER_INSTALL_GMP} - INSTALL_REDIS=${PHP_WORKER_INSTALL_REDIS} - PUID=${PHP_WORKER_PUID} - PGID=${PHP_WORKER_PGID} @@ -288,6 +288,7 @@ services: - CHANGE_SOURCE=${CHANGE_SOURCE} - LARADOCK_PHP_VERSION=${PHP_VERSION} - INSTALL_BZ2=${LARAVEL_HORIZON_INSTALL_BZ2} + - INSTALL_GMP=${LARAVEL_HORIZON_INSTALL_GMP} - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL} - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} diff --git a/env-example b/env-example index 0f7127d4..e6cb581a 100644 --- a/env-example +++ b/env-example @@ -101,12 +101,12 @@ WORKSPACE_INSTALL_PHPREDIS=true WORKSPACE_INSTALL_WORKSPACE_SSH=false WORKSPACE_INSTALL_SUBVERSION=false WORKSPACE_INSTALL_BZ2=false +WORKSPACE_INSTALL_GMP=false WORKSPACE_INSTALL_XDEBUG=false WORKSPACE_INSTALL_PCOV=false WORKSPACE_INSTALL_PHPDBG=false WORKSPACE_INSTALL_SSH2=false WORKSPACE_INSTALL_LDAP=false -WORKSPACE_INSTALL_GMP=false WORKSPACE_INSTALL_SOAP=false WORKSPACE_INSTALL_XSL=false WORKSPACE_INSTALL_SMB=false @@ -172,6 +172,7 @@ PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true PHP_FPM_INSTALL_PHPREDIS=true PHP_FPM_INSTALL_MEMCACHED=false PHP_FPM_INSTALL_BZ2=false +PHP_FPM_INSTALL_GMP=false PHP_FPM_INSTALL_XDEBUG=false PHP_FPM_INSTALL_PCOV=false PHP_FPM_INSTALL_XHPROF=false @@ -186,7 +187,6 @@ PHP_FPM_INSTALL_MSSQL=false PHP_FPM_INSTALL_SSH2=false PHP_FPM_INSTALL_SOAP=false PHP_FPM_INSTALL_XSL=false -PHP_FPM_INSTALL_GMP=false PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_AEROSPIKE=false PHP_FPM_INSTALL_OCI8=false @@ -223,6 +223,7 @@ PHP_FPM_PGID=1000 ### PHP_WORKER ############################################ PHP_WORKER_INSTALL_BZ2=false +PHP_WORKER_INSTALL_GMP=false PHP_WORKER_INSTALL_PGSQL=false PHP_WORKER_INSTALL_BCMATH=false PHP_WORKER_INSTALL_PHALCON=false @@ -234,7 +235,6 @@ PHP_WORKER_INSTALL_GHOSTSCRIPT=false PHP_WORKER_INSTALL_SWOOLE=false PHP_WORKER_INSTALL_TAINT=false PHP_WORKER_INSTALL_FFMPEG=false -PHP_WORKER_INSTALL_GMP=false PHP_WORKER_INSTALL_CASSANDRA=false PHP_WORKER_INSTALL_GEARMAN=false PHP_WORKER_INSTALL_REDIS=false @@ -255,6 +255,7 @@ NGINX_SSL_PATH=./nginx/ssl/ ### LARAVEL_HORIZON ################################################ LARAVEL_HORIZON_INSTALL_BZ2=false +LARAVEL_HORIZON_INSTALL_GMP=false LARAVEL_HORIZON_INSTALL_SOCKETS=false LARAVEL_HORIZON_INSTALL_YAML=false LARAVEL_HORIZON_INSTALL_PHPREDIS=true diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index 965cf261..e8ca7abd 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -53,6 +53,13 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \ docker-php-ext-install bz2 \ ;fi +#Install GMP package: +ARG INSTALL_GMP=false +RUN if [ ${INSTALL_GMP} = true ]; then \ + apk add --update --no-cache gmp gmp-dev; \ + docker-php-ext-install gmp \ +;fi + #Install BCMath package: ARG INSTALL_BCMATH=false RUN if [ ${INSTALL_BCMATH} = true ]; then \ diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 58bbe47d..b3246ed9 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -80,6 +80,21 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \ docker-php-ext-install bz2 \ ;fi +########################################################################### +# GMP (GNU Multiple Precision): +########################################################################### + +ARG INSTALL_GMP=false + +RUN if [ ${INSTALL_GMP} = true ]; then \ + # Install the GMP extension + apt-get install -y libgmp-dev && \ + if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ + ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \ + ;fi && \ + docker-php-ext-install gmp \ +;fi + ########################################################################### # SSH2: ########################################################################### @@ -397,21 +412,6 @@ RUN if [ ${INSTALL_BCMATH} = true ]; then \ docker-php-ext-install bcmath \ ;fi -########################################################################### -# GMP (GNU Multiple Precision): -########################################################################### - -ARG INSTALL_GMP=false - -RUN if [ ${INSTALL_GMP} = true ]; then \ - # Install the GMP extension - apt-get install -y libgmp-dev && \ - if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ - ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \ - ;fi && \ - docker-php-ext-install gmp \ -;fi - ########################################################################### # PHP Memcached: ########################################################################### diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index f55ae45b..47170541 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -53,6 +53,13 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \ docker-php-ext-install bz2; \ fi +#Install GMP package: +ARG INSTALL_GMP=false +RUN if [ ${INSTALL_GMP} = true ]; then \ + apk add --update --no-cache gmp gmp-dev \ + && docker-php-ext-install gmp \ +;fi + #Install SOAP package: ARG INSTALL_SOAP=false RUN if [ ${INSTALL_SOAP} = true ]; then \ @@ -162,13 +169,6 @@ RUN if [ $INSTALL_GHOSTSCRIPT = true ]; then \ apk --update add ghostscript \ ;fi -#Install GMP package: -ARG INSTALL_GMP=false -RUN if [ ${INSTALL_GMP} = true ]; then \ - apk add --update --no-cache gmp gmp-dev \ - && docker-php-ext-install gmp \ -;fi - # Install Redis package: ARG INSTALL_REDIS=false RUN if [ ${INSTALL_REDIS} = true ]; then \ diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 833eaeaf..267cc16d 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -242,20 +242,7 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \ ;fi ########################################################################### -# SSH2: -########################################################################### - -USER root - -ARG INSTALL_SSH2=false - -RUN if [ ${INSTALL_SSH2} = true ]; then \ - # Install the PHP SSH2 extension - apt-get -y install libssh2-1-dev php${LARADOCK_PHP_VERSION}-ssh2 \ -;fi - -########################################################################### -# GMP: +# GMP (GNU Multiple Precision): ########################################################################### USER root @@ -268,6 +255,19 @@ RUN if [ ${INSTALL_GMP} = true ]; then \ apt-get -y install php${LARADOCK_PHP_VERSION}-gmp \ ;fi +########################################################################### +# SSH2: +########################################################################### + +USER root + +ARG INSTALL_SSH2=false + +RUN if [ ${INSTALL_SSH2} = true ]; then \ + # Install the PHP SSH2 extension + apt-get -y install libssh2-1-dev php${LARADOCK_PHP_VERSION}-ssh2 \ +;fi + ########################################################################### # SOAP: ########################################################################### From 8e6a2a4f3c813fb0ef11b01dbdce3d021c68dc48 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Thu, 13 Feb 2020 23:24:07 +0100 Subject: [PATCH 045/295] Update docker-in-docker (dind) - not working with 18.09+ version --- docker-compose.yml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 79c31cc6..2d0c750f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -49,7 +49,7 @@ volumes: driver: ${VOLUMES_DRIVER} graylog: driver: ${VOLUMES_DRIVER} - dind: + docker-in-docker: driver: ${VOLUMES_DRIVER} services: @@ -154,7 +154,10 @@ services: tty: true environment: - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} - - DOCKER_HOST=tcp://docker-in-docker:2375 + - DOCKER_HOST=tcp://docker-in-docker:2376 + - DOCKER_TLS_VERIFY=1 + - DOCKER_TLS_CERTDIR=/certs + - DOCKER_CERT_PATH=/certs/client networks: - frontend - backend @@ -230,13 +233,17 @@ services: volumes: - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} + - docker-in-docker:/certs/client expose: - "9000" extra_hosts: - "dockerhost:${DOCKER_HOST_IP}" environment: - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} - - DOCKER_HOST=tcp://docker-in-docker:2375 + - DOCKER_HOST=tcp://docker-in-docker:2376 + - DOCKER_TLS_VERIFY=1 + - DOCKER_TLS_CERTDIR=/certs + - DOCKER_CERT_PATH=/certs/client - FAKETIME=${PHP_FPM_FAKETIME} depends_on: - workspace @@ -1268,11 +1275,13 @@ services: ### Docker-in-Docker ################################################ docker-in-docker: - image: docker:dind + image: docker:19.03-dind + environment: + DOCKER_TLS_SAN: DNS:docker-in-docker privileged: true volumes: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER} - - ${DATA_PATH_HOST}/dind:/var/lib/docker + - docker-in-docker:/certs/client expose: - 2375 networks: From 3124ad8d7679bd47c8f7c58a156ccf15457cb8c7 Mon Sep 17 00:00:00 2001 From: Valentino Lauciani Date: Thu, 13 Feb 2020 23:26:33 +0100 Subject: [PATCH 046/295] Update docker-compose.yml --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 2d0c750f..f73640b8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -146,6 +146,7 @@ services: - no_proxy volumes: - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG} + - docker-in-docker:/certs/client - ./php-worker/supervisord.d:/etc/supervisord.d extra_hosts: - "dockerhost:${DOCKER_HOST_IP}" From ab4e06f270ae83d6e41702b2b652a980b12816ce Mon Sep 17 00:00:00 2001 From: Jordy Schreuders <3071062+99linesofcode@users.noreply.github.com> Date: Fri, 14 Feb 2020 15:15:04 +0100 Subject: [PATCH 047/295] Default to host.docker.internal --- php-fpm/xdebug.ini | 5 ++--- workspace/xdebug.ini | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/php-fpm/xdebug.ini b/php-fpm/xdebug.ini index c3f32ece..ba50bb85 100644 --- a/php-fpm/xdebug.ini +++ b/php-fpm/xdebug.ini @@ -1,7 +1,7 @@ ; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini) -; xdebug.remote_host=dockerhost -xdebug.remote_connect_back=1 +xdebug.remote_host="host.docker.internal" +xdebug.remote_connect_back=0 xdebug.remote_port=9000 xdebug.idekey=PHPSTORM @@ -17,4 +17,3 @@ xdebug.remote_mode=req xdebug.var_display_max_children=-1 xdebug.var_display_max_data=-1 xdebug.var_display_max_depth=-1 - diff --git a/workspace/xdebug.ini b/workspace/xdebug.ini index c3f32ece..ba50bb85 100644 --- a/workspace/xdebug.ini +++ b/workspace/xdebug.ini @@ -1,7 +1,7 @@ ; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini) -; xdebug.remote_host=dockerhost -xdebug.remote_connect_back=1 +xdebug.remote_host="host.docker.internal" +xdebug.remote_connect_back=0 xdebug.remote_port=9000 xdebug.idekey=PHPSTORM @@ -17,4 +17,3 @@ xdebug.remote_mode=req xdebug.var_display_max_children=-1 xdebug.var_display_max_data=-1 xdebug.var_display_max_depth=-1 - From 6eeb0c838864dd3bbbae399c62ad47cbac84fb93 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Tue, 18 Feb 2020 09:56:45 +0800 Subject: [PATCH 048/295] xdebug drop support php7.0 --- php-fpm/Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index 85f30b9c..fbe8a3ac 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -189,7 +189,11 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ pecl install xdebug-2.5.5; \ else \ - pecl install xdebug; \ + if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \ + pecl install xdebug-2.9.0; \ + else \ + pecl install xdebug; \ + fi \ fi && \ docker-php-ext-enable xdebug \ ;fi From 884e481c0c874f8d6748da1cbd9bf7e347db8b67 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Tue, 18 Feb 2020 13:45:23 +0800 Subject: [PATCH 049/295] fix php7.4 ssh2 extension. --- php-fpm/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index fbe8a3ac..b89af535 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -107,7 +107,7 @@ RUN if [ ${INSTALL_SSH2} = true ]; then \ if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \ pecl install -a ssh2-0.13; \ else \ - pecl install -a ssh2-1.1.2; \ + pecl install -a ssh2-1.2; \ fi && \ docker-php-ext-enable ssh2 \ ;fi From 8f411417f5ab7ad17c46ca27ee25cf001c25f317 Mon Sep 17 00:00:00 2001 From: metalcamp <21967668+metalcamp@users.noreply.github.com> Date: Tue, 18 Feb 2020 19:37:00 +0100 Subject: [PATCH 050/295] fix: use native mysql password as default auth fixes connection refused errors described here: https://github.com/laradock/laradock/issues/1752 https://github.com/laradock/laradock/issues/2105 --- mysql/my.cnf | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql/my.cnf b/mysql/my.cnf index e03ccf88..1a6f2362 100644 --- a/mysql/my.cnf +++ b/mysql/my.cnf @@ -8,3 +8,4 @@ [mysqld] sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" character-set-server=utf8 +default-authentication-plugin=mysql_native_password From cb574599ca82b1609dddd4fec108e031a8adc11d Mon Sep 17 00:00:00 2001 From: Mario Kranjec Date: Wed, 19 Feb 2020 12:44:06 +0100 Subject: [PATCH 051/295] fix: mysql-client has no installation candidate --- php-fpm/Dockerfile | 4 ---- php-worker/Dockerfile | 4 ---- 2 files changed, 8 deletions(-) diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index b89af535..c638e689 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -810,11 +810,7 @@ USER root ARG INSTALL_MYSQL_CLIENT=false RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \ - if [ ${LARADOCK_PHP_VERSION} = "7.3" ]; then \ apt-get -y install default-mysql-client \ - ;else \ - apt-get -y install mysql-client \ - ;fi \ ;fi ########################################################################### diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index 47170541..5b2319e8 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -96,11 +96,7 @@ RUN set -eux; \ # Install MySQL Client: ARG INSTALL_MYSQL_CLIENT=false RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \ - if [ ${LARADOCK_PHP_VERSION} = "7.3" ]; then \ apk --update add default-mysql-client \ - ;else \ - apk --update add mysql-client \ - ;fi \ ;fi # Install FFMPEG: From 51ff09c18706eb0dd0d8663c940c38697d89482f Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Mon, 24 Feb 2020 13:31:52 +0800 Subject: [PATCH 052/295] horizon zip ext. --- docker-compose.yml | 1 + env-example | 1 + laravel-horizon/Dockerfile | 14 ++++++++++++++ 3 files changed, 16 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index a0266f87..5e5e25cc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -302,6 +302,7 @@ services: - INSTALL_BZ2=${LARAVEL_HORIZON_INSTALL_BZ2} - INSTALL_GMP=${LARAVEL_HORIZON_INSTALL_GMP} - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL} + - INSTALL_ZIP_ARCHIVE=${LARAVEL_HORIZON_INSTALL_ZIP_ARCHIVE} - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED} - INSTALL_SOCKETS=${LARAVEL_HORIZON_INSTALL_SOCKETS} diff --git a/env-example b/env-example index 89e4a10f..27b1bf4c 100644 --- a/env-example +++ b/env-example @@ -262,6 +262,7 @@ LARAVEL_HORIZON_INSTALL_BZ2=false LARAVEL_HORIZON_INSTALL_GMP=false LARAVEL_HORIZON_INSTALL_SOCKETS=false LARAVEL_HORIZON_INSTALL_YAML=false +LARAVEL_HORIZON_INSTALL_ZIP_ARCHIVE=false LARAVEL_HORIZON_INSTALL_PHPREDIS=true LARAVEL_HORIZON_INSTALL_MONGO=false LARAVEL_HORIZON_INSTALL_FFMPEG=false diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index e8ca7abd..b8797ff4 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -79,6 +79,20 @@ RUN if [ ${INSTALL_PGSQL} = true ]; then \ && docker-php-ext-install pdo_pgsql \ ;fi +# Install ZipArchive: +ARG INSTALL_ZIP_ARCHIVE=false +RUN set -eux; \ + if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \ + apk --update add libzip-dev && \ + if [ ${LARADOCK_PHP_VERSION} = "7.3" ] || [ ${LARADOCK_PHP_VERSION} = "7.4" ]; then \ + docker-php-ext-configure zip; \ + else \ + docker-php-ext-configure zip --with-libzip; \ + fi && \ + # Install the zip extension + docker-php-ext-install zip \ +;fi + # Install PhpRedis package: ARG INSTALL_PHPREDIS=false RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ From 18ca604537913e3a5fa0dfeac80e2a122ac6a576 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Mon, 24 Feb 2020 13:53:54 +0800 Subject: [PATCH 053/295] php worker horizon support gd ext. --- docker-compose.yml | 2 ++ env-example | 2 ++ laravel-horizon/Dockerfile | 7 +++++++ php-worker/Dockerfile | 7 +++++++ 4 files changed, 18 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index a0266f87..5c5da362 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -266,6 +266,7 @@ services: - LARADOCK_PHP_VERSION=${PHP_VERSION} - PHALCON_VERSION=${PHALCON_VERSION} - INSTALL_BZ2=${PHP_WORKER_INSTALL_BZ2} + - INSTALL_GD=${PHP_WORKER_INSTALL_GD} - INSTALL_GMP=${PHP_WORKER_INSTALL_GMP} - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} - INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} @@ -300,6 +301,7 @@ services: - CHANGE_SOURCE=${CHANGE_SOURCE} - LARADOCK_PHP_VERSION=${PHP_VERSION} - INSTALL_BZ2=${LARAVEL_HORIZON_INSTALL_BZ2} + - INSTALL_GD=${LARAVEL_HORIZON_INSTALL_GD} - INSTALL_GMP=${LARAVEL_HORIZON_INSTALL_GMP} - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL} - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} diff --git a/env-example b/env-example index 89e4a10f..25695870 100644 --- a/env-example +++ b/env-example @@ -227,6 +227,7 @@ PHP_FPM_PGID=1000 ### PHP_WORKER ############################################ PHP_WORKER_INSTALL_BZ2=false +PHP_WORKER_INSTALL_GD=false PHP_WORKER_INSTALL_GMP=false PHP_WORKER_INSTALL_PGSQL=false PHP_WORKER_INSTALL_BCMATH=false @@ -259,6 +260,7 @@ NGINX_SSL_PATH=./nginx/ssl/ ### LARAVEL_HORIZON ################################################ LARAVEL_HORIZON_INSTALL_BZ2=false +LARAVEL_HORIZON_INSTALL_GD=false LARAVEL_HORIZON_INSTALL_GMP=false LARAVEL_HORIZON_INSTALL_SOCKETS=false LARAVEL_HORIZON_INSTALL_YAML=false diff --git a/laravel-horizon/Dockerfile b/laravel-horizon/Dockerfile index e8ca7abd..bb06711a 100644 --- a/laravel-horizon/Dockerfile +++ b/laravel-horizon/Dockerfile @@ -53,6 +53,13 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \ docker-php-ext-install bz2 \ ;fi +#Install GD package: +ARG INSTALL_GD=false +RUN if [ ${INSTALL_GD} = true ]; then \ + apk add --update --no-cache libpng-dev; \ + docker-php-ext-install gd \ +;fi + #Install GMP package: ARG INSTALL_GMP=false RUN if [ ${INSTALL_GMP} = true ]; then \ diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index 47170541..2add1ed0 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -53,6 +53,13 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \ docker-php-ext-install bz2; \ fi +#Install GD package: +ARG INSTALL_GD=false +RUN if [ ${INSTALL_GD} = true ]; then \ + apk add --update --no-cache libpng-dev; \ + docker-php-ext-install gd \ +;fi + #Install GMP package: ARG INSTALL_GMP=false RUN if [ ${INSTALL_GMP} = true ]; then \ From e8dbb0e0f19933e9b00d2cc02cc74c3345273d65 Mon Sep 17 00:00:00 2001 From: Gino Pane Date: Tue, 25 Feb 2020 22:26:03 +0300 Subject: [PATCH 054/295] Fix #2506 Updates: - AST extension is no longer installed for unsupported PHP versions --- workspace/Dockerfile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 07c99ad1..48d9ebc0 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -585,10 +585,13 @@ ARG AST_VERSION=1.0.3 ENV AST_VERSION ${AST_VERSION} RUN if [ ${INSTALL_AST} = true ]; then \ - # Install AST extension - printf "\n" | pecl -q install ast-${AST_VERSION} && \ - echo "extension=ast.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/ast.ini && \ - phpenmod -v ${LARADOCK_PHP_VERSION} -s cli ast \ + # AST extension requires PHP 7.0.0 or newer + if [ $(php -r "echo PHP_MAJOR_VERSION;") != "5" ]; then \ + # Install AST extension + printf "\n" | pecl -q install ast-${AST_VERSION} && \ + echo "extension=ast.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/ast.ini && \ + phpenmod -v ${LARADOCK_PHP_VERSION} -s cli ast \ + ;fi \ ;fi ########################################################################### From 5a78f09eb4098410c01c65985772c9df8d657aa0 Mon Sep 17 00:00:00 2001 From: BAGArt Date: Wed, 26 Feb 2020 09:40:06 +0300 Subject: [PATCH 055/295] Update index.md add Laradock Multi --- DOCUMENTATION/content/related-projects/index.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/DOCUMENTATION/content/related-projects/index.md b/DOCUMENTATION/content/related-projects/index.md index a55343fb..f3c2aff0 100644 --- a/DOCUMENTATION/content/related-projects/index.md +++ b/DOCUMENTATION/content/related-projects/index.md @@ -1,7 +1,7 @@ --- -title: 6. Related Projects +title: 9. Related Projects type: index -weight: 6 +weight: 9 --- Laradock related projects: @@ -15,5 +15,7 @@ These Docker Compose projects have piqued our interest: * [RubyDev-Dock](https://github.com/scudelletti/rubydev-dock) by [Diogo Scudelletti](https://github.com/scudelletti) * [NoDock](https://github.com/Osedea/nodock) by [Osedea](https://github.com/Osedea) * [Dockery](https://github.com/taufek/dockery) by [Taufek](https://github.com/Taufek) +* [Laradock Multi](https://github.com/bagart/laradock-multi) by [BAGArt](https://github.com/bagart) - Laradock wrapper template +for running multiple related projects with different versions of PHP and Node.js such as Microservice Architecture (MSA) If you want your project listed here, please open an issue. From 29f7cbdc7e1f8979351969aa9e20c7fea5ccaeb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?La=C3=A9rcio=20de=20Sousa?= Date: Tue, 3 Mar 2020 15:14:33 -0300 Subject: [PATCH 056/295] Added option to map Browsersync ports from workspace container --- DOCUMENTATION/content/documentation/index.md | 25 ++++++++++++++++++++ docker-compose.yml | 2 ++ env-example | 2 ++ 3 files changed, 29 insertions(+) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index 8bf6247f..070ecdee 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -617,6 +617,31 @@ docker-compose up -d php-worker +
+ +## Use Browsersync with Laravel Mix + +1. Add the following settings to your `webpack.mix.js` file. Please refer to Browsersync [Options](https://browsersync.io/docs/options) page for more options. +``` +const mix = require('laravel-mix') + +(...) + +mix.browserSync({ + open: false, + proxy: 'nginx' // replace with your web server container +}) +``` + +2. Run `npm run watch` within your `workspace` container. + +3. Open your browser and visit address `http://localhost:[WORKSPACE_BROWSERSYNC_HOST_PORT]`. It will refresh the page automatically whenever you edit any source file in your project. + +4. If you wish to access Browsersync UI for your project, visit address `http://localhost:[WORKSPACE_BROWSERSYNC_UI_HOST_PORT]`. + + + +
## Use Mailu diff --git a/docker-compose.yml b/docker-compose.yml index 63dbdedd..9e92bbfc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -153,6 +153,8 @@ services: - "dockerhost:${DOCKER_HOST_IP}" ports: - "${WORKSPACE_SSH_PORT}:22" + - "${WORKSPACE_BROWSERSYNC_HOST_PORT}:3000" + - "${WORKSPACE_BROWSERSYNC_UI_HOST_PORT}:3001" - "${WORKSPACE_VUE_CLI_SERVE_HOST_PORT}:8080" - "${WORKSPACE_VUE_CLI_UI_HOST_PORT}:8000" tty: true diff --git a/env-example b/env-example index 43d913de..c6993291 100644 --- a/env-example +++ b/env-example @@ -160,6 +160,8 @@ WORKSPACE_INSTALL_WKHTMLTOPDF=false WORKSPACE_INSTALL_GNU_PARALLEL=false WORKSPACE_INSTALL_AST=true WORKSPACE_AST_VERSION=1.0.3 +WORKSPACE_BROWSERSYNC_HOST_PORT=3000 +WORKSPACE_BROWSERSYNC_UI_HOST_PORT=3001 WORKSPACE_VUE_CLI_SERVE_HOST_PORT=8080 WORKSPACE_VUE_CLI_UI_HOST_PORT=8001 WORKSPACE_INSTALL_GIT_PROMPT=false From 62747a2870adc967076de368040326dc69d1f268 Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Thu, 12 Mar 2020 09:39:45 +0800 Subject: [PATCH 057/295] Update Dockerfile php-worker fix add package name --- php-worker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-worker/Dockerfile b/php-worker/Dockerfile index 5b2319e8..8b18ba8a 100644 --- a/php-worker/Dockerfile +++ b/php-worker/Dockerfile @@ -96,7 +96,7 @@ RUN set -eux; \ # Install MySQL Client: ARG INSTALL_MYSQL_CLIENT=false RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \ - apk --update add default-mysql-client \ + apk --update add mysql-client \ ;fi # Install FFMPEG: From c5c8c9bc8587b4e533e028f6f16177468014f3b3 Mon Sep 17 00:00:00 2001 From: pushorigin Date: Fri, 13 Mar 2020 03:16:39 +0300 Subject: [PATCH 058/295] new feature: Install Oh My ZSH! with Laravel autocomplete plugin --- DOCUMENTATION/content/documentation/index.md | 31 ++++++++++++++++---- docker-compose.yml | 1 + env-example | 8 ++++- workspace/Dockerfile | 31 ++++++++++++++++++++ 4 files changed, 64 insertions(+), 7 deletions(-) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index 8bf6247f..c6e54cab 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -793,20 +793,20 @@ Read the [Laravel official documentation](https://laravel.com/docs/5.7/redis#con ## Use Varnish The goal was to proxy request to varnish server using nginx. So only nginx has been configured for Varnish proxy. -Nginx is on port 80 or 443. Nginx sends request through varnish server and varnish server sends request back to nginx on port 81 (external port is defined in `VARNISH_BACKEND_PORT`). +Nginx is on port 80 or 443. Nginx sends request through varnish server and varnish server sends request back to nginx on port 81 (external port is defined in `VARNISH_BACKEND_PORT`). -The idea was taken from this [post](https://www.linode.com/docs/websites/varnish/use-varnish-and-nginx-to-serve-wordpress-over-ssl-and-http-on-debian-8/) +The idea was taken from this [post](https://www.linode.com/docs/websites/varnish/use-varnish-and-nginx-to-serve-wordpress-over-ssl-and-http-on-debian-8/) The Varnish configuration was developed and tested for Wordpress only. Probably it works with other systems. #### Steps to configure varnish proxy server: 1. You have to set domain name for VARNISH_PROXY1_BACKEND_HOST variable. 2. If you want to use varnish for different domains, you have to add new configuration section in your env file. - ``` + ``` VARNISH_PROXY1_CACHE_SIZE=128m VARNISH_PROXY1_BACKEND_HOST=replace_with_your_domain.name VARNISH_PROXY1_SERVER=SERVER1 - ``` + ``` 3. Then you have to add new config section into docker-compose.yml with related variables: ``` custom_proxy_name: @@ -828,7 +828,7 @@ The Varnish configuration was developed and tested for Wordpress only. Probably - workspace networks: - frontend - ``` + ``` 4. change your varnish config and add nginx configuration. Example Nginx configuration is here: `nginx/sites/laravel_varnish.conf.example`. 5. `varnish/default.vcl` is old varnish configuration, which was used in the previous version. Use `default_wordpress.vcl` instead. @@ -2011,7 +2011,7 @@ To install Supervisor in the Workspace container 3 - Create supervisor configuration file (for ex., named `laravel-worker.conf`) for Laravel Queue Worker in `php-worker/supervisord.d/` by simply copy from `laravel-worker.conf.example` -4 - Re-build the container `docker-compose build workspace` Or `docker-composer up --build -d workspace` +4 - Re-build the container `docker-compose build workspace` Or `docker-composer up --build -d workspace` @@ -2162,8 +2162,27 @@ A bash prompt that displays information about the current git repository. In par **Note** You can configure bash-git-prompt by editing the `workspace/gitprompt.sh` file and re-building the workspace container. For configuration information, visit the [bash-git-prompt repository](https://github.com/magicmonty/bash-git-prompt). +
+ +## Install Oh My ZSH! with Laravel autocomplete plugin +[Zsh](https://en.wikipedia.org/wiki/Z_shell) is an extended Bourne shell with many improvements, including some features of Bash, ksh, and tcsh. +[Oh My Zsh](https://ohmyz.sh/) is a delightful, open source, community-driven framework for managing your Zsh configuration. + +[Laravel autocomplete plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/laravel) adds aliases and autocompletion for Laravel Artisan and Bob command-line interfaces. + +1 - Open the `.env` file + +2 - Search for the `SHELL_OH_MY_ZSH` argument under the Workspace Container + +3 - Set it to `true` + +4 - Re-build the container `docker-compose build workspace` + +5 - Use it `docker-compose exec --user=laradock workspace zsh` + +**Note** You can configure Oh My ZSH by editing the `/home/laradock/.zshrc` in running container.
diff --git a/docker-compose.yml b/docker-compose.yml index 63dbdedd..5c353a28 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -60,6 +60,7 @@ services: context: ./workspace args: - CHANGE_SOURCE=${CHANGE_SOURCE} + - SHELL_OH_MY_ZSH=${SHELL_OH_MY_ZSH} - UBUNTU_SOURCE=${UBUNTU_SOURCE} - LARADOCK_PHP_VERSION=${PHP_VERSION} - LARADOCK_PHALCON_VERSION=${PHALCON_VERSION} diff --git a/env-example b/env-example index 43d913de..66617805 100644 --- a/env-example +++ b/env-example @@ -78,6 +78,12 @@ UBUNTU_SOURCE=aliyun # If you are using Docker Sync. For `osx` use 'native_osx', for `windows` use 'unison', for `linux` docker-sync is not required DOCKER_SYNC_STRATEGY=native_osx +### Install Oh My ZSH! #################################### + +# If you want to use "Oh My ZSH!" with Laravel autocomplete plugin, set SHELL_OH_MY_ZSH to true. + +SHELL_OH_MY_ZSH=false + ########################################################### ################ Containers Customization ################# ########################################################### @@ -859,7 +865,7 @@ GEARMAN_MYSQL_PORT=3306 # Mysql server user (Default: root) GEARMAN_MYSQL_USER=root # Mysql password -GEARMAN_MYSQL_PASSWORD= +GEARMAN_MYSQL_PASSWORD= # Path to file with mysql password(Docker secrets) GEARMAN_MYSQL_PASSWORD_FILE= # Database to use by Gearman (Default: Gearmand) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 48d9ebc0..8d00c478 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1304,6 +1304,37 @@ RUN if [ ${INSTALL_GIT_PROMPT} = true ]; then \ RUN set -xe; php -v | head -n 1 | grep -q "PHP ${LARADOCK_PHP_VERSION}." +########################################################################### +# Oh My ZSH! +########################################################################### + +USER root + +ARG SHELL_OH_MY_ZSH=false +RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \ + apt install -y zsh \ +;fi + +USER laradock +RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \ + sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) --keep-zshrc" && \ + sed -i -r 's/^plugins=\(.*?\)$/plugins=(laravel5)/' /home/laradock/.zshrc && \ + echo '\n\ +bindkey "^[OB" down-line-or-search\n\ +bindkey "^[OC" forward-char\n\ +bindkey "^[OD" backward-char\n\ +bindkey "^[OF" end-of-line\n\ +bindkey "^[OH" beginning-of-line\n\ +bindkey "^[[1~" beginning-of-line\n\ +bindkey "^[[3~" delete-char\n\ +bindkey "^[[4~" end-of-line\n\ +bindkey "^[[5~" up-line-or-history\n\ +bindkey "^[[6~" down-line-or-history\n\ +bindkey "^?" backward-delete-char\n' >> /home/laradock/.zshrc \ +;fi + +USER root + # #-------------------------------------------------------------------------- # Final Touch From c4c2f9130624bcdae03862e07f7bc8a44a35bed8 Mon Sep 17 00:00:00 2001 From: "DESK0253\\Leo" Date: Wed, 8 Apr 2020 09:57:00 +0800 Subject: [PATCH 059/295] fix: change sources shell permission denied --- workspace/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 8d00c478..f90679b8 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -50,6 +50,7 @@ ARG UBUNTU_SOURCE COPY ./sources.sh /tmp/sources.sh RUN if [ ${CHANGE_SOURCE} = true ]; then \ + chmod +x /tmp/sources.sh && \ /bin/sh -c /tmp/sources.sh && \ rm -rf /tmp/sources.sh \ ;fi From 102d3c88287eb3882f7e2a24c2825bc02474c479 Mon Sep 17 00:00:00 2001 From: Jeremy Nikolic Date: Fri, 10 Apr 2020 10:15:58 +0200 Subject: [PATCH 060/295] Add ElasticSearch plugin command alternative for ES >5.0 versions --- DOCUMENTATION/content/documentation/index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index 8cb4aa92..f573a651 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -1209,6 +1209,12 @@ docker-compose up -d elasticsearch ```bash docker-compose exec elasticsearch /usr/share/elasticsearch/bin/plugin install {plugin-name} ``` +For ElasticSearch 5.0 and above, the previous "plugin" command as been renamed to "elasticsearch-plguin". +Use the following instead: + +```bash +docker-compose exec elasticsearch /usr/share/elasticsearch/bin/elasticsearch-plugin install {plugin-name} +``` 2 - Restart elasticsearch container From a2581bda5f99f2dcac11a3f006e7f1f2873f5691 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Fri, 17 Apr 2020 11:57:50 +0800 Subject: [PATCH 061/295] use latest base image --- docker-compose.yml | 2 ++ env-example | 2 ++ php-fpm/Dockerfile | 3 ++- workspace/Dockerfile | 3 ++- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 53bf2c9e..3864bdec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -62,6 +62,7 @@ services: - CHANGE_SOURCE=${CHANGE_SOURCE} - SHELL_OH_MY_ZSH=${SHELL_OH_MY_ZSH} - UBUNTU_SOURCE=${UBUNTU_SOURCE} + - BASE_IMAGE_TAG_PREFIX=${WORKSPACE_BASE_IMAGE_TAG_PREFIX} - LARADOCK_PHP_VERSION=${PHP_VERSION} - LARADOCK_PHALCON_VERSION=${PHALCON_VERSION} - INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION} @@ -177,6 +178,7 @@ services: context: ./php-fpm args: - CHANGE_SOURCE=${CHANGE_SOURCE} + - BASE_IMAGE_TAG_PREFIX=${PHP_FPM_BASE_IMAGE_TAG_PREFIX} - LARADOCK_PHP_VERSION=${PHP_VERSION} - LARADOCK_PHALCON_VERSION=${PHALCON_VERSION} - INSTALL_BZ2=${PHP_FPM_INSTALL_BZ2} diff --git a/env-example b/env-example index 0d52acb0..ee6eee4b 100644 --- a/env-example +++ b/env-example @@ -90,6 +90,7 @@ SHELL_OH_MY_ZSH=false ### WORKSPACE ############################################# +WORKSPACE_BASE_IMAGE_TAG_PREFIX=latest WORKSPACE_COMPOSER_GLOBAL_INSTALL=true WORKSPACE_COMPOSER_AUTH=false WORKSPACE_COMPOSER_REPO_PACKAGIST= @@ -174,6 +175,7 @@ WORKSPACE_INSTALL_GIT_PROMPT=false ### PHP_FPM ############################################### +PHP_FPM_BASE_IMAGE_TAG_PREFIX=latest PHP_FPM_INSTALL_BCMATH=true PHP_FPM_INSTALL_MYSQLI=true PHP_FPM_INSTALL_INTL=true diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index c638e689..9d5f895d 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -13,7 +13,8 @@ # ARG LARADOCK_PHP_VERSION -FROM laradock/php-fpm:2.7-${LARADOCK_PHP_VERSION} +ARG BASE_IMAGE_TAG_PREFIX=latest +FROM laradock/php-fpm:${BASE_IMAGE_TAG_PREFIX}-${LARADOCK_PHP_VERSION} LABEL maintainer="Mahmoud Zalt " diff --git a/workspace/Dockerfile b/workspace/Dockerfile index f90679b8..4a105bb4 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -13,7 +13,8 @@ # ARG LARADOCK_PHP_VERSION -FROM laradock/workspace:2.6.1-${LARADOCK_PHP_VERSION} +ARG BASE_IMAGE_TAG_PREFIX=latest +FROM laradock/workspace:${BASE_IMAGE_TAG_PREFIX}-${LARADOCK_PHP_VERSION} LABEL maintainer="Mahmoud Zalt " From e2331171b0f6d52f7a49b943a62f621df04487eb Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Fri, 17 Apr 2020 13:10:40 +0800 Subject: [PATCH 062/295] use Github Actions run CI --- .github/workflows/main-ci.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/workflows/main-ci.yml diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml new file mode 100644 index 00000000..5d21097f --- /dev/null +++ b/.github/workflows/main-ci.yml @@ -0,0 +1,19 @@ +name: Docker Image CI + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + php_version: [72, 73] + service: [php-fpm, php-worker] + steps: + - uses: actions/checkout@v2 + - name: Build the Docker image + env: + PHP_VERSION: ${{ matrix.php_version }} + run: | + cp env-example .env + docker-compose build ${{ matrix.service }} From 941960df82d295919c036eb7812a01a437a4690e Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Fri, 17 Apr 2020 13:12:57 +0800 Subject: [PATCH 063/295] Update main-ci.yml --- .github/workflows/main-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 5d21097f..11e7c0a7 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - php_version: [72, 73] + php_version: ["7.2", "7.3"] service: [php-fpm, php-worker] steps: - uses: actions/checkout@v2 From fbaaff619ac5f772a52c6d4822a7dd786879cd5b Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Fri, 17 Apr 2020 13:14:06 +0800 Subject: [PATCH 064/295] Update main-ci.yml --- .github/workflows/main-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index 11e7c0a7..e301d432 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -12,8 +12,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Build the Docker image - env: - PHP_VERSION: ${{ matrix.php_version }} run: | cp env-example .env + sed -i -- "s/PHP_VERSION=.*/PHP_VERSION=${{ matrix.php_version }}/g" .env docker-compose build ${{ matrix.service }} From e6eb2ef1eb67f1249fba6fed2fb847385093279b Mon Sep 17 00:00:00 2001 From: Jefferson Santos Date: Fri, 17 Apr 2020 02:54:29 -0300 Subject: [PATCH 065/295] Fix Deployer documentation link --- DOCUMENTATION/content/documentation/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index f573a651..62949147 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -395,7 +395,7 @@ Always download the latest version of [Loaders for ionCube ](http://www.ioncube. 4 - Re-build the containers `docker-compose build workspace` -[**Deployer Documentation Here**](https://deployer.org/docs) +[**Deployer Documentation Here**](https://deployer.org/docs/getting-started.html) From 56e10f119827042c0d5b52c02e17b81f5578e2fe Mon Sep 17 00:00:00 2001 From: "Shao Yu-Lung (Allen)" Date: Fri, 17 Apr 2020 14:03:08 +0800 Subject: [PATCH 066/295] Update main-ci.yml --- .github/workflows/main-ci.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index e301d432..e01d283a 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -1,4 +1,4 @@ -name: Docker Image CI +name: CI on: [push, pull_request] @@ -7,12 +7,13 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - php_version: ["7.2", "7.3"] - service: [php-fpm, php-worker] + php_version: ["7.1", "7.2", "7.3", "7.4"] + service: [php-fpm, php-worker, workspace, laravel-horizon] steps: - uses: actions/checkout@v2 - name: Build the Docker image + env: + PHP_VERSION: ${{ matrix.php_version }} run: | cp env-example .env - sed -i -- "s/PHP_VERSION=.*/PHP_VERSION=${{ matrix.php_version }}/g" .env docker-compose build ${{ matrix.service }} From 1dd78c0b0465d416961fcb1c7e6aff9bcc4b171a Mon Sep 17 00:00:00 2001 From: Carlos Clayton Date: Mon, 20 Apr 2020 08:00:13 -0300 Subject: [PATCH 067/295] Installing Filebeat plugin Add support to Filebeat with logstash-input-beats plugin --- logstash/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/logstash/Dockerfile b/logstash/Dockerfile index 161d381e..1a1a753c 100644 --- a/logstash/Dockerfile +++ b/logstash/Dockerfile @@ -8,4 +8,5 @@ ADD ./pipeline/ /usr/share/logstash/pipeline/ ADD ./config/ /usr/share/logstash/config/ RUN logstash-plugin install logstash-input-jdbc +RUN logstash-plugin install logstash-input-beats From 2fd9ccff6a50729ae833dd91484c73881f401c60 Mon Sep 17 00:00:00 2001 From: Pierre Grimaud Date: Fri, 24 Apr 2020 01:16:34 +0200 Subject: [PATCH 068/295] Fix typos --- DOCUMENTATION/content/contributing/index.md | 2 +- env-example | 2 +- workspace/Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DOCUMENTATION/content/contributing/index.md b/DOCUMENTATION/content/contributing/index.md index dbe3efb8..78798a91 100644 --- a/DOCUMENTATION/content/contributing/index.md +++ b/DOCUMENTATION/content/contributing/index.md @@ -100,7 +100,7 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI * Search for the image in the [Docker Hub](https://hub.docker.com/search/) and find the source.. -*Most of the image in Laradock are offical images, these projects live in other repositories and maintainer by other organizations.* +*Most of the image in Laradock are official images, these projects live in other repositories and maintainer by other organizations.* **Note:** Laradock has two base images for (`Workspace` and `php-fpm`, mainly made to speed up the build time on your machine. diff --git a/env-example b/env-example index ee6eee4b..856f8426 100644 --- a/env-example +++ b/env-example @@ -32,7 +32,7 @@ COMPOSE_FILE=docker-compose.yml # Change the separator from : to ; on Windows COMPOSE_PATH_SEPARATOR=: -# Define the prefix of container names. This is useful if you have multiple projects that use laradock to have seperate containers per project. +# Define the prefix of container names. This is useful if you have multiple projects that use laradock to have separate containers per project. COMPOSE_PROJECT_NAME=laradock ### PHP Version ########################################### diff --git a/workspace/Dockerfile b/workspace/Dockerfile index 4a105bb4..57afb563 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -75,7 +75,7 @@ RUN set -xe; \ # to add more Software's or remove existing one, you need to edit the # base image (https://github.com/Laradock/workspace). # - # next lines are here becase there is no auto build on dockerhub see https://github.com/laradock/laradock/pull/1903#issuecomment-463142846 + # next lines are here because there is no auto build on dockerhub see https://github.com/laradock/laradock/pull/1903#issuecomment-463142846 libzip-dev zip unzip \ # Install the zip extension php${LARADOCK_PHP_VERSION}-zip \ From 5a28b9c4d87fceb7845332127fc3a489a499e51a Mon Sep 17 00:00:00 2001 From: Yidir <9355724+Yiidiir@users.noreply.github.com> Date: Tue, 28 Apr 2020 03:12:26 +0100 Subject: [PATCH 069/295] Expose Angular CLI serve port When enabling angular, exposure to the default serve port is not done normally like it's done with VUE CLI --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 3864bdec..fcb7df32 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -159,6 +159,7 @@ services: - "${WORKSPACE_BROWSERSYNC_UI_HOST_PORT}:3001" - "${WORKSPACE_VUE_CLI_SERVE_HOST_PORT}:8080" - "${WORKSPACE_VUE_CLI_UI_HOST_PORT}:8000" + - "${WORKSPACE_ANGULAR_CLI_SERVE_HOST_PORT}:4200" tty: true environment: - PHP_IDE_CONFIG=${PHP_IDE_CONFIG} From 4797c38199531eb8b6d575adc59b23267fd7404d Mon Sep 17 00:00:00 2001 From: Subhadip Naskar Date: Tue, 28 Apr 2020 10:29:25 +0530 Subject: [PATCH 070/295] Added DockerStacks link to related projects --- DOCUMENTATION/content/related-projects/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/DOCUMENTATION/content/related-projects/index.md b/DOCUMENTATION/content/related-projects/index.md index f3c2aff0..c14aa2d5 100644 --- a/DOCUMENTATION/content/related-projects/index.md +++ b/DOCUMENTATION/content/related-projects/index.md @@ -1,7 +1,7 @@ --- -title: 9. Related Projects +title: 10. Related Projects type: index -weight: 9 +weight: 10 --- Laradock related projects: @@ -17,5 +17,6 @@ These Docker Compose projects have piqued our interest: * [Dockery](https://github.com/taufek/dockery) by [Taufek](https://github.com/Taufek) * [Laradock Multi](https://github.com/bagart/laradock-multi) by [BAGArt](https://github.com/bagart) - Laradock wrapper template for running multiple related projects with different versions of PHP and Node.js such as Microservice Architecture (MSA) +* [DockerStacks](https://github.com/sfx101/docker-stacks) by [Subhadip Naskar](https://github.com/sfx101) - DockerStacks is a laradock GUI build on top of docker, electron.js, node-pty, xterm.js and the awesome laradock If you want your project listed here, please open an issue. From 5824676e30645a32a43a23528d2150efe1e93dfd Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Wed, 29 Apr 2020 07:10:47 +0200 Subject: [PATCH 071/295] Improve docs readability & performance --- .github/FUNDING.yml | 1 + DOCUMENTATION/config.toml | 21 ++---- DOCUMENTATION/content/contributing/index.md | 20 +++-- DOCUMENTATION/content/documentation/index.md | 70 +++++++++++------- .../content/getting-started/index.md | 28 +++---- DOCUMENTATION/content/help/index.md | 4 +- DOCUMENTATION/content/introduction/index.md | 21 ++++-- DOCUMENTATION/content/license/index.md | 7 -- .../content/related-projects/index.md | 60 +++++++++++---- .../layouts/_default/__list.html | 1 + .../layouts/_default/single.html | 1 + .../hugo-material-docs/layouts/index.html | 3 +- .../layouts/partials/head.html | 19 +++++ .../images/favicons/android-icon-144x144.png | Bin 0 -> 6754 bytes .../images/favicons/android-icon-192x192.png | Bin 0 -> 7505 bytes .../images/favicons/android-icon-36x36.png | Bin 0 -> 1973 bytes .../images/favicons/android-icon-48x48.png | Bin 0 -> 2440 bytes .../images/favicons/android-icon-72x72.png | Bin 0 -> 3312 bytes .../images/favicons/android-icon-96x96.png | Bin 0 -> 4382 bytes .../images/favicons/apple-icon-114x114.png | Bin 0 -> 5219 bytes .../images/favicons/apple-icon-120x120.png | Bin 0 -> 5407 bytes .../images/favicons/apple-icon-144x144.png | Bin 0 -> 6754 bytes .../images/favicons/apple-icon-152x152.png | Bin 0 -> 7265 bytes .../images/favicons/apple-icon-180x180.png | Bin 0 -> 8820 bytes .../images/favicons/apple-icon-57x57.png | Bin 0 -> 2743 bytes .../images/favicons/apple-icon-60x60.png | Bin 0 -> 2900 bytes .../images/favicons/apple-icon-72x72.png | Bin 0 -> 3312 bytes .../images/favicons/apple-icon-76x76.png | Bin 0 -> 3484 bytes .../favicons/apple-icon-precomposed.png | Bin 0 -> 8081 bytes .../static/images/favicons/apple-icon.png | Bin 0 -> 8081 bytes .../static/images/favicons/browserconfig.xml | 2 + .../static/images/favicons/favicon-16x16.png | Bin 0 -> 1411 bytes .../static/images/favicons/favicon-32x32.png | Bin 0 -> 1794 bytes .../static/images/favicons/favicon-96x96.png | Bin 0 -> 4382 bytes .../static/images/favicons/favicon.ico | Bin 0 -> 1150 bytes .../static/images/favicons/manifest.json | 41 ++++++++++ .../images/favicons/ms-icon-144x144.png | Bin 0 -> 6754 bytes .../images/favicons/ms-icon-150x150.png | Bin 0 -> 7196 bytes .../images/favicons/ms-icon-310x310.png | Bin 0 -> 19549 bytes .../static/images/favicons/ms-icon-70x70.png | Bin 0 -> 3257 bytes .../static/images/laradock-full-logo.jpg | Bin 0 -> 293572 bytes README.md | 4 +- 42 files changed, 208 insertions(+), 95 deletions(-) delete mode 100644 DOCUMENTATION/content/license/index.md create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/android-icon-144x144.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/android-icon-192x192.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/android-icon-36x36.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/android-icon-48x48.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/android-icon-72x72.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/android-icon-96x96.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/apple-icon-114x114.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/apple-icon-120x120.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/apple-icon-144x144.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/apple-icon-152x152.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/apple-icon-180x180.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/apple-icon-57x57.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/apple-icon-60x60.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/apple-icon-72x72.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/apple-icon-76x76.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/apple-icon-precomposed.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/apple-icon.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/browserconfig.xml create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/favicon-16x16.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/favicon-32x32.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/favicon-96x96.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/favicon.ico create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/manifest.json create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/ms-icon-144x144.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/ms-icon-150x150.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/ms-icon-310x310.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/favicons/ms-icon-70x70.png create mode 100644 DOCUMENTATION/themes/hugo-material-docs/static/images/laradock-full-logo.jpg diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 40005024..cc034fc9 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -3,3 +3,4 @@ github: Mahmoudz open_collective: laradock custom: ['paypal.me/mzmmzz'] +patreon: zalt diff --git a/DOCUMENTATION/config.toml b/DOCUMENTATION/config.toml index 56e4fe03..d6c3a732 100644 --- a/DOCUMENTATION/config.toml +++ b/DOCUMENTATION/config.toml @@ -20,8 +20,8 @@ googleAnalytics = "UA-37514928-9" repo_url = "https://github.com/laradock/laradock" version = "" - logo = "images/logo.png" - favicon = "" + logo = "images/favicons/ms-icon-310x310.png" + favicon = "images/favicons/favicon.ico" permalink = "#" @@ -48,40 +48,35 @@ googleAnalytics = "UA-37514928-9" # ------- MENU START ----------------------------------------- [[menu.main]] - name = "1. Introduction" + name = "Introduction" url = "introduction/" weight = 1 [[menu.main]] - name = "2. Getting Started" + name = "Getting Started" url = "getting-started/" weight = 2 [[menu.main]] - name = "3. Documentation" + name = "Documentation" url = "documentation/" weight = 3 [[menu.main]] - name = "4. Help & Questions" + name = "Help & Questions" url = "help/" weight = 4 [[menu.main]] - name = "5. Related Projects" + name = "Related Projects" url = "related-projects/" weight = 5 [[menu.main]] - name = "6. Contributing" + name = "Contributions" url = "contributing/" weight = 6 -[[menu.main]] - name = "7. License" - url = "license/" - weight = 7 - # ------- MENU END ----------------------------------------- [blackfriday] diff --git a/DOCUMENTATION/content/contributing/index.md b/DOCUMENTATION/content/contributing/index.md index dbe3efb8..0b019419 100644 --- a/DOCUMENTATION/content/contributing/index.md +++ b/DOCUMENTATION/content/contributing/index.md @@ -1,7 +1,7 @@ --- -title: 7. Contributing +title: Contributions type: index -weight: 7 +weight: 6 --- @@ -51,12 +51,20 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI ### Host the documentation locally +**Option 1: Use Hugo Docker Image:** + +1. Update the `DOCUMENTATION/content`. +2. Go to `DOCUMENTATION/`. +3. Run `docker run --rm -it -v $PWD:/src -p 1313:1313 -u hugo jguyomard/hugo-builder hugo server -w --bind=0.0.0.0` +4. Visit [http://localhost:1313/](http://localhost:1313/) + +**Option 2: Install Hugo Locally:** + 1. Install [Hugo](https://gohugo.io/) on your machine. -2. Edit the `DOCUMENTATION/content`. +2. Update the `DOCUMENTATION/content`. 3. Delete the `/docs` folder from the root. -4. After you finish the editing, go to `DOCUMENTATION/` and run the `hugo` command to generate the HTML docs (inside a new `/docs` folder). - - +4. Go to `DOCUMENTATION/`. +5. Run the `hugo` command to generate the HTML docs inside a new `/docs` folder. ## Support new Software (Add new Container) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index f573a651..5eae9a02 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -1,5 +1,5 @@ --- -title: 3. Documentation +title: Documentation type: index weight: 3 --- @@ -57,7 +57,9 @@ docker-compose down
-## Enter a Container (run commands in a running Container) +## Enter a Container + +> Run commands in a running Container. 1 - First list the current running containers with `docker ps` @@ -88,7 +90,8 @@ docker-compose exec mysql mysql -udefault -psecret
-## Edit default container configuration +## Edit default Container config + Open the `docker-compose.yml` and change anything you want. Examples: @@ -161,7 +164,7 @@ You might use the `--no-cache` option if you want full rebuilding (`docker-compo
-## Add more Software (Docker Images) +## Add more Docker Images To add an image (software), just edit the `docker-compose.yml` and add your container details, to do so you need to be familiar with the [docker compose file syntax](https://docs.docker.com/compose/compose-file/). @@ -384,7 +387,9 @@ Always download the latest version of [Loaders for ionCube ](http://www.ioncube.
-## Install Deployer (Deployment tool for PHP) +## Install Deployer + +> A deployment tool for PHP. 1 - Open the `.env` file
@@ -402,7 +407,10 @@ Always download the latest version of [Loaders for ionCube ](http://www.ioncube.
-## Install SonarQube (automatic code review tool) +## Install SonarQube + +> An automatic code review tool. + SonarQube® is an automatic code review tool to detect bugs, vulnerabilities and code smells in your code. It can integrate with your existing workflow to enable continuous code inspection across your project branches and pull requests.
1 - Open the `.env` file @@ -463,14 +471,6 @@ To learn more about how Docker publishes ports, please read [this excellent post -
- -## Setup Laravel and Docker on Digital Ocean - -### [Full Guide Here](/guides/#Digital-Ocean) - - - @@ -483,7 +483,7 @@ To learn more about how Docker publishes ports, please read [this excellent post -## Install Laravel from a Docker Container +## Install Laravel from Container 1 - First you need to enter the Workspace Container. @@ -619,7 +619,9 @@ docker-compose up -d php-worker
-## Use Browsersync with Laravel Mix +## Use Browsersync + +> Using Use Browsersync with Laravel Mix. 1. Add the following settings to your `webpack.mix.js` file. Please refer to Browsersync [Options](https://browsersync.io/docs/options) page for more options. ``` @@ -1731,7 +1733,9 @@ The default username and password for the root MySQL user are `root` and `root `
-## Create Multiple Databases (MySQL) +## Create Multiple Databases + +> With MySQL. Create `createdb.sql` from `mysql/docker-entrypoint-initdb.d/createdb.sql.example` in `mysql/docker-entrypoint-initdb.d/*` and add your SQL syntax as follow: @@ -1765,7 +1769,9 @@ If you need MySQL access from your host, d
-## Use custom Domain (instead of the Docker IP) +## Use custom Domain + +> How to use a custom domain, instead of the Docker IP. Assuming your custom domain is `laravel.test` @@ -1791,7 +1797,7 @@ server_name laravel.test;
-## Enable Global Composer Build Install +## Global Composer Build Install Enabling Global Composer Install during the build for the container allows you to get your composer requirements installed and available in the container after the build is done. @@ -1810,7 +1816,9 @@ Enabling Global Composer Install during the build for the container allows you t
-## Add authentication credential for Magento 2 +## Add authentication for Magento + +> Adding authentication credentials for Magento 2. 1 - Open the `.env` file @@ -1902,7 +1910,7 @@ To install NPM GULP toolkit in the Workspace container
-## Install NPM BOWER package manager +## Install NPM BOWER To install NPM BOWER package manager in the Workspace container @@ -2088,7 +2096,9 @@ e) set it to `true`
-## Install Laravel Envoy (Envoy Task Runner) +## Install Laravel Envoy + +> A Tasks Runner. 1 - Open the `.env` file
@@ -2121,7 +2131,8 @@ e) set it to `true`
-## Install libfaketime in the php-fpm container +## Install libfaketime in php-fpm + Libfaketime allows you to control the date and time that is returned from the operating system. It can be used by specifying a special string in the `PHP_FPM_FAKETIME` variable in the `.env` file. For example: @@ -2145,7 +2156,8 @@ will set the clock back 1 day. See (https://github.com/wolfcw/libfaketime) for m
-## Install YAML PHP extension in the php-fpm container +## Install YAML extension in php-fpm + YAML PHP extension allows you to easily parse and create YAML structured data. I like YAML because it's well readable for humans. See http://php.net/manual/en/ref.yaml.php and http://yaml.org/ for more info. 1 - Open the `.env` file @@ -2195,7 +2207,9 @@ For configuration information, visit the [bash-git-prompt repository](https://gi
-## Install Oh My ZSH! with Laravel autocomplete plugin +## Install Oh My ZSH + +> With the Laravel autocomplete plugin. [Zsh](https://en.wikipedia.org/wiki/Z_shell) is an extended Bourne shell with many improvements, including some features of Bash, ksh, and tcsh. @@ -2226,7 +2240,9 @@ Remote debug Laravel web and phpunit tests.
-## Setup Google Cloud for docker registry +## Setup Google Cloud + +> Setting up Google Cloud for the docker registry. ``` gcloud auth configure-docker @@ -2242,7 +2258,7 @@ gcloud auth login
-## Keep track of your Laradock changes +## Track your Laradock changes 1. Fork the Laradock repository. 2. Use that fork as a submodule. diff --git a/DOCUMENTATION/content/getting-started/index.md b/DOCUMENTATION/content/getting-started/index.md index df193542..47108aba 100644 --- a/DOCUMENTATION/content/getting-started/index.md +++ b/DOCUMENTATION/content/getting-started/index.md @@ -1,18 +1,18 @@ --- -title: 2. Getting Started +title: Getting Started type: index weight: 2 --- -## 2.1 Requirements +## Requirements - [Git](https://git-scm.com/downloads) -- [Docker](https://www.docker.com/products/docker/) `>= 17.12` +- [Docker](https://www.docker.com/products/docker/) [ >= 17.12 ] -## 2.2 Installation +## Installation Choose the setup the best suits your needs. @@ -44,10 +44,10 @@ Note: If you are not using Git yet for your project, you can use `git clone` ins 2 - Make sure your folder structure should look like this: ``` -+ project-a - + laradock-a -+ project-b - + laradock-b +* project-a +* laradock-a +* project-b +* laradock-b ``` *(It's important to rename the laradock folders to unique name in each project, if you want to run laradock per project).* @@ -66,8 +66,8 @@ git clone https://github.com/laradock/laradock.git Your folder structure should look like this: ``` -+ laradock -+ project-z +* laradock +* project-z ``` 2 - Edit your web server sites configuration. @@ -102,9 +102,9 @@ git clone https://github.com/laradock/laradock.git Your folder structure should look like this: ``` -+ laradock -+ project-1 -+ project-2 +* laradock +* project-1 +* project-2 ``` 2 - Go to your web server and create config files to point to different project directory when visiting different domains: @@ -136,7 +136,7 @@ If you use Chrome 63 or above for development, don't use `.dev`. [Why?](https:// -## 2.3 Usage +## Usage **Read Before starting:** diff --git a/DOCUMENTATION/content/help/index.md b/DOCUMENTATION/content/help/index.md index 8267bc5a..dddb80a1 100644 --- a/DOCUMENTATION/content/help/index.md +++ b/DOCUMENTATION/content/help/index.md @@ -1,7 +1,7 @@ --- -title: 5. Help & Questions +title: Help & Questions type: index -weight: 5 +weight: 4 --- Join the chat room on [Gitter](https://gitter.im/Laradock/laradock) and get help and support from the community. diff --git a/DOCUMENTATION/content/introduction/index.md b/DOCUMENTATION/content/introduction/index.md index 5dcc92da..0251c3a0 100644 --- a/DOCUMENTATION/content/introduction/index.md +++ b/DOCUMENTATION/content/introduction/index.md @@ -1,13 +1,18 @@ --- -title: 1. Introduction +title: Introduction type: index weight: 1 --- -Laradock is a full PHP development environment based on Docker. +Laradock is a full PHP development environment for Docker. -Supporting a variety of common services, all pre-configured to provide a full PHP development environment. +It supports a variety of common services, all pre-configured to provide a ready PHP development environment. +
+ +--- +### Use Docker First - Then Learn About It Later! +--- ## Features @@ -26,11 +31,9 @@ Supporting a variety of common services, all pre-configured to provide a full PH - Everything is visible and editable. - Fast Images Builds. -
---- -### Use Docker First - Then Learn About It Later ---- + + ## Quick Overview @@ -73,7 +76,7 @@ That's it! enjoy :) -## Supported Software (Docker Images) +## Supported Services > Laradock, adheres to the 'separation of concerns' principle, thus it runs each software on its own Docker Container. > You can turn On/Off as many instances as you want without worrying about the configurations. @@ -354,6 +357,8 @@ Contribute and help us sustain the project. Option 2: Become a Sponsor via [Github Sponsors](https://github.com/sponsors/Mahmoudz).
Option 3: Become a Sponsor/Backer via [Open Collective](https://opencollective.com/laradock/contribute). +
+Option 4: Become a [Patreon](https://www.patreon.com/zalt). ## Sponsors diff --git a/DOCUMENTATION/content/license/index.md b/DOCUMENTATION/content/license/index.md deleted file mode 100644 index 312b13d1..00000000 --- a/DOCUMENTATION/content/license/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: 8. License -type: index -weight: 8 ---- - -[MIT License](https://github.com/laradock/laradock/blob/master/LICENSE) (MIT) diff --git a/DOCUMENTATION/content/related-projects/index.md b/DOCUMENTATION/content/related-projects/index.md index c14aa2d5..f7f8f46c 100644 --- a/DOCUMENTATION/content/related-projects/index.md +++ b/DOCUMENTATION/content/related-projects/index.md @@ -1,22 +1,50 @@ --- -title: 10. Related Projects +title: Related Projects type: index -weight: 10 +weight: 5 --- -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) -* [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: -* [MageDock](https://github.com/ojhaujjwal/magedock) by [Ujjwal Ojha](https://github.com/ojhaujjwal) -* [RubyDev-Dock](https://github.com/scudelletti/rubydev-dock) by [Diogo Scudelletti](https://github.com/scudelletti) -* [NoDock](https://github.com/Osedea/nodock) by [Osedea](https://github.com/Osedea) -* [Dockery](https://github.com/taufek/dockery) by [Taufek](https://github.com/Taufek) -* [Laradock Multi](https://github.com/bagart/laradock-multi) by [BAGArt](https://github.com/bagart) - Laradock wrapper template -for running multiple related projects with different versions of PHP and Node.js such as Microservice Architecture (MSA) -* [DockerStacks](https://github.com/sfx101/docker-stacks) by [Subhadip Naskar](https://github.com/sfx101) - DockerStacks is a laradock GUI build on top of docker, electron.js, node-pty, xterm.js and the awesome laradock +Laradock CLI is a tool for Laravel projects which automates the docker configuration setup for services, amongst other things. -If you want your project listed here, please open an issue. +* [Docker Stacks](https://github.com/sfx101/docker-stacks): A GUI for managing Laradock. (by [Subhadip Naskar](https://github.com/sfx101)) +* [Laradock CLI](https://github.com/lorinlee/laradock-cli): A CLI for managing Laradock. (by [LorinLee](https://github.com/lorinlee)) +* [Laradock CLI](https://github.com/loonpwn/laradock-cli): A CLI for managing Laradock. (by [Loonpwn](https://github.com/loonpwn)) +* [Ansible Laradock Kubernetes](https://github.com/sifat-rahim/ansible-laradock-kubernetes): Ansible playbook to setup docker containers for Laravel apps using Laradock. (by [Sifat Rahim](https://github.com/sifat-rahim)) +* [Monitor Laradock](https://github.com/zeroc0d3/monitor-laradock): Laradock Monitoring Tools (using Grafana). (by [Zeroc0d3](https://github.com/zeroc0d3)) +* [Laradock Manager](https://github.com/Lyimmi/laradock-manager): A simple app for managing Laradock containers. Made with wails.app (go & vue.js & vuetify). (by [Lyimmi](https://github.com/Lyimmi)) +* [Laradock Env](https://github.com/bagart/laradock_env): A wrapper with commands for managing Laradock. (by [BAGArt](https://github.com/bagart)) +* [Lara Query](https://github.com/TanisukeGoro/laraQuery): Easy Laradock CLI. (by [TanisukeGoro](https://github.com/TanisukeGoro)) +* [Laradock CLI](https://github.com/tonysm/laradock-cli): Laradock CLI helper. (by [Tonysm](https://github.com/Tonysm)) +* [Laradock Lite](https://github.com/yangliuyu/laradock-lite): A Docker based laravel development environment with minimal dependencies. (by [Yangliuyu](https://github.com/yangliuyu)) +* [Laradock Makefile](https://github.com/bazavlukd/laradock-makefile): Makefile with some useful commands for Laradock. (by [Bazavlukd](https://github.com/bazavlukd)) +* [Laradock Build](https://github.com/dockerframework/laradock-build): Docker builder & running script for Laradock. (by [Dockerframework](https://github.com/dockerframework)) +* [Laravel Laradock PHPStorm](https://github.com/LarryEitel/laravel-laradock-phpstorm): Guide for configuring PHPStorm for remote debugging with Laravel & Laradock. (by [LarryEitel](https://github.com/LarryEitel)) +* [Laradock Crudbooster](https://github.com/nutellinoit/laradock-crudbooster): Docker compose & Kubernetes solution to build apps with crudbooster & Laradock. (by [Nutellinoit](https://github.com/nutellinoit)) +* [Laradock Sample](https://github.com/tadaken3/laradock-sample): Install Laravel with Laradock. (by [Tadaken3](https://github.com/tadaken3)) +* [Stylemix's Laradock](https://github.com/stylemix/laradock): Alternate laradock for multiproject purpose. (by [Stylemix](https://github.com/stylemix)) + + + + +## Inspired by Laradock + +* [Dockery](https://github.com/taufek/dockery): Laradock for Ruby. (by [Taufek](https://github.com/Taufek)) +* [RubyDev Dock](https://github.com/scudelletti/rubydev-dock): Laradock for Ruby. (by [Diogo Scudelletti](https://github.com/scudelletti)) +* [NoDock](https://github.com/Osedea/nodock): Laradock for NodeJS. (by [Osedea](https://github.com/Osedea)) +* [Laradock Multi](https://github.com/bagart/laradock-multi): Laradock for PHP & NodeJS. (by [BAGArt](https://github.com/bagart)) +* [Wordpress Laradock](https://github.com/shov/wordpress-laradock): Laradock for Wordpress. (by [Shov](https://github.com/shov)) +* [Yii2 Laradock](https://github.com/ydatech/yii2-laradock): Laradock for Yii2. (by [Ydatech](https://github.com/ydatech)) +* [MageDock](https://github.com/ojhaujjwal/magedock): Laradock for Magento. (by [Ujjwal Ojha](https://github.com/ojhaujjwal)) +* [Docker Codeigniter](https://github.com/sebastianlzy/docker-codeigniter): Laradock for Codeigniter. (by [Sebastianlzy](https://github.com/sebastianlzy)) +* [Klaradock](https://github.com/poyhsiao/Klaradock): A customized Laradock. (by [Kim Hsiao](https://github.com/poyhsiao)) +* [Laravel Boilerplate](https://github.com/casivaagustin/laravel-boilerplate): A boilerplate with support for JWT. (by [Casivaagustin](https://github.com/casivaagustin)) + + + + + +

+ +> Feel free to submit a PR for listing your project here. diff --git a/DOCUMENTATION/themes/hugo-material-docs/layouts/_default/__list.html b/DOCUMENTATION/themes/hugo-material-docs/layouts/_default/__list.html index 54c2b783..fb1046a4 100644 --- a/DOCUMENTATION/themes/hugo-material-docs/layouts/_default/__list.html +++ b/DOCUMENTATION/themes/hugo-material-docs/layouts/_default/__list.html @@ -36,6 +36,7 @@ {{ with .Site.Params.copyright }} © {{ $.Now.Format "2006" }} {{ . }} – {{ end }} +

Documentation built with Hugo using the diff --git a/DOCUMENTATION/themes/hugo-material-docs/layouts/_default/single.html b/DOCUMENTATION/themes/hugo-material-docs/layouts/_default/single.html index 050f28d2..83cf3ee3 100644 --- a/DOCUMENTATION/themes/hugo-material-docs/layouts/_default/single.html +++ b/DOCUMENTATION/themes/hugo-material-docs/layouts/_default/single.html @@ -32,6 +32,7 @@ {{ with .Site.Params.copyright }} © {{ $.Now.Format "2006" }} {{ . }} – {{ end }} +

Documentation built with Hugo using the diff --git a/DOCUMENTATION/themes/hugo-material-docs/layouts/index.html b/DOCUMENTATION/themes/hugo-material-docs/layouts/index.html index 7f14e8b8..c09a68bf 100644 --- a/DOCUMENTATION/themes/hugo-material-docs/layouts/index.html +++ b/DOCUMENTATION/themes/hugo-material-docs/layouts/index.html @@ -39,7 +39,7 @@


- laradock logo + laradock logo {{ range where .Site.Pages "Type" "index" }}





@@ -54,6 +54,7 @@ {{ with .Site.Params.copyright }} © {{ $.Now.Format "2006" }} {{ . }} – {{ end }} +

Documentation built with Hugo using the diff --git a/DOCUMENTATION/themes/hugo-material-docs/layouts/partials/head.html b/DOCUMENTATION/themes/hugo-material-docs/layouts/partials/head.html index e890c0a2..406f7d2d 100644 --- a/DOCUMENTATION/themes/hugo-material-docs/layouts/partials/head.html +++ b/DOCUMENTATION/themes/hugo-material-docs/layouts/partials/head.html @@ -36,6 +36,25 @@ + + + + + + + + + + + + + + + + + + +