From 1257f8830abfd98bffcb88bc3ee707cd99bdb839 Mon Sep 17 00:00:00 2001 From: "Yu-Lung Shao (Allen)" Date: Mon, 10 Apr 2017 15:20:10 +0800 Subject: [PATCH 01/43] use PHP71 build workspace get ERROR fix #752, has a wrong comment string --- workspace/Dockerfile-71 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workspace/Dockerfile-71 b/workspace/Dockerfile-71 index 43312667..9d5b1dbd 100644 --- a/workspace/Dockerfile-71 +++ b/workspace/Dockerfile-71 @@ -10,7 +10,8 @@ # https://hub.docker.com/r/laradock/workspace/tags/ # -FROM laradock/workspace:1.3 # placeholder. Need change after new image would be built. +# placeholder. Need change after new image would be built. +FROM laradock/workspace:1.3 MAINTAINER Mahmoud Zalt From 80a60d58cff2984983ac5183be0343f931c52937 Mon Sep 17 00:00:00 2001 From: Winfried Date: Tue, 11 Apr 2017 13:22:07 +0200 Subject: [PATCH 02/43] Merging removed MySQL ext into MySQLi setting --- docker-compose.yml | 1 - env-example | 1 - php-fpm/Dockerfile-56 | 21 +++++---------------- php-fpm/Dockerfile-70 | 4 ++-- php-fpm/Dockerfile-71 | 4 ++-- 5 files changed, 9 insertions(+), 22 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 6f38e6c2..959699d3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -64,7 +64,6 @@ services: - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF} - INSTALL_AEROSPIKE_EXTENSION=${PHP_FPM_INSTALL_AEROSPIKE_EXTENSION} - INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI} - - INSTALL_MYSQL=${PHP_FPM_INSTALL_MYSQL} - INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER} - INSTALL_INTL=${PHP_FPM_INSTALL_INTL} dockerfile: "Dockerfile-${PHP_VERSION}" diff --git a/env-example b/env-example index ef7c2582..412d5f82 100644 --- a/env-example +++ b/env-example @@ -46,7 +46,6 @@ PHP_FPM_INSTALL_OPCACHE=false PHP_FPM_INSTALL_EXIF=false PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false PHP_FPM_INSTALL_MYSQLI=false -PHP_FPM_INSTALL_MYSQL=false PHP_FPM_INSTALL_TOKENIZER=false PHP_FPM_INSTALL_INTL=false diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index 5376484b..91039ecd 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -107,20 +107,6 @@ RUN if [ ${INSTALL_MEMCACHED} = true ]; then \ docker-php-ext-enable memcached \ ;fi -##################################### -# PHP MySQL: -##################################### - -ARG INSTALL_MYSQL=false -COPY ./mysql.ini /usr/local/etc/php/conf.d/mysql.ini -RUN if [ ${INSTALL_MYSQL} = true ]; then \ - # Install the php mysql extension - docker-php-ext-install mysql && \ - docker-php-ext-install mysqli && \ - docker-php-ext-enable mysql && \ - docker-php-ext-enable mysqli \ -;fi - ##################################### # PHP Aerospike: ##################################### @@ -162,8 +148,11 @@ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini ##################################### ARG INSTALL_MYSQLI=false -RUN if [ ${INSTALL_MYSQLI} = true ]; then \ - docker-php-ext-install mysqli \ +# MySQL extenstion is available for Php5.6 and lower only +COPY ./mysql.ini /usr/local/etc/php/conf.d/mysql.ini +RUN if [ ${INSTALL_MYSQLI} = true ]; then \ + docker-php-ext-install mysql && \ + docker-php-ext-install mysqli \ ;fi ##################################### diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index 11a1e3ec..629735ee 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -178,8 +178,8 @@ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini # Mysqli Modifications: ##################################### ARG INSTALL_MYSQLI=false -RUN if [ ${INSTALL_MYSQLI} = true ]; then \ - docker-php-ext-install mysqli \ +RUN if [ ${INSTALL_MYSQLI} = true ]; then \ + docker-php-ext-install mysqli \ ;fi ##################################### diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index 94beab02..f69f1809 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -132,8 +132,8 @@ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini # Mysqli Modifications: ##################################### ARG INSTALL_MYSQLI=false -RUN if [ ${INSTALL_MYSQLI} = true ]; then \ - docker-php-ext-install mysqli \ +RUN if [ ${INSTALL_MYSQLI} = true ]; then \ + docker-php-ext-install mysqli \ ;fi ##################################### From 4b91fb1212ee24c8379237c5566343c39c2b4d49 Mon Sep 17 00:00:00 2001 From: Winfried Date: Tue, 11 Apr 2017 16:42:27 +0200 Subject: [PATCH 03/43] Fixing INTL ext in php-fpm for php71 --- php-fpm/Dockerfile-71 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index 94beab02..f54cc2a4 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -149,8 +149,8 @@ RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ # Human Language and Character Encoding Support: ##################################### -ARG INTL=false -RUN if [ ${INTL} = true ]; then \ +ARG INSTALL_INTL=false +RUN if [ ${INSTALL_INTL} = true ]; then \ # Install intl and requirements apt-get install -y zlib1g-dev libicu-dev g++ && \ docker-php-ext-configure intl && \ From ef38dd15328227c2f4dd05869a5f6905cd8b7835 Mon Sep 17 00:00:00 2001 From: Winfried Date: Tue, 11 Apr 2017 16:45:20 +0200 Subject: [PATCH 04/43] Fixing ghostscript env option --- docker-compose.yml | 1 + php-fpm/Dockerfile-70 | 3 +-- php-fpm/Dockerfile-71 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 6f38e6c2..b76edfee 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -67,6 +67,7 @@ services: - INSTALL_MYSQL=${PHP_FPM_INSTALL_MYSQL} - INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER} - INSTALL_INTL=${PHP_FPM_INSTALL_INTL} + - INSTALL_GHOSTSCRIPT=${PHP_FPM_INSTALL_GHOSTSCRIPT} dockerfile: "Dockerfile-${PHP_VERSION}" volumes_from: - applications diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index 11a1e3ec..828ccefe 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -280,7 +280,7 @@ RUN if [ ${INSTALL_INTL} = true ]; then \ # GHOSTSCRIPT: ##################################### -ARG GHOSTSCRIPT=false +ARG INSTALL_GHOSTSCRIPT=false RUN if [ ${GHOSTSCRIPT} = true ]; then \ # Install the ghostscript extension # for PDF editing @@ -290,7 +290,6 @@ RUN if [ ${GHOSTSCRIPT} = true ]; then \ ghostscript \ ;fi - # #-------------------------------------------------------------------------- # Final Touch diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index 94beab02..9c1702d8 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -161,7 +161,7 @@ RUN if [ ${INTL} = true ]; then \ # GHOSTSCRIPT: ##################################### -ARG GHOSTSCRIPT=false +ARG INSTALL_GHOSTSCRIPT=false RUN if [ ${GHOSTSCRIPT} = true ]; then \ # Install the ghostscript extension # for PDF editing From 7dbe65e5f86161008d1076140712ecaceef2b2d2 Mon Sep 17 00:00:00 2001 From: Winfried Date: Tue, 11 Apr 2017 16:47:38 +0200 Subject: [PATCH 05/43] Bringing Dockerfile 71 up-to-date with 70 --- php-fpm/Dockerfile-71 | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index 94beab02..7b2c3ae6 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -37,6 +37,18 @@ MAINTAINER Mahmoud Zalt # - ... # +##################################### +# SOAP: +##################################### + +ARG INSTALL_SOAP=false +RUN if [ ${INSTALL_SOAP} = true ]; then \ + # Install the soap extension + apt-get -y update && \ + apt-get -y install libxml2-dev php-soap && \ + docker-php-ext-install soap \ +;fi + ##################################### # xDebug: ##################################### @@ -72,6 +84,16 @@ RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \ docker-php-ext-install zip \ ;fi +##################################### +# bcmath: +##################################### + +ARG INSTALL_BCMATH=false +RUN if [ ${INSTALL_BCMATH} = true ]; then \ + # Install the bcmath extension + docker-php-ext-install bcmath \ +;fi + ##################################### # PHP Memcached: ##################################### @@ -114,6 +136,7 @@ RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \ && make install \ ) \ && rm /tmp/aerospike-client-php.tar.gz \ + && docker-php-ext-enable aerospike \ ;fi ##################################### From 86ebbfbdd33e5c634b7dba66b76b9704d190102e Mon Sep 17 00:00:00 2001 From: Winfried Date: Tue, 11 Apr 2017 20:48:42 +0200 Subject: [PATCH 06/43] Adding exif/redis to php-fpm 56 and 71 --- php-fpm/Dockerfile-56 | 11 +++++++++++ php-fpm/Dockerfile-70 | 3 ++- php-fpm/Dockerfile-71 | 23 +++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index 91039ecd..9519b7b6 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -107,6 +107,17 @@ RUN if [ ${INSTALL_MEMCACHED} = true ]; then \ docker-php-ext-enable memcached \ ;fi +##################################### +# Exif: +##################################### + +ARG INSTALL_EXIF=false +RUN if [ ${INSTALL_EXIF} = true ]; then \ + # Enable Exif PHP extentions requirements + docker-php-ext-install exif && \ + docker-php-ext-enable exif \ +;fi + ##################################### # PHP Aerospike: ##################################### diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index 9189364e..e0895fa0 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -61,8 +61,9 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \ ;fi ##################################### -# PHP REDIS EXTENSION FOR PHP 7.0 +# PHP REDIS EXTENSION FOR PHP 7 ##################################### + ARG INSTALL_PHPREDIS=false RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ # Install Php Redis Extension diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index 2b8d513b..96df3890 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -48,6 +48,18 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \ docker-php-ext-enable xdebug \ ;fi +##################################### +# PHP REDIS EXTENSION FOR PHP 7 +##################################### + +ARG INSTALL_PHPREDIS=false +RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ + # Install Php Redis Extension + pecl install -o -f redis \ + && rm -rf /tmp/pear \ + && docker-php-ext-enable redis \ +;fi + # Copy xdebug configration for remote debugging COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini @@ -94,6 +106,17 @@ RUN if [ ${INSTALL_MEMCACHED} = true ]; then \ && docker-php-ext-enable memcached \ ;fi +##################################### +# Exif: +##################################### + +ARG INSTALL_EXIF=false +RUN if [ ${INSTALL_EXIF} = true ]; then \ + # Enable Exif PHP extentions requirements + docker-php-ext-install exif && \ + docker-php-ext-enable exif \ +;fi + ##################################### # PHP Aerospike: ##################################### From f91def64d7f97a3a9101823a5e520bcc05c1a882 Mon Sep 17 00:00:00 2001 From: Winfried Date: Tue, 11 Apr 2017 21:22:57 +0200 Subject: [PATCH 07/43] Fixing whitespaces and tailing spaces --- docker-compose.yml | 1 + php-fpm/Dockerfile-56 | 2 +- php-fpm/Dockerfile-70 | 8 +++----- php-fpm/Dockerfile-71 | 3 ++- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 65639673..8a0a24af 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -82,6 +82,7 @@ services: - backend ### PHP Worker Container ##################################### + php-worker: build: context: ./php-worker diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index 9519b7b6..03d6a03c 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -44,7 +44,7 @@ ARG INSTALL_SOAP=false RUN if [ ${INSTALL_SOAP} = true ]; then \ # Install the soap extension apt-get -y update && \ - apt-get -y install libxml2-dev php-soap && \ + apt-get -y install libxml2-dev php-soap && \ docker-php-ext-install soap \ ;fi diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index e0895fa0..7665d413 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -34,7 +34,6 @@ MAINTAINER Mahmoud Zalt # in the `docker-compose.yml` before the build. # Example: # - INSTALL_ZIP_ARCHIVE=true -# - ... # ##################################### @@ -139,7 +138,6 @@ RUN if [ ${INSTALL_EXIF} = true ]; then \ docker-php-ext-enable exif \ ;fi - ##################################### # PHP Aerospike: ##################################### @@ -166,6 +164,7 @@ RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \ ##################################### # Opcache: ##################################### + ARG INSTALL_OPCACHE=false RUN if [ ${INSTALL_OPCACHE} = true ]; then \ docker-php-ext-install opcache && \ @@ -178,6 +177,7 @@ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini ##################################### # Mysqli Modifications: ##################################### + ARG INSTALL_MYSQLI=false RUN if [ ${INSTALL_MYSQLI} = true ]; then \ docker-php-ext-install mysqli \ @@ -195,6 +195,7 @@ RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ ##################################### # SQL SERVER: ##################################### + ARG MSSQL=false RUN if [ ${MSSQL} = true ]; then \ @@ -245,7 +246,6 @@ RUN if [ ${MSSQL} = true ]; then \ && ls -l /opt/microsoft/msodbcsql/ \ && odbcinst -q -d -n "ODBC Driver 13 for SQL Server" && \ - ##################################### # Install sqlsrv y pdo_sqlsrv # extensions: @@ -263,8 +263,6 @@ RUN if [ ${MSSQL} = true ]; then \ && locale-gen \ ;fi - - ##################################### # Human Language and Character Encoding Support: ##################################### diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index 96df3890..b48f5a0b 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -34,7 +34,6 @@ MAINTAINER Mahmoud Zalt # in the `docker-compose.yml` before the build. # Example: # - INSTALL_ZIP_ARCHIVE=true -# - ... # ##################################### @@ -142,6 +141,7 @@ RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \ ##################################### # Opcache: ##################################### + ARG INSTALL_OPCACHE=false RUN if [ ${INSTALL_OPCACHE} = true ]; then \ docker-php-ext-install opcache && \ @@ -154,6 +154,7 @@ COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini ##################################### # Mysqli Modifications: ##################################### + ARG INSTALL_MYSQLI=false RUN if [ ${INSTALL_MYSQLI} = true ]; then \ docker-php-ext-install mysqli \ From e10217c64d94787b3c54b25444f446d00f62b09e Mon Sep 17 00:00:00 2001 From: Winfried Date: Tue, 11 Apr 2017 21:52:34 +0200 Subject: [PATCH 08/43] Fixing ghostscript env option Forgot something :(. --- env-example | 1 + 1 file changed, 1 insertion(+) diff --git a/env-example b/env-example index 412d5f82..0c7d97ac 100644 --- a/env-example +++ b/env-example @@ -48,6 +48,7 @@ PHP_FPM_INSTALL_AEROSPIKE_EXTENSION=false PHP_FPM_INSTALL_MYSQLI=false PHP_FPM_INSTALL_TOKENIZER=false PHP_FPM_INSTALL_INTL=false +PHP_FPM_INSTALL_GHOSTSCRIPT=false ### NGINX Container NGINX_HOST_HTTP_PORT=80 From 059468176090e2cf4d832256545cde7314090754 Mon Sep 17 00:00:00 2001 From: Winfried Date: Tue, 11 Apr 2017 23:10:41 +0200 Subject: [PATCH 09/43] Fixing the php ext already loaded warnings Example: ``` warning: exif (exif.so) is already loaded! ``` --- php-fpm/Dockerfile-56 | 6 ++---- php-fpm/Dockerfile-70 | 6 ++---- php-fpm/Dockerfile-71 | 7 +++---- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index 9519b7b6..dcc1e47f 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -114,8 +114,7 @@ RUN if [ ${INSTALL_MEMCACHED} = true ]; then \ ARG INSTALL_EXIF=false RUN if [ ${INSTALL_EXIF} = true ]; then \ # Enable Exif PHP extentions requirements - docker-php-ext-install exif && \ - docker-php-ext-enable exif \ + docker-php-ext-install exif \ ;fi ##################################### @@ -147,8 +146,7 @@ RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \ ARG INSTALL_OPCACHE=false RUN if [ ${INSTALL_OPCACHE} = true ]; then \ - docker-php-ext-install opcache && \ - docker-php-ext-enable opcache \ + docker-php-ext-install opcache \ ;fi # Copy opcache configration diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index e0895fa0..57f753cd 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -135,8 +135,7 @@ RUN if [ ${INSTALL_MEMCACHED} = true ]; then \ ARG INSTALL_EXIF=false RUN if [ ${INSTALL_EXIF} = true ]; then \ # Enable Exif PHP extentions requirements - docker-php-ext-install exif && \ - docker-php-ext-enable exif \ + docker-php-ext-install exif \ ;fi @@ -168,8 +167,7 @@ RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \ ##################################### ARG INSTALL_OPCACHE=false RUN if [ ${INSTALL_OPCACHE} = true ]; then \ - docker-php-ext-install opcache && \ - docker-php-ext-enable opcache \ + docker-php-ext-install opcache \ ;fi # Copy opcache configration diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index 96df3890..ff10de8a 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -113,8 +113,7 @@ RUN if [ ${INSTALL_MEMCACHED} = true ]; then \ ARG INSTALL_EXIF=false RUN if [ ${INSTALL_EXIF} = true ]; then \ # Enable Exif PHP extentions requirements - docker-php-ext-install exif && \ - docker-php-ext-enable exif \ + docker-php-ext-install exif \ ;fi ##################################### @@ -137,6 +136,7 @@ RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \ && make install \ ) \ && rm /tmp/aerospike-client-php.tar.gz \ + && docker-php-ext-enable aerospike \ ;fi ##################################### @@ -144,8 +144,7 @@ RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \ ##################################### ARG INSTALL_OPCACHE=false RUN if [ ${INSTALL_OPCACHE} = true ]; then \ - docker-php-ext-install opcache && \ - docker-php-ext-enable opcache \ + docker-php-ext-install opcache \ ;fi # Copy opcache configration From 657d8535a6cbecd2e0ea0ae11fc39e283ec43c96 Mon Sep 17 00:00:00 2001 From: Winfried Date: Tue, 11 Apr 2017 23:15:09 +0200 Subject: [PATCH 10/43] Fixing not-consumed buildargs php-fpm-56 Should fix the following warning: ``` [Warning] One or more build-args [INSTALL_INTL INSTALL_PHPREDIS INSTALL_GHOSTSCRIPT] were not consumed ``` --- php-fpm/Dockerfile-56 | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index 9519b7b6..4c4bd405 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -65,6 +65,18 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \ # Copy xdebug configration for remote debugging COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini +##################################### +# PHP REDIS EXTENSION FOR PHP 5 +##################################### + +ARG INSTALL_PHPREDIS=false +RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ + # Install Php Redis Extension + pecl install -o -f redis \ + && rm -rf /tmp/pear \ + && docker-php-ext-enable redis \ +;fi + ##################################### # MongoDB: ##################################### @@ -175,6 +187,29 @@ RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ docker-php-ext-install tokenizer \ ;fi +##################################### +# Human Language and Character Encoding Support: +##################################### + +ARG INSTALL_INTL=false +RUN if [ ${INSTALL_INTL} = true ]; then \ + # Install intl and requirements + apt-get install -y zlib1g-dev libicu-dev g++ && \ + docker-php-ext-configure intl && \ + docker-php-ext-install intl \ +;fi + +##################################### +# GHOSTSCRIPT: +##################################### + +ARG INSTALL_GHOSTSCRIPT=false +RUN if [ ${GHOSTSCRIPT} = true ]; then \ + # Install the ghostscript extension for PDF editing + apt-get update && \ + apt-get install -y poppler-utils ghostscript \ +;fi + # #-------------------------------------------------------------------------- # Final Touch From 714902d12af68553b547f6a26bd2ad9c72122bf9 Mon Sep 17 00:00:00 2001 From: Winfried Date: Tue, 11 Apr 2017 23:17:21 +0200 Subject: [PATCH 11/43] Moving php-fpm xdebug config to proper location --- php-fpm/Dockerfile-70 | 6 +++--- php-fpm/Dockerfile-71 | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index e0895fa0..c7077539 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -60,6 +60,9 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \ docker-php-ext-enable xdebug \ ;fi +# Copy xdebug configration for remote debugging +COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini + ##################################### # PHP REDIS EXTENSION FOR PHP 7 ##################################### @@ -72,9 +75,6 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ && docker-php-ext-enable redis \ ;fi -# Copy xdebug configration for remote debugging -COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini - ##################################### # MongoDB: ##################################### diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index 96df3890..34fc6028 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -48,6 +48,9 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \ docker-php-ext-enable xdebug \ ;fi +# Copy xdebug configration for remote debugging +COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini + ##################################### # PHP REDIS EXTENSION FOR PHP 7 ##################################### @@ -60,9 +63,6 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ && docker-php-ext-enable redis \ ;fi -# Copy xdebug configration for remote debugging -COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini - ##################################### # MongoDB: ##################################### From cdb456a9b59219e75e87469a530d73058e873950 Mon Sep 17 00:00:00 2001 From: Winfried Date: Tue, 11 Apr 2017 23:19:58 +0200 Subject: [PATCH 12/43] Fixing indentation --- php-fpm/Dockerfile-56 | 2 +- php-fpm/Dockerfile-70 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index 03d6a03c..0d5397e1 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -172,7 +172,7 @@ RUN if [ ${INSTALL_MYSQLI} = true ]; then \ ARG INSTALL_TOKENIZER=false RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ - docker-php-ext-install tokenizer \ + docker-php-ext-install tokenizer \ ;fi # diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index 7665d413..7fabcd1e 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -189,7 +189,7 @@ RUN if [ ${INSTALL_MYSQLI} = true ]; then \ ARG INSTALL_TOKENIZER=false RUN if [ ${INSTALL_TOKENIZER} = true ]; then \ - docker-php-ext-install tokenizer \ + docker-php-ext-install tokenizer \ ;fi ##################################### From 597f922db776307b09b83e1463d5066ebb87c188 Mon Sep 17 00:00:00 2001 From: James Whiteman Date: Wed, 12 Apr 2017 09:20:06 +1200 Subject: [PATCH 13/43] Update Dockerfile-70 --- php-fpm/Dockerfile-70 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index e0895fa0..7f2d9d2b 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -245,6 +245,14 @@ RUN if [ ${MSSQL} = true ]; then \ && ls -l /opt/microsoft/msodbcsql/ \ && odbcinst -q -d -n "ODBC Driver 13 for SQL Server" && \ + ##################################### + # Install pdo_dblib + ##################################### + + && docker-php-ext-install pdo \ + && docker-php-ext-configure pdo_dblib --with-libdir=/lib/x86_64-linux-gnu \ + && docker-php-ext-install pdo_dblib \ + && docker-php-ext-enable pdo_dblib && \ ##################################### # Install sqlsrv y pdo_sqlsrv From a835c9e7091b64d45ed664d260c8cc4ba8b82f2e Mon Sep 17 00:00:00 2001 From: Winfried Date: Wed, 12 Apr 2017 00:28:54 +0200 Subject: [PATCH 14/43] Fixing soap already loaded warning in workspace --- workspace/Dockerfile-70 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/workspace/Dockerfile-70 b/workspace/Dockerfile-70 index db6d5c78..323c5029 100644 --- a/workspace/Dockerfile-70 +++ b/workspace/Dockerfile-70 @@ -60,8 +60,7 @@ RUN if [ ${INSTALL_SOAP} = true ]; then \ # Install the PHP SOAP extension apt-get -y update && \ add-apt-repository -y ppa:ondrej/php && \ - apt-get -y install libxml2-dev php7.0-soap && \ - echo "extension=soap.so" >> /etc/php/7.0/cli/conf.d/40-soap.ini \ + apt-get -y install libxml2-dev php7.0-soap \ ;fi ##################################### From ad00284a225c9453e0175f0fd26e95cc1a165aa8 Mon Sep 17 00:00:00 2001 From: Winfried Date: Wed, 12 Apr 2017 00:35:11 +0200 Subject: [PATCH 15/43] Removing ext enable aerospike error --- php-fpm/Dockerfile-71 | 1 - 1 file changed, 1 deletion(-) diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index 7b2c3ae6..bc4f5cfb 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -136,7 +136,6 @@ RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \ && make install \ ) \ && rm /tmp/aerospike-client-php.tar.gz \ - && docker-php-ext-enable aerospike \ ;fi ##################################### From 603207cc2b549520f55d3225a80ddb4c3c574d36 Mon Sep 17 00:00:00 2001 From: Crispy Date: Wed, 12 Apr 2017 10:17:06 +0200 Subject: [PATCH 16/43] Update Dockerfile-70 fixes a built crash because of an unexpected && --- php-fpm/Dockerfile-70 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index aabbf3dc..3b8f4932 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -242,7 +242,7 @@ RUN if [ ${MSSQL} = true ]; then \ && ldd lib64/libmsodbcsql-13.0.so.0.0 \ && ./install.sh install --accept-license \ && ls -l /opt/microsoft/msodbcsql/ \ - && odbcinst -q -d -n "ODBC Driver 13 for SQL Server" && \ + && odbcinst -q -d -n "ODBC Driver 13 for SQL Server" \ ##################################### # Install pdo_dblib From 81053c0868723d7f615906ab5be0273dcde86b81 Mon Sep 17 00:00:00 2001 From: Steve Walker Date: Wed, 12 Apr 2017 10:25:07 -0400 Subject: [PATCH 17/43] Added support for jenkins official container --- docker-compose.yml | 13 + env-example | 5 + jenkins/.github/ISSUE_TEMPLATE.md | 23 ++ jenkins/.gitmodules | 6 + jenkins/CONTRIBUTING.md | 16 ++ jenkins/Dockerfile | 108 +++++++++ jenkins/Jenkinsfile | 38 +++ jenkins/README.md | 226 ++++++++++++++++++ jenkins/docker-compose.yml | 14 ++ jenkins/init.groovy | 12 + jenkins/install-plugins.sh | 205 ++++++++++++++++ jenkins/jenkins-support | 127 ++++++++++ jenkins/jenkins.sh | 26 ++ jenkins/jenkins_home/.gitignore | 28 +++ jenkins/plugins.sh | 124 ++++++++++ jenkins/publish.sh | 148 ++++++++++++ jenkins/tests/functions.bats | 31 +++ jenkins/tests/install-plugins.bats | 118 +++++++++ jenkins/tests/install-plugins/Dockerfile | 3 + .../tests/install-plugins/update/Dockerfile | 3 + jenkins/tests/plugins/Dockerfile | 4 + jenkins/tests/plugins/plugins.txt | 2 + jenkins/tests/runtime.bats | 56 +++++ jenkins/tests/test_helpers.bash | 84 +++++++ jenkins/tests/upgrade-plugins/Dockerfile | 3 + jenkins/update-official-library.sh | 36 +++ 26 files changed, 1459 insertions(+) create mode 100644 jenkins/.github/ISSUE_TEMPLATE.md create mode 100644 jenkins/.gitmodules create mode 100644 jenkins/CONTRIBUTING.md create mode 100644 jenkins/Dockerfile create mode 100644 jenkins/Jenkinsfile create mode 100644 jenkins/README.md create mode 100644 jenkins/docker-compose.yml create mode 100644 jenkins/init.groovy create mode 100644 jenkins/install-plugins.sh create mode 100644 jenkins/jenkins-support create mode 100644 jenkins/jenkins.sh create mode 100644 jenkins/jenkins_home/.gitignore create mode 100644 jenkins/plugins.sh create mode 100644 jenkins/publish.sh create mode 100644 jenkins/tests/functions.bats create mode 100644 jenkins/tests/install-plugins.bats create mode 100644 jenkins/tests/install-plugins/Dockerfile create mode 100644 jenkins/tests/install-plugins/update/Dockerfile create mode 100644 jenkins/tests/plugins/Dockerfile create mode 100644 jenkins/tests/plugins/plugins.txt create mode 100644 jenkins/tests/runtime.bats create mode 100644 jenkins/tests/test_helpers.bash create mode 100644 jenkins/tests/upgrade-plugins/Dockerfile create mode 100644 jenkins/update-official-library.sh diff --git a/docker-compose.yml b/docker-compose.yml index 29e49aaa..77b36a96 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -513,6 +513,19 @@ services: - proxy - proxy2 +### Jenkins ################################################### + jenkins: + build: ./jenkins + environment: + JAVA_OPTS: "-Djava.awt.headless=true" + ports: + - "${JENKINS_HOST_SLAVE_AGENT_PORT}:50000" + - "${JENKINS_HOST_HTTP_PORT}:8080" + privileged: true + volumes: + - ${JENKINS_HOME}:/var/jenkins_home + - /var/run/docker.sock:/var/run/docker.sock + ### Networks Setup ############################################ networks: diff --git a/env-example b/env-example index bb7d1b99..2a6dd75c 100644 --- a/env-example +++ b/env-example @@ -145,6 +145,11 @@ VARNISH_PROXY2_SERVER=SERVER2 ### HAPROXY Container HAPROXY_HOST_HTTP_PORT=8085 +### JENKINS Container +JENKINS_HOST_HTTP_PORT=8090 +JENKINS_HOST_SLAVE_AGENT_PORT=50000 +JENKINS_HOME=./jenkins/jenkins_home + ### MISC # Replace with your Docker Host IP (will be appended to /etc/hosts) DOCKER_HOST_IP=10.0.75.1 diff --git a/jenkins/.github/ISSUE_TEMPLATE.md b/jenkins/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..44440f60 --- /dev/null +++ b/jenkins/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,23 @@ +# Issues and Contributing + +Please note that only issues related to this Docker image will be addressed here. + +* If you have Docker related issues, please ask in the [Docker user mailing list](https://groups.google.com/forum/#!forum/docker-user). +* If you have Jenkins related issues, please ask in the [Jenkins mailing lists](https://jenkins-ci.org/content/mailing-lists). +* If you are not sure, then this is probably not the place to create an issue and you should use any of the previously mentioned mailing lists. + +If after going through the previous checklist you still think you should create an issue here please provide: + + +### Docker commands that you execute + +### Actual result + +### Expected outcome + +### Have you tried a non-dockerized Jenkins and get the expected outcome? + +### Output of `docker version` + +### Other relevant information + diff --git a/jenkins/.gitmodules b/jenkins/.gitmodules new file mode 100644 index 00000000..6f8a2f8e --- /dev/null +++ b/jenkins/.gitmodules @@ -0,0 +1,6 @@ +[submodule "tests/test_helper/bats-support"] + path = tests/test_helper/bats-support + url = https://github.com/ztombol/bats-support +[submodule "tests/test_helper/bats-assert"] + path = tests/test_helper/bats-assert + url = https://github.com/ztombol/bats-assert diff --git a/jenkins/CONTRIBUTING.md b/jenkins/CONTRIBUTING.md new file mode 100644 index 00000000..92aafd71 --- /dev/null +++ b/jenkins/CONTRIBUTING.md @@ -0,0 +1,16 @@ +# Issues and Contributing + +Please note that only issues related to this Docker image will be addressed here. + +* If you have Docker related issues, please ask in the [Docker user mailing list](https://groups.google.com/forum/#!forum/docker-user). +* If you have Jenkins related issues, please ask in the [Jenkins mailing lists](https://jenkins-ci.org/content/mailing-lists). +* If you are not sure, then this is probably not the place to create an issue and you should use any of the previously mentioned mailing lists. + +If after going through the previous checklist you still think you should create an issue here please provide: + +* Docker commands that you execute +* Actual result +* Expected outcome +* Have you tried a non-dockerized Jenkins and get the expected outcome? +* Output of `docker version` +* Other relevant information diff --git a/jenkins/Dockerfile b/jenkins/Dockerfile new file mode 100644 index 00000000..63480c7c --- /dev/null +++ b/jenkins/Dockerfile @@ -0,0 +1,108 @@ +FROM openjdk:8-jdk + +RUN apt-get update && apt-get install -y git curl && rm -rf /var/lib/apt/lists/* + +ENV JENKINS_HOME /var/jenkins_home +ENV JENKINS_SLAVE_AGENT_PORT 50000 + +ARG user=jenkins +ARG group=jenkins +ARG uid=1000 +ARG gid=1000 + +# Jenkins is run with user `jenkins`, uid = 1000 +# If you bind mount a volume from the host or a data container, +# ensure you use the same uid +RUN groupadd -g ${gid} ${group} \ + && useradd -d "$JENKINS_HOME" -u ${uid} -g ${gid} -m -s /bin/bash ${user} + +# Jenkins home directory is a volume, so configuration and build history +# can be persisted and survive image upgrades +VOLUME /var/jenkins_home + +# `/usr/share/jenkins/ref/` contains all reference configuration we want +# to set on a fresh new installation. Use it to bundle additional plugins +# or config file with your custom jenkins Docker image. +RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d + +ENV TINI_VERSION 0.13.2 +ENV TINI_SHA afbf8de8a63ce8e4f18cb3f34dfdbbd354af68a1 + +# Use tini as subreaper in Docker container to adopt zombie processes +RUN curl -fsSL https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-static-amd64 -o /bin/tini && chmod +x /bin/tini \ + && echo "$TINI_SHA /bin/tini" | sha1sum -c - + +COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-agent-port.groovy + +# jenkins version being bundled in this docker image +ARG JENKINS_VERSION +ENV JENKINS_VERSION ${JENKINS_VERSION:-2.32.3} + +# jenkins.war checksum, download will be validated using it +ARG JENKINS_SHA=a25b9a314ca9e76f9673da7309e1882e32674223 + +# Can be used to customize where jenkins.war get downloaded from +ARG JENKINS_URL=https://repo.jenkins-ci.org/public/org/jenkins-ci/main/jenkins-war/${JENKINS_VERSION}/jenkins-war-${JENKINS_VERSION}.war + +# could use ADD but this one does not check Last-Modified header neither does it allow to control checksum +# see https://github.com/docker/docker/issues/8331 +RUN curl -fsSL ${JENKINS_URL} -o /usr/share/jenkins/jenkins.war \ + && echo "${JENKINS_SHA} /usr/share/jenkins/jenkins.war" | sha1sum -c - + +ENV JENKINS_UC https://updates.jenkins.io +RUN chown -R ${user} "$JENKINS_HOME" /usr/share/jenkins/ref + + +# Add jenkins to the correct group +# see http://stackoverflow.com/questions/42164653/docker-in-docker-permissions-error +# use "getent group docker | awk -F: '{printf "%d\n", $3}'" command on host to find correct value for gid or simply use 'id' +ARG DOCKER_GID=998 + +RUN groupadd -g ${DOCKER_GID} docker \ + && curl -sSL https://get.docker.com/ | sh \ + && apt-get -q autoremove \ + && apt-get -q clean -y \ + && rm -rf /var/lib/apt/lists/* /var/cache/apt/*.bin + +# Install Docker-in-Docker from git@github.com:jpetazzo/dind.git +# RUN apt-get update -qq && apt-get install -qqy apt-transport-https ca-certificates curl lxc iptables +# Install Docker from Docker Inc. repositories. +RUN apt-get install -y curl && curl -sSL https://get.docker.com/ | sh +RUN usermod -aG docker jenkins + +# Install Docker-Compose +RUN curl -L "https://github.com/docker/compose/releases/download/1.10.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +RUN chmod +x /usr/local/bin/docker-compose + + +# for main web interface: +EXPOSE 8080 + +# will be used by attached slave agents: +EXPOSE 50000 + +ENV COPY_REFERENCE_FILE_LOG $JENKINS_HOME/copy_reference_file.log + +USER ${user} + +COPY jenkins-support /usr/local/bin/jenkins-support +COPY jenkins.sh /usr/local/bin/jenkins.sh +ENTRYPOINT ["/bin/tini", "--", "/usr/local/bin/jenkins.sh"] + +# from a derived Dockerfile, can use `RUN plugins.sh active.txt` to setup /usr/share/jenkins/ref/plugins from a support bundle +COPY plugins.sh /usr/local/bin/plugins.sh +COPY install-plugins.sh /usr/local/bin/install-plugins.sh + +# Only need below if we are starting from empty jenkins_home +## Copy the RSA keys +#RUN mkdir -p /var/jenkins_home/.ssh +#RUN chown jenkins:jenkins /var/jenkins_home/.ssh +#COPY keys/id_rsa /var/jenkins_home/.ssh/id_rsa.pub +#COPY keys/id_rsa /var/jenkins_home/.ssh/id_rsa +#COPY keys/known_hosts /var/jenkins_home/.ssh/known_hosts +# +#USER root +#RUN chmod 600 /var/jenkins_home/.ssh/id_rsa +#RUN chmod 644 /var/jenkins_home/.ssh/id_rsa.pub +## ssh-keyscan -H github.com >> ~/.ssh/known_hosts +## ssh-keyscan -H bitbucket.org >> ~/.ssh/known_hosts diff --git a/jenkins/Jenkinsfile b/jenkins/Jenkinsfile new file mode 100644 index 00000000..7cbb3d20 --- /dev/null +++ b/jenkins/Jenkinsfile @@ -0,0 +1,38 @@ +#!/usr/bin/env groovy + +properties([ + buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '5')), + pipelineTriggers([cron('@daily')]), +]) + +node('docker') { + deleteDir() + + stage('Checkout') { + checkout scm + } + + if (!infra.isTrusted()) { + /* Outside of the trusted.ci environment, we're building and testing + * the Dockerful in this repository, but not publishing to docker hub + */ + stage('Build') { + docker.build('jenkins') + } + + stage('Test') { + sh """ + git submodule update --init --recursive + git clone https://github.com/sstephenson/bats.git + bats/bin/bats tests + """ + } + } else { + /* In our trusted.ci environment we only want to be publishing our + * containers from artifacts + */ + stage('Publish') { + sh './publish.sh' + } + } +} diff --git a/jenkins/README.md b/jenkins/README.md new file mode 100644 index 00000000..78b37ffb --- /dev/null +++ b/jenkins/README.md @@ -0,0 +1,226 @@ +# Official Jenkins Docker image + +The Jenkins Continuous Integration and Delivery server. + +This is a fully functional Jenkins server, based on the Long Term Support release. +[http://jenkins.io/](http://jenkins.io/). + +For weekly releases check out [`jenkinsci/jenkins`](https://hub.docker.com/r/jenkinsci/jenkins/) + + + + + +# Usage + +``` +docker run -p 8080:8080 -p 50000:50000 jenkins +``` + +NOTE: read below the _build executors_ part for the role of the `50000` port mapping. + +This will store the workspace in /var/jenkins_home. All Jenkins data lives in there - including plugins and configuration. +You will probably want to make that an explicit volume so you can manage it and attach to another container for upgrades : + +``` +docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins +``` + +this will automatically create a 'jenkins_home' volume on docker host, that will survive container stop/restart/deletion. + +Avoid using a bind mount from a folder on host into `/var/jenkins_home`, as this might result in file permission issue. If you _really_ need to bind mount jenkins_home, ensure that directory on host is accessible by the jenkins user in container (jenkins user - uid 1000) or use `-u some_other_user` parameter with `docker run`. + +## Backing up data + +If you bind mount in a volume - you can simply back up that directory +(which is jenkins_home) at any time. + +This is highly recommended. Treat the jenkins_home directory as you would a database - in Docker you would generally put a database on a volume. + +If your volume is inside a container - you can use ```docker cp $ID:/var/jenkins_home``` command to extract the data, or other options to find where the volume data is. +Note that some symlinks on some OSes may be converted to copies (this can confuse jenkins with lastStableBuild links etc) + +For more info check Docker docs section on [Managing data in containers](https://docs.docker.com/engine/tutorials/dockervolumes/) + +# Setting the number of executors + +You can specify and set the number of executors of your Jenkins master instance using a groovy script. By default its set to 2 executors, but you can extend the image and change it to your desired number of executors : + +`executors.groovy` +``` +import jenkins.model.* +Jenkins.instance.setNumExecutors(5) +``` + +and `Dockerfile` + +``` +FROM jenkins +COPY executors.groovy /usr/share/jenkins/ref/init.groovy.d/executors.groovy +``` + + +# Attaching build executors + +You can run builds on the master out of the box. + +But if you want to attach build slave servers **through JNLP (Java Web Start)**: make sure you map the port: ```-p 50000:50000``` - which will be used when you connect a slave agent. + +If you are only using [SSH slaves](https://wiki.jenkins-ci.org/display/JENKINS/SSH+Slaves+plugin), then you do **NOT** need to put that port mapping. + +# Passing JVM parameters + +You might need to customize the JVM running Jenkins, typically to pass system properties or tweak heap memory settings. Use JAVA_OPTS environment +variable for this purpose : + +``` +docker run --name myjenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS=-Dhudson.footerURL=http://mycompany.com jenkins +``` + +# Configuring logging + +Jenkins logging can be configured through a properties file and `java.util.logging.config.file` Java property. +For example: + +``` +mkdir data +cat > data/log.properties <([\w-]+).*?([^<]+)()(<\/\w+>)+/\1 \2\n/g'|sed 's/ /:/' +``` + +Example Output: + +``` +cucumber-testresult-plugin:0.8.2 +pam-auth:1.1 +matrix-project:1.4.1 +script-security:1.13 +... +``` + +For 2.x-derived images, you may also want to + + RUN echo 2.0 > /usr/share/jenkins/ref/jenkins.install.UpgradeWizard.state + +to indicate that this Jenkins installation is fully configured. +Otherwise a banner will appear prompting the user to install additional plugins, +which may be inappropriate. + +# Upgrading + +All the data needed is in the /var/jenkins_home directory - so depending on how you manage that - depends on how you upgrade. Generally - you can copy it out - and then "docker pull" the image again - and you will have the latest LTS - you can then start up with -v pointing to that data (/var/jenkins_home) and everything will be as you left it. + +As always - please ensure that you know how to drive docker - especially volume handling! + +## Upgrading plugins + +By default, plugins will be upgraded if they haven't been upgraded manually and if the version from the docker image is newer than the version in the container. Versions installed by the docker image are tracked through a marker file. + +The default behaviour when upgrading from a docker image that didn't write marker files is to leave existing plugins in place. If you want to upgrade existing plugins without marker you may run the docker image with `-e TRY_UPGRADE_IF_NO_MARKER=true`. Then plugins will be upgraded if the version provided by the docker image is newer. + +# Building + +Build with the usual + + docker build -t jenkins . + +Tests are written using [bats](https://github.com/sstephenson/bats) under the `tests` dir + + bats tests + +Bats can be easily installed with `brew install bats` on OS X + +# Questions? + +Jump on irc.freenode.net and the #jenkins room. Ask! diff --git a/jenkins/docker-compose.yml b/jenkins/docker-compose.yml new file mode 100644 index 00000000..edf1a777 --- /dev/null +++ b/jenkins/docker-compose.yml @@ -0,0 +1,14 @@ +master: + build: . + environment: + JAVA_OPTS: "-Djava.awt.headless=true" + ports: + - "50000:50000" + # Expose Jenkins to parent on port 8090 + - "8090:8080" + # Allow Docker In Docker + privileged: true + volumes: + - ./jenkins_home:/var/jenkins_home + # Allow Docker In Docker to use parent docker container + - /var/run/docker.sock:/var/run/docker.sock \ No newline at end of file diff --git a/jenkins/init.groovy b/jenkins/init.groovy new file mode 100644 index 00000000..db8aae29 --- /dev/null +++ b/jenkins/init.groovy @@ -0,0 +1,12 @@ +import hudson.model.*; +import jenkins.model.*; + + +Thread.start { + sleep 10000 + println "--> setting agent port for jnlp" + def env = System.getenv() + int port = env['JENKINS_SLAVE_AGENT_PORT'].toInteger() + Jenkins.instance.setSlaveAgentPort(port) + println "--> setting agent port for jnlp... done" +} diff --git a/jenkins/install-plugins.sh b/jenkins/install-plugins.sh new file mode 100644 index 00000000..233b739b --- /dev/null +++ b/jenkins/install-plugins.sh @@ -0,0 +1,205 @@ +#!/bin/bash -eu + +# Resolve dependencies and download plugins given on the command line +# +# FROM jenkins +# RUN install-plugins.sh docker-slaves github-branch-source + +set -o pipefail + +REF_DIR=${REF:-/usr/share/jenkins/ref/plugins} +FAILED="$REF_DIR/failed-plugins.txt" + +. /usr/local/bin/jenkins-support + +getLockFile() { + printf '%s' "$REF_DIR/${1}.lock" +} + +getArchiveFilename() { + printf '%s' "$REF_DIR/${1}.jpi" +} + +download() { + local plugin originalPlugin version lock ignoreLockFile + plugin="$1" + version="${2:-latest}" + ignoreLockFile="${3:-}" + lock="$(getLockFile "$plugin")" + + if [[ $ignoreLockFile ]] || mkdir "$lock" &>/dev/null; then + if ! doDownload "$plugin" "$version"; then + # some plugin don't follow the rules about artifact ID + # typically: docker-plugin + originalPlugin="$plugin" + plugin="${plugin}-plugin" + if ! doDownload "$plugin" "$version"; then + echo "Failed to download plugin: $originalPlugin or $plugin" >&2 + echo "Not downloaded: ${originalPlugin}" >> "$FAILED" + return 1 + fi + fi + + if ! checkIntegrity "$plugin"; then + echo "Downloaded file is not a valid ZIP: $(getArchiveFilename "$plugin")" >&2 + echo "Download integrity: ${plugin}" >> "$FAILED" + return 1 + fi + + resolveDependencies "$plugin" + fi +} + +doDownload() { + local plugin version url jpi + plugin="$1" + version="$2" + jpi="$(getArchiveFilename "$plugin")" + + # If plugin already exists and is the same version do not download + if test -f "$jpi" && unzip -p "$jpi" META-INF/MANIFEST.MF | tr -d '\r' | grep "^Plugin-Version: ${version}$" > /dev/null; then + echo "Using provided plugin: $plugin" + return 0 + fi + + JENKINS_UC_DOWNLOAD=${JENKINS_UC_DOWNLOAD:-"$JENKINS_UC/download"} + + url="$JENKINS_UC_DOWNLOAD/plugins/$plugin/$version/${plugin}.hpi" + + echo "Downloading plugin: $plugin from $url" + curl --connect-timeout ${CURL_CONNECTION_TIMEOUT:-20} --retry ${CURL_RETRY:-5} --retry-delay ${CURL_RETRY_DELAY:-0} --retry-max-time ${CURL_RETRY_MAX_TIME:-60} -s -f -L "$url" -o "$jpi" + return $? +} + +checkIntegrity() { + local plugin jpi + plugin="$1" + jpi="$(getArchiveFilename "$plugin")" + + unzip -t -qq "$jpi" >/dev/null + return $? +} + +resolveDependencies() { + local plugin jpi dependencies + plugin="$1" + jpi="$(getArchiveFilename "$plugin")" + + dependencies="$(unzip -p "$jpi" META-INF/MANIFEST.MF | tr -d '\r' | tr '\n' '|' | sed -e 's#| ##g' | tr '|' '\n' | grep "^Plugin-Dependencies: " | sed -e 's#^Plugin-Dependencies: ##')" + + if [[ ! $dependencies ]]; then + echo " > $plugin has no dependencies" + return + fi + + echo " > $plugin depends on $dependencies" + + IFS=',' read -r -a array <<< "$dependencies" + + for d in "${array[@]}" + do + plugin="$(cut -d':' -f1 - <<< "$d")" + if [[ $d == *"resolution:=optional"* ]]; then + echo "Skipping optional dependency $plugin" + else + local pluginInstalled + if pluginInstalled="$(echo "${bundledPlugins}" | grep "^${plugin}:")"; then + pluginInstalled="${pluginInstalled//[$'\r']}" + local versionInstalled; versionInstalled=$(versionFromPlugin "${pluginInstalled}") + local minVersion; minVersion=$(versionFromPlugin "${d}") + if versionLT "${versionInstalled}" "${minVersion}"; then + echo "Upgrading bundled dependency $d ($minVersion > $versionInstalled)" + download "$plugin" & + else + echo "Skipping already bundled dependency $d ($minVersion <= $versionInstalled)" + fi + else + download "$plugin" & + fi + fi + done + wait +} + +bundledPlugins() { + local JENKINS_WAR=/usr/share/jenkins/jenkins.war + if [ -f $JENKINS_WAR ] + then + TEMP_PLUGIN_DIR=/tmp/plugintemp.$$ + for i in $(jar tf $JENKINS_WAR | egrep '[^detached-]plugins.*\..pi' | sort) + do + rm -fr $TEMP_PLUGIN_DIR + mkdir -p $TEMP_PLUGIN_DIR + PLUGIN=$(basename "$i"|cut -f1 -d'.') + (cd $TEMP_PLUGIN_DIR;jar xf "$JENKINS_WAR" "$i";jar xvf "$TEMP_PLUGIN_DIR/$i" META-INF/MANIFEST.MF >/dev/null 2>&1) + VER=$(egrep -i Plugin-Version "$TEMP_PLUGIN_DIR/META-INF/MANIFEST.MF"|cut -d: -f2|sed 's/ //') + echo "$PLUGIN:$VER" + done + rm -fr $TEMP_PLUGIN_DIR + else + rm -f "$TEMP_ALREADY_INSTALLED" + echo "ERROR file not found: $JENKINS_WAR" + exit 1 + fi +} + +versionFromPlugin() { + local plugin=$1 + if [[ $plugin =~ .*:.* ]]; then + echo "${plugin##*:}" + else + echo "latest" + fi + +} + +installedPlugins() { + for f in "$REF_DIR"/*.jpi; do + echo "$(basename "$f" | sed -e 's/\.jpi//'):$(get_plugin_version "$f")" + done +} + +main() { + local plugin version + + mkdir -p "$REF_DIR" || exit 1 + + # Create lockfile manually before first run to make sure any explicit version set is used. + echo "Creating initial locks..." + for plugin in "$@"; do + mkdir "$(getLockFile "${plugin%%:*}")" + done + + echo "Analyzing war..." + bundledPlugins="$(bundledPlugins)" + + echo "Downloading plugins..." + for plugin in "$@"; do + version="" + + if [[ $plugin =~ .*:.* ]]; then + version=$(versionFromPlugin "${plugin}") + plugin="${plugin%%:*}" + fi + + download "$plugin" "$version" "true" & + done + wait + + echo + echo "WAR bundled plugins:" + echo "${bundledPlugins}" + echo + echo "Installed plugins:" + installedPlugins + + if [[ -f $FAILED ]]; then + echo "Some plugins failed to download!" "$(<"$FAILED")" >&2 + exit 1 + fi + + echo "Cleaning up locks" + rm -r "$REF_DIR"/*.lock +} + +main "$@" diff --git a/jenkins/jenkins-support b/jenkins/jenkins-support new file mode 100644 index 00000000..1ee4a8c4 --- /dev/null +++ b/jenkins/jenkins-support @@ -0,0 +1,127 @@ +#!/bin/bash -eu + +# compare if version1 < version2 +versionLT() { + local v1; v1=$(echo "$1" | cut -d '-' -f 1 ) + local q1; q1=$(echo "$1" | cut -s -d '-' -f 2- ) + local v2; v2=$(echo "$2" | cut -d '-' -f 1 ) + local q2; q2=$(echo "$2" | cut -s -d '-' -f 2- ) + if [ "$v1" = "$v2" ]; then + if [ "$q1" = "$q2" ]; then + return 1 + else + if [ -z "$q1" ]; then + return 1 + else + if [ -z "$q2" ]; then + return 0 + else + [ "$q1" = "$(echo -e "$q1\n$q2" | sort -V | head -n1)" ] + fi + fi + fi + else + [ "$v1" = "$(echo -e "$v1\n$v2" | sort -V | head -n1)" ] + fi +} + +# returns a plugin version from a plugin archive +get_plugin_version() { + local archive; archive=$1 + local version; version=$(unzip -p "$archive" META-INF/MANIFEST.MF | grep "^Plugin-Version: " | sed -e 's#^Plugin-Version: ##') + version=${version%%[[:space:]]} + echo "$version" +} + +# Copy files from /usr/share/jenkins/ref into $JENKINS_HOME +# So the initial JENKINS-HOME is set with expected content. +# Don't override, as this is just a reference setup, and use from UI +# can then change this, upgrade plugins, etc. +copy_reference_file() { + f="${1%/}" + b="${f%.override}" + rel="${b:23}" + version_marker="${rel}.version_from_image" + dir=$(dirname "${b}") + local action; + local reason; + local container_version; + local image_version; + local marker_version; + local log; log=false + if [[ ${rel} == plugins/*.jpi ]]; then + container_version=$(get_plugin_version "$JENKINS_HOME/${rel}") + image_version=$(get_plugin_version "${f}") + if [[ -e $JENKINS_HOME/${version_marker} ]]; then + marker_version=$(cat "$JENKINS_HOME/${version_marker}") + if versionLT "$marker_version" "$container_version"; then + action="SKIPPED" + reason="Installed version ($container_version) has been manually upgraded from initial version ($marker_version)" + log=true + else + if [[ "$image_version" == "$container_version" ]]; then + action="SKIPPED" + reason="Version from image is the same as the installed version $image_version" + else + if versionLT "$image_version" "$container_version"; then + action="SKIPPED" + log=true + reason="Image version ($image_version) is older than installed version ($container_version)" + else + action="UPGRADED" + log=true + reason="Image version ($image_version) is newer than installed version ($container_version)" + fi + fi + fi + else + if [[ -n "$TRY_UPGRADE_IF_NO_MARKER" ]]; then + if [[ "$image_version" == "$container_version" ]]; then + action="SKIPPED" + reason="Version from image is the same as the installed version $image_version (no marker found)" + # Add marker for next time + echo "$image_version" > "$JENKINS_HOME/${version_marker}" + else + if versionLT "$image_version" "$container_version"; then + action="SKIPPED" + log=true + reason="Image version ($image_version) is older than installed version ($container_version) (no marker found)" + else + action="UPGRADED" + log=true + reason="Image version ($image_version) is newer than installed version ($container_version) (no marker found)" + fi + fi + fi + fi + if [[ ! -e $JENKINS_HOME/${rel} || "$action" == "UPGRADED" || $f = *.override ]]; then + action=${action:-"INSTALLED"} + log=true + mkdir -p "$JENKINS_HOME/${dir:23}" + cp -r "${f}" "$JENKINS_HOME/${rel}"; + # pin plugins on initial copy + touch "$JENKINS_HOME/${rel}.pinned" + echo "$image_version" > "$JENKINS_HOME/${version_marker}" + reason=${reason:-$image_version} + else + action=${action:-"SKIPPED"} + fi + else + if [[ ! -e $JENKINS_HOME/${rel} || $f = *.override ]] + then + action="INSTALLED" + log=true + mkdir -p "$JENKINS_HOME/${dir:23}" + cp -r "${f}" "$JENKINS_HOME/${rel}"; + else + action="SKIPPED" + fi + fi + if [[ -n "$VERBOSE" || "$log" == "true" ]]; then + if [ -z "$reason" ]; then + echo "$action $rel" >> "$COPY_REFERENCE_FILE_LOG" + else + echo "$action $rel : $reason" >> "$COPY_REFERENCE_FILE_LOG" + fi + fi +} \ No newline at end of file diff --git a/jenkins/jenkins.sh b/jenkins/jenkins.sh new file mode 100644 index 00000000..0a3b96ca --- /dev/null +++ b/jenkins/jenkins.sh @@ -0,0 +1,26 @@ +#! /bin/bash -e + +: "${JENKINS_HOME:="/var/jenkins_home"}" +touch "${COPY_REFERENCE_FILE_LOG}" || { echo "Can not write to ${COPY_REFERENCE_FILE_LOG}. Wrong volume permissions?"; exit 1; } +echo "--- Copying files at $(date)" >> "$COPY_REFERENCE_FILE_LOG" +find /usr/share/jenkins/ref/ -type f -exec bash -c '. /usr/local/bin/jenkins-support; for arg; do copy_reference_file "$arg"; done' _ {} + + +# if `docker run` first argument start with `--` the user is passing jenkins launcher arguments +if [[ $# -lt 1 ]] || [[ "$1" == "--"* ]]; then + + # read JAVA_OPTS and JENKINS_OPTS into arrays to avoid need for eval (and associated vulnerabilities) + java_opts_array=() + while IFS= read -r -d '' item; do + java_opts_array+=( "$item" ) + done < <([[ $JAVA_OPTS ]] && xargs printf '%s\0' <<<"$JAVA_OPTS") + + jenkins_opts_array=( ) + while IFS= read -r -d '' item; do + jenkins_opts_array+=( "$item" ) + done < <([[ $JENKINS_OPTS ]] && xargs printf '%s\0' <<<"$JENKINS_OPTS") + + exec java "${java_opts_array[@]}" -jar /usr/share/jenkins/jenkins.war "${jenkins_opts_array[@]}" "$@" +fi + +# As argument is not jenkins, assume user want to run his own process, for example a `bash` shell to explore this image +exec "$@" diff --git a/jenkins/jenkins_home/.gitignore b/jenkins/jenkins_home/.gitignore new file mode 100644 index 00000000..e0f8a189 --- /dev/null +++ b/jenkins/jenkins_home/.gitignore @@ -0,0 +1,28 @@ +# File Patterns to Ignore +logs +*.log +*.log.* +*.swp + +# Ignore SSH Config +.ssh/* +!.ssh/known_hosts + +# Include job configs and ignore other data +!config.xml +builds +lastStable +lastSuccessful +nextBuildNumber + +# Ignore expanded plugins folders because we only want jpi files +plugins/* +!plugins/*.jpi + +# Include user info +!userContent/* +!users/* + +# Ignore Directories +workspace/ +war/ diff --git a/jenkins/plugins.sh b/jenkins/plugins.sh new file mode 100644 index 00000000..9b08ddb9 --- /dev/null +++ b/jenkins/plugins.sh @@ -0,0 +1,124 @@ +#! /bin/bash + +# Parse a support-core plugin -style txt file as specification for jenkins plugins to be installed +# in the reference directory, so user can define a derived Docker image with just : +# +# FROM jenkins +# COPY plugins.txt /plugins.txt +# RUN /usr/local/bin/plugins.sh /plugins.txt +# +# Note: Plugins already installed are skipped +# + +set -e + +echo "WARN: plugins.sh is deprecated, please switch to install-plugins.sh" + +if [ -z "$1" ] +then + echo " +USAGE: + Parse a support-core plugin -style txt file as specification for jenkins plugins to be installed + in the reference directory, so user can define a derived Docker image with just : + + FROM jenkins + COPY plugins.txt /plugins.txt + RUN /usr/local/bin/plugins.sh /plugins.txt + + Note: Plugins already installed are skipped + +" + exit 1 +else + JENKINS_INPUT_JOB_LIST=$1 + if [ ! -f "$JENKINS_INPUT_JOB_LIST" ] + then + echo "ERROR File not found: $JENKINS_INPUT_JOB_LIST" + exit 1 + fi +fi + +# the war includes a # of plugins, to make the build efficient filter out +# the plugins so we dont install 2x - there about 17! +if [ -d "$JENKINS_HOME" ] +then + TEMP_ALREADY_INSTALLED=$JENKINS_HOME/preinstalled.plugins.$$.txt +else + echo "ERROR $JENKINS_HOME not found" + exit 1 +fi + +JENKINS_PLUGINS_DIR=/var/jenkins_home/plugins +if [ -d "$JENKINS_PLUGINS_DIR" ] +then + echo "Analyzing: $JENKINS_PLUGINS_DIR" + for i in "$JENKINS_PLUGINS_DIR"/*/; do + JENKINS_PLUGIN=$(basename "$i") + JENKINS_PLUGIN_VER=$(egrep -i Plugin-Version "$i/META-INF/MANIFEST.MF"|cut -d: -f2|sed 's/ //') + echo "$JENKINS_PLUGIN:$JENKINS_PLUGIN_VER" + done >"$TEMP_ALREADY_INSTALLED" +else + JENKINS_WAR=/usr/share/jenkins/jenkins.war + if [ -f "$JENKINS_WAR" ] + then + echo "Analyzing war: $JENKINS_WAR" + TEMP_PLUGIN_DIR=/tmp/plugintemp.$$ + while read -r i <&3; do + rm -fr "$TEMP_PLUGIN_DIR" + mkdir -p "$TEMP_PLUGIN_DIR" + PLUGIN=$(basename "$i"|cut -f1 -d'.') + (cd "$TEMP_PLUGIN_DIR" || exit; jar xf "$JENKINS_WAR" "$i"; jar xvf "$TEMP_PLUGIN_DIR/$i" META-INF/MANIFEST.MF >/dev/null 2>&1) + VER=$(egrep -i Plugin-Version "$TEMP_PLUGIN_DIR/META-INF/MANIFEST.MF"|cut -d: -f2|sed 's/ //') + echo "$PLUGIN:$VER" + done 3< <(jar tf "$JENKINS_WAR" | egrep '[^detached-]plugins.*\..pi' | sort) > "$TEMP_ALREADY_INSTALLED" + rm -fr "$TEMP_PLUGIN_DIR" + else + rm -f "$TEMP_ALREADY_INSTALLED" + echo "ERROR file not found: $JENKINS_WAR" + exit 1 + fi +fi + +REF=/usr/share/jenkins/ref/plugins +mkdir -p $REF +COUNT_PLUGINS_INSTALLED=0 +while read -r spec || [ -n "$spec" ]; do + + plugin=(${spec//:/ }); + [[ ${plugin[0]} =~ ^# ]] && continue + [[ ${plugin[0]} =~ ^[[:space:]]*$ ]] && continue + [[ -z ${plugin[1]} ]] && plugin[1]="latest" + + if [ -z "$JENKINS_UC_DOWNLOAD" ]; then + JENKINS_UC_DOWNLOAD=$JENKINS_UC/download + fi + + if ! grep -q "${plugin[0]}:${plugin[1]}" "$TEMP_ALREADY_INSTALLED" + then + echo "Downloading ${plugin[0]}:${plugin[1]}" + curl --retry 3 --retry-delay 5 -sSL -f "${JENKINS_UC_DOWNLOAD}/plugins/${plugin[0]}/${plugin[1]}/${plugin[0]}.hpi" -o "$REF/${plugin[0]}.jpi" + unzip -qqt "$REF/${plugin[0]}.jpi" + (( COUNT_PLUGINS_INSTALLED += 1 )) + else + echo " ... skipping already installed: ${plugin[0]}:${plugin[1]}" + fi +done < "$JENKINS_INPUT_JOB_LIST" + +echo "---------------------------------------------------" +if (( "$COUNT_PLUGINS_INSTALLED" > 0 )) +then + echo "INFO: Successfully installed $COUNT_PLUGINS_INSTALLED plugins." + + if [ -d $JENKINS_PLUGINS_DIR ] + then + echo "INFO: Please restart the container for changes to take effect!" + fi +else + echo "INFO: No changes, all plugins previously installed." + +fi +echo "---------------------------------------------------" + +#cleanup +rm "$TEMP_ALREADY_INSTALLED" +exit 0 diff --git a/jenkins/publish.sh b/jenkins/publish.sh new file mode 100644 index 00000000..a0575378 --- /dev/null +++ b/jenkins/publish.sh @@ -0,0 +1,148 @@ +#!/bin/bash -eu + +# Publish any versions of the docker image not yet pushed to jenkinsci/jenkins +# Arguments: +# -n dry run, do not build or publish images + +set -o pipefail + +sort-versions() { + if [ "$(uname)" == 'Darwin' ]; then + gsort --version-sort + else + sort --version-sort + fi +} + +# Try tagging with and without -f to support all versions of docker +docker-tag() { + local from="jenkinsci/jenkins:$1" + local to="jenkinsci/jenkins:$2" + local out + if out=$(docker tag -f "$from" "$to" 2>&1); then + echo "$out" + else + docker tag "$from" "$to" + fi +} + +get-variant() { + local branch + branch=$(git show-ref | grep $(git rev-list -n 1 HEAD) | tail -1 | rev | cut -d/ -f 1 | rev) + if [ -z "$branch" ]; then + >&2 echo "Could not get the current branch name for commit, not in a branch?: $(git rev-list -n 1 HEAD)" + return 1 + fi + case "$branch" in + master) echo "" ;; + *) echo "-${branch}" ;; + esac +} + +login-token() { + # could use jq .token + curl -q -sSL https://auth.docker.io/token\?service\=registry.docker.io\&scope\=repository:jenkinsci/jenkins:pull | grep -o '"token":"[^"]*"' | cut -d':' -f 2 | xargs echo +} + +is-published() { + get-manifest "$1" &> /dev/null +} + +get-manifest() { + local tag=$1 + curl -q -fsSL -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -H "Authorization: Bearer $TOKEN" "https://index.docker.io/v2/jenkinsci/jenkins/manifests/$tag" +} + +get-digest() { + #get-manifest "$1" | jq .config.digest + get-manifest "$1" | grep -A 10 -o '"config".*' | grep digest | head -1 | cut -d':' -f 2,3 | xargs echo +} + +get-latest-versions() { + curl -q -fsSL https://api.github.com/repos/jenkinsci/jenkins/tags?per_page=20 | grep '"name": "jenkins-' | egrep -o '[0-9]+(\.[0-9]+)+' | sort-versions | uniq +} + +publish() { + local version=$1 + local variant=$2 + local tag="${version}${variant}" + local sha + local build_opts="--no-cache --pull" + + sha=$(curl -q -fsSL "http://repo.jenkins-ci.org/simple/releases/org/jenkins-ci/main/jenkins-war/${version}/jenkins-war-${version}.war.sha1") + + docker build --build-arg "JENKINS_VERSION=$version" \ + --build-arg "JENKINS_SHA=$sha" \ + --tag "jenkinsci/jenkins:${tag}" ${build_opts} . + + docker push "jenkinsci/jenkins:${tag}" +} + +tag-and-push() { + local source=$1 + local target=$2 + local digest_source; digest_source=$(get-digest ${tag1}) + local digest_target; digest_target=$(get-digest ${tag2}) + if [ "$digest_source" == "$digest_target" ]; then + echo "Images ${source} [$digest_source] and ${target} [$digest_target] are already the same, not updating tags" + else + echo "Creating tag ${target} pointing to ${source}" + if [ ! "$dry_run" = true ]; then + docker-tag "jenkinsci/jenkins:${source}" "jenkinsci/jenkins:${target}" + docker push "jenkinsci/jenkins:${source}" + fi + fi +} + +publish-latest() { + local version=$1 + local variant=$2 + + # push latest (for master) or the name of the branch (for other branches) + if [ -z "${variant}" ]; then + tag-and-push "${version}${variant}" "latest" + else + tag-and-push "${version}${variant}" "${variant#-}" + fi +} + +publish-lts() { + local version=$1 + local variant=$2 + tag-and-push "${version}" "lts${variant}" +} + +dry_run=false +if [ "-n" == "${1:-}" ]; then + dry_run=true +fi +if [ "$dry_run" = true ]; then + echo "Dry run, will not build or publish images" +fi + +TOKEN=$(login-token) + +variant=$(get-variant) + +lts_version="" +version="" +for version in $(get-latest-versions); do + if is-published "$version$variant"; then + echo "Tag is already published: $version$variant" + else + echo "Publishing version: $version$variant" + if [ ! "$dry_run" = true ]; then + publish "$version" "$variant" + fi + fi + + # Update lts tag + if [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + lts_version="${version}" + fi +done + +publish-latest "${version}" "${variant}" +if [ -n "${lts_version}" ]; then + publish-lts "${lts_version}" "${variant}" +fi diff --git a/jenkins/tests/functions.bats b/jenkins/tests/functions.bats new file mode 100644 index 00000000..7a849eb9 --- /dev/null +++ b/jenkins/tests/functions.bats @@ -0,0 +1,31 @@ +#!/usr/bin/env bats + +SUT_IMAGE=bats-jenkins + +load 'test_helper/bats-support/load' +load 'test_helper/bats-assert/load' +load test_helpers + +. $BATS_TEST_DIRNAME/../jenkins-support + +@test "build image" { + cd $BATS_TEST_DIRNAME/.. + docker_build -t $SUT_IMAGE . +} + +@test "versionLT" { + run docker run --rm $SUT_IMAGE bash -c "source /usr/local/bin/jenkins-support && versionLT 1.0 1.0" + assert_failure + run docker run --rm $SUT_IMAGE bash -c "source /usr/local/bin/jenkins-support && versionLT 1.0 1.1" + assert_success + run docker run --rm $SUT_IMAGE bash -c "source /usr/local/bin/jenkins-support && versionLT 1.1 1.0" + assert_failure + run docker run --rm $SUT_IMAGE bash -c "source /usr/local/bin/jenkins-support && versionLT 1.0-beta-1 1.0" + assert_success + run docker run --rm $SUT_IMAGE bash -c "source /usr/local/bin/jenkins-support && versionLT 1.0 1.0-beta-1" + assert_failure + run docker run --rm $SUT_IMAGE bash -c "source /usr/local/bin/jenkins-support && versionLT 1.0-alpha-1 1.0-beta-1" + assert_success + run docker run --rm $SUT_IMAGE bash -c "source /usr/local/bin/jenkins-support && versionLT 1.0-beta-1 1.0-alpha-1" + assert_failure +} diff --git a/jenkins/tests/install-plugins.bats b/jenkins/tests/install-plugins.bats new file mode 100644 index 00000000..d795f233 --- /dev/null +++ b/jenkins/tests/install-plugins.bats @@ -0,0 +1,118 @@ +#!/usr/bin/env bats + +SUT_IMAGE=bats-jenkins + +load 'test_helper/bats-support/load' +load 'test_helper/bats-assert/load' +load test_helpers + +@test "build image" { + cd $BATS_TEST_DIRNAME/.. + docker_build -t $SUT_IMAGE . +} + +@test "plugins are installed with plugins.sh" { + run docker build -t $SUT_IMAGE-plugins $BATS_TEST_DIRNAME/plugins + assert_success + # replace DOS line endings \r\n + run bash -c "docker run --rm $SUT_IMAGE-plugins ls --color=never -1 /var/jenkins_home/plugins | tr -d '\r'" + assert_success + assert_line 'maven-plugin.jpi' + assert_line 'maven-plugin.jpi.pinned' + assert_line 'ant.jpi' + assert_line 'ant.jpi.pinned' +} + +@test "plugins are installed with install-plugins.sh" { + run docker build -t $SUT_IMAGE-install-plugins $BATS_TEST_DIRNAME/install-plugins + assert_success + refute_line --partial 'Skipping already bundled dependency' + # replace DOS line endings \r\n + run bash -c "docker run --rm $SUT_IMAGE-install-plugins ls --color=never -1 /var/jenkins_home/plugins | tr -d '\r'" + assert_success + assert_line 'maven-plugin.jpi' + assert_line 'maven-plugin.jpi.pinned' + assert_line 'ant.jpi' + assert_line 'ant.jpi.pinned' + assert_line 'credentials.jpi' + assert_line 'credentials.jpi.pinned' + assert_line 'mesos.jpi' + assert_line 'mesos.jpi.pinned' + # optional dependencies + refute_line 'metrics.jpi' + refute_line 'metrics.jpi.pinned' + # plugins bundled but under detached-plugins, so need to be installed + assert_line 'javadoc.jpi' + assert_line 'javadoc.jpi.pinned' + assert_line 'mailer.jpi' + assert_line 'mailer.jpi.pinned' +} + +@test "plugins are installed with install-plugins.sh even when already exist" { + run docker build -t $SUT_IMAGE-install-plugins-update --no-cache $BATS_TEST_DIRNAME/install-plugins/update + assert_success + assert_line "Using provided plugin: ant" + refute_line --partial 'Skipping already bundled dependency' + # replace DOS line endings \r\n + run bash -c "docker run --rm $SUT_IMAGE-install-plugins-update unzip -p /var/jenkins_home/plugins/maven-plugin.jpi META-INF/MANIFEST.MF | tr -d '\r'" + assert_success + assert_line 'Plugin-Version: 2.13' +} + +@test "plugins are getting upgraded but not downgraded" { + # Initial execution + run docker build -t $SUT_IMAGE-install-plugins $BATS_TEST_DIRNAME/install-plugins + assert_success + local work; work="$BATS_TEST_DIRNAME/upgrade-plugins/work" + mkdir -p $work + # Image contains maven-plugin 2.7.1 and ant-plugin 1.3 + run bash -c "docker run -u $UID -v $work:/var/jenkins_home --rm $SUT_IMAGE-install-plugins true" + assert_success + run unzip_manifest maven-plugin.jpi $work + assert_line 'Plugin-Version: 2.7.1' + run unzip_manifest ant.jpi $work + assert_line 'Plugin-Version: 1.3' + + # Upgrade to new image with different plugins + run docker build -t $SUT_IMAGE-upgrade-plugins $BATS_TEST_DIRNAME/upgrade-plugins + assert_success + # Images contains maven-plugin 2.13 and ant-plugin 1.2 + run bash -c "docker run -u $UID -v $work:/var/jenkins_home --rm $SUT_IMAGE-upgrade-plugins true" + assert_success + run unzip_manifest maven-plugin.jpi $work + assert_success + # Should be updated + assert_line 'Plugin-Version: 2.13' + run unzip_manifest ant.jpi $work + # 1.2 is older than the existing 1.3, so keep 1.3 + assert_line 'Plugin-Version: 1.3' +} + +@test "clean work directory" { + run bash -c "rm -rf $BATS_TEST_DIRNAME/upgrade-plugins/work" +} + +@test "do not upgrade if plugin has been manually updated" { + run docker build -t $SUT_IMAGE-install-plugins $BATS_TEST_DIRNAME/install-plugins + assert_success + local work; work="$BATS_TEST_DIRNAME/upgrade-plugins/work" + mkdir -p $work + # Image contains maven-plugin 2.7.1 and ant-plugin 1.3 + run bash -c "docker run -u $UID -v $work:/var/jenkins_home --rm $SUT_IMAGE-install-plugins curl --connect-timeout 20 --retry 5 --retry-delay 0 --retry-max-time 60 -s -f -L https://updates.jenkins.io/download/plugins/maven-plugin/2.12.1/maven-plugin.hpi -o /var/jenkins_home/plugins/maven-plugin.jpi" + assert_success + run unzip_manifest maven-plugin.jpi $work + assert_line 'Plugin-Version: 2.12.1' + run docker build -t $SUT_IMAGE-upgrade-plugins $BATS_TEST_DIRNAME/upgrade-plugins + assert_success + # Images contains maven-plugin 2.13 and ant-plugin 1.2 + run bash -c "docker run -u $UID -v $work:/var/jenkins_home --rm $SUT_IMAGE-upgrade-plugins true" + assert_success + run unzip_manifest maven-plugin.jpi $work + assert_success + # Shouldn't be updated + refute_line 'Plugin-Version: 2.13' +} + +@test "clean work directory" { + run bash -c "rm -rf $BATS_TEST_DIRNAME/upgrade-plugins/work" +} diff --git a/jenkins/tests/install-plugins/Dockerfile b/jenkins/tests/install-plugins/Dockerfile new file mode 100644 index 00000000..80d9ae58 --- /dev/null +++ b/jenkins/tests/install-plugins/Dockerfile @@ -0,0 +1,3 @@ +FROM bats-jenkins + +RUN /usr/local/bin/install-plugins.sh maven-plugin:2.7.1 ant:1.3 mesos:0.13.0 diff --git a/jenkins/tests/install-plugins/update/Dockerfile b/jenkins/tests/install-plugins/update/Dockerfile new file mode 100644 index 00000000..c088223c --- /dev/null +++ b/jenkins/tests/install-plugins/update/Dockerfile @@ -0,0 +1,3 @@ +FROM bats-jenkins-install-plugins + +RUN /usr/local/bin/install-plugins.sh maven-plugin:2.13 ant:1.3 diff --git a/jenkins/tests/plugins/Dockerfile b/jenkins/tests/plugins/Dockerfile new file mode 100644 index 00000000..c88c6312 --- /dev/null +++ b/jenkins/tests/plugins/Dockerfile @@ -0,0 +1,4 @@ +FROM bats-jenkins + +COPY plugins.txt /usr/share/jenkins/ref/ +RUN /usr/local/bin/plugins.sh /usr/share/jenkins/ref/plugins.txt diff --git a/jenkins/tests/plugins/plugins.txt b/jenkins/tests/plugins/plugins.txt new file mode 100644 index 00000000..b3d77a95 --- /dev/null +++ b/jenkins/tests/plugins/plugins.txt @@ -0,0 +1,2 @@ +maven-plugin:2.7.1 +ant:1.3 diff --git a/jenkins/tests/runtime.bats b/jenkins/tests/runtime.bats new file mode 100644 index 00000000..fe6763e0 --- /dev/null +++ b/jenkins/tests/runtime.bats @@ -0,0 +1,56 @@ +#!/usr/bin/env bats + +SUT_IMAGE=bats-jenkins +SUT_CONTAINER=bats-jenkins + +load 'test_helper/bats-support/load' +load 'test_helper/bats-assert/load' +load test_helpers + +@test "build image" { + cd $BATS_TEST_DIRNAME/.. + docker_build -t $SUT_IMAGE . +} + +@test "clean test containers" { + cleanup $SUT_CONTAINER +} + +@test "test multiple JENKINS_OPTS" { + # running --help --version should return the version, not the help + local version=$(grep 'ENV JENKINS_VERSION' Dockerfile | sed -e 's/.*:-\(.*\)}/\1/') + # need the last line of output + assert "${version}" docker run --rm -e JENKINS_OPTS="--help --version" --name $SUT_CONTAINER -P $SUT_IMAGE | tail -n 1 +} + +@test "test jenkins arguments" { + # running --help --version should return the version, not the help + local version=$(grep 'ENV JENKINS_VERSION' Dockerfile | sed -e 's/.*:-\(.*\)}/\1/') + # need the last line of output + assert "${version}" docker run --rm --name $SUT_CONTAINER -P $SUT_IMAGE --help --version | tail -n 1 +} + +@test "create test container" { + docker run -d -e JAVA_OPTS="-Duser.timezone=Europe/Madrid -Dhudson.model.DirectoryBrowserSupport.CSP=\"default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';\"" --name $SUT_CONTAINER -P $SUT_IMAGE +} + +@test "test container is running" { + sleep 1 # give time to eventually fail to initialize + retry 3 1 assert "true" docker inspect -f {{.State.Running}} $SUT_CONTAINER +} + +@test "Jenkins is initialized" { + retry 30 5 test_url /api/json +} + +@test "JAVA_OPTS are set" { + local sed_expr='s///g;s/.*<\/td>//g;s///g;s/<\/t.>//g' + assert 'default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';' \ + bash -c "curl -fsSL --user \"admin:$(get_jenkins_password)\" $(get_jenkins_url)/systemInfo | sed 's/<\/tr>/<\/tr>\'$'\n/g' | grep 'hudson.model.DirectoryBrowserSupport.CSP' | sed -e '${sed_expr}'" + assert 'Europe/Madrid' \ + bash -c "curl -fsSL --user \"admin:$(get_jenkins_password)\" $(get_jenkins_url)/systemInfo | sed 's/<\/tr>/<\/tr>\'$'\n/g' | grep 'user.timezone' | sed -e '${sed_expr}'" +} + +@test "clean test containers" { + cleanup $SUT_CONTAINER +} diff --git a/jenkins/tests/test_helpers.bash b/jenkins/tests/test_helpers.bash new file mode 100644 index 00000000..eb67f454 --- /dev/null +++ b/jenkins/tests/test_helpers.bash @@ -0,0 +1,84 @@ +#!/bin/bash + +# check dependencies +( + type docker &>/dev/null || ( echo "docker is not available"; exit 1 ) + type curl &>/dev/null || ( echo "curl is not available"; exit 1 ) +)>&2 + +# Assert that $1 is the outputof a command $2 +function assert { + local expected_output=$1 + shift + local actual_output + actual_output=$("$@") + actual_output="${actual_output//[$'\t\r\n']}" # remove newlines + if ! [ "$actual_output" = "$expected_output" ]; then + echo "expected: \"$expected_output\"" + echo "actual: \"$actual_output\"" + false + fi +} + +# Retry a command $1 times until it succeeds. Wait $2 seconds between retries. +function retry { + local attempts=$1 + shift + local delay=$1 + shift + local i + + for ((i=0; i < attempts; i++)); do + run "$@" + if [ "$status" -eq 0 ]; then + return 0 + fi + sleep $delay + done + + echo "Command \"$*\" failed $attempts times. Status: $status. Output: $output" >&2 + false +} + +function docker_build { + if [ -n "$JENKINS_VERSION" ]; then + docker build --build-arg JENKINS_VERSION=$JENKINS_VERSION --build-arg JENKINS_SHA=$JENKINS_SHA "$@" + else + docker build "$@" + fi +} + +function get_jenkins_url { + if [ -z "${DOCKER_HOST}" ]; then + DOCKER_IP=localhost + else + DOCKER_IP=$(echo "$DOCKER_HOST" | sed -e 's|tcp://\(.*\):[0-9]*|\1|') + fi + echo "http://$DOCKER_IP:$(docker port "$SUT_CONTAINER" 8080 | cut -d: -f2)" +} + +function get_jenkins_password { + docker logs "$SUT_CONTAINER" 2>&1 | grep -A 2 "Please use the following password to proceed to installation" | tail -n 1 +} + +function test_url { + run curl --user "admin:$(get_jenkins_password)" --output /dev/null --silent --head --fail --connect-timeout 30 --max-time 60 "$(get_jenkins_url)$1" + if [ "$status" -eq 0 ]; then + true + else + echo "URL $(get_jenkins_url)$1 failed" >&2 + echo "output: $output" >&2 + false + fi +} + +function cleanup { + docker kill "$1" &>/dev/null ||: + docker rm -fv "$1" &>/dev/null ||: +} + +function unzip_manifest { + local plugin=$1 + local work=$2 + bash -c "docker run --rm -v $work:/var/jenkins_home --entrypoint unzip $SUT_IMAGE -p /var/jenkins_home/plugins/$plugin META-INF/MANIFEST.MF | tr -d '\r'" +} diff --git a/jenkins/tests/upgrade-plugins/Dockerfile b/jenkins/tests/upgrade-plugins/Dockerfile new file mode 100644 index 00000000..dfe81dee --- /dev/null +++ b/jenkins/tests/upgrade-plugins/Dockerfile @@ -0,0 +1,3 @@ +FROM bats-jenkins + +RUN /usr/local/bin/install-plugins.sh maven-plugin:2.13 ant:1.2 diff --git a/jenkins/update-official-library.sh b/jenkins/update-official-library.sh new file mode 100644 index 00000000..07e3b1f2 --- /dev/null +++ b/jenkins/update-official-library.sh @@ -0,0 +1,36 @@ +#!/bin/bash -eu + +# Generate the Docker official-images file + +sha() { + local branch=$1 + git rev-parse $branch +} + +version_from_dockerfile() { + local branch=$1 + git show $branch:Dockerfile | grep JENKINS_VERSION: | sed -e 's/.*:-\(.*\)}/\1/' +} + +master_sha=$(sha master) +alpine_sha=$(sha alpine) + +master_version=$(version_from_dockerfile master) +alpine_version=$(version_from_dockerfile alpine) + +if ! [ "$master_version" == "$alpine_version" ]; then + echo "Master version '$master_version' does not match alpine version '$alpine_version'" + exit 1 +fi + +cat << EOF > ../official-images/library/jenkins +# maintainer: Nicolas De Loof (@ndeloof) +# maintainer: Michael Neale (@michaelneale) +# maintainer: Carlos Sanchez (@carlossg) + +latest: git://github.com/jenkinsci/jenkins-ci.org-docker@$master_sha +$master_version: git://github.com/jenkinsci/jenkins-ci.org-docker@$master_sha + +alpine: git://github.com/jenkinsci/jenkins-ci.org-docker@$alpine_sha +$alpine_version-alpine: git://github.com/jenkinsci/jenkins-ci.org-docker@$alpine_sha +EOF From ca7726c441034b87b9e9711ca93c3acf775c4505 Mon Sep 17 00:00:00 2001 From: "Yu-Lung Shao (Allen)" Date: Fri, 14 Apr 2017 10:08:11 +0800 Subject: [PATCH 18/43] Update Dockerfile-56 fixing unexpected message "/bin/sh: 1: [: =: unexpected operator", #798. --- php-fpm/Dockerfile-56 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index e44fea02..353e7708 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -202,7 +202,7 @@ RUN if [ ${INSTALL_INTL} = true ]; then \ ##################################### ARG INSTALL_GHOSTSCRIPT=false -RUN if [ ${GHOSTSCRIPT} = true ]; then \ +RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \ # Install the ghostscript extension for PDF editing apt-get update && \ apt-get install -y poppler-utils ghostscript \ From 43f4f80836dcb61935ddacda42fdc036b7ad6d04 Mon Sep 17 00:00:00 2001 From: "Yu-Lung Shao (Allen)" Date: Fri, 14 Apr 2017 10:08:44 +0800 Subject: [PATCH 19/43] Update Dockerfile-70 fixing unexpected message "/bin/sh: 1: [: =: unexpected operator", #798. --- php-fpm/Dockerfile-70 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index 3b8f4932..5a67ff12 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -287,7 +287,7 @@ RUN if [ ${INSTALL_INTL} = true ]; then \ ##################################### ARG INSTALL_GHOSTSCRIPT=false -RUN if [ ${GHOSTSCRIPT} = true ]; then \ +RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \ # Install the ghostscript extension # for PDF editing apt-get -y update \ From 1519d2c64c5978ea73b06878681ff50801c3a1d0 Mon Sep 17 00:00:00 2001 From: "Yu-Lung Shao (Allen)" Date: Fri, 14 Apr 2017 10:09:44 +0800 Subject: [PATCH 20/43] Update Dockerfile-71 fixing unexpected message "/bin/sh: 1: [: =: unexpected operator", #798. --- php-fpm/Dockerfile-71 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index bc3079f2..35e2cfca 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -207,7 +207,7 @@ RUN if [ ${INSTALL_INTL} = true ]; then \ ##################################### ARG INSTALL_GHOSTSCRIPT=false -RUN if [ ${GHOSTSCRIPT} = true ]; then \ +RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \ # Install the ghostscript extension # for PDF editing apt-get -y update \ From 747f956d018f1e4fb2ed27ffcb8d5e08ad6cd72f Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Fri, 14 Apr 2017 03:12:00 -0400 Subject: [PATCH 21/43] update php-fpm base image tags {requires rebuild} --- php-fpm/Dockerfile-56 | 2 +- php-fpm/Dockerfile-70 | 2 +- php-fpm/Dockerfile-71 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index e44fea02..d7d5879f 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -10,7 +10,7 @@ # https://hub.docker.com/r/laradock/php-fpm/tags/ # -FROM laradock/php-fpm:5.6--1.2 +FROM laradock/php-fpm:5.6--1.4 MAINTAINER Mahmoud Zalt diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index 3b8f4932..33ab70bd 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -10,7 +10,7 @@ # https://hub.docker.com/r/laradock/php-fpm/tags/ # -FROM laradock/php-fpm:7.0--1.2 +FROM laradock/php-fpm:7.0--1.4 MAINTAINER Mahmoud Zalt diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index bc3079f2..b0e79497 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -10,7 +10,7 @@ # https://hub.docker.com/r/laradock/php-fpm/tags/ # -FROM laradock/php-fpm:7.1--1.3 +FROM laradock/php-fpm:7.1--1.4 MAINTAINER Mahmoud Zalt From 4fd73ac51299a65ff9eaeec3b9eae3f1d8527005 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Fri, 14 Apr 2017 03:23:19 -0400 Subject: [PATCH 22/43] Fix build error in php-fpm containers, after updating the base image --- php-fpm/Dockerfile-56 | 2 +- php-fpm/Dockerfile-70 | 2 +- php-fpm/Dockerfile-71 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index d7d5879f..2fdebc23 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -217,7 +217,7 @@ RUN if [ ${GHOSTSCRIPT} = true ]; then \ ADD ./laravel.ini /usr/local/etc/php/conf.d ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/ -RUN rm -r /var/lib/apt/lists/* +#RUN rm -r /var/lib/apt/lists/* RUN usermod -u 1000 www-data diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index 33ab70bd..a80c8b92 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -305,7 +305,7 @@ RUN if [ ${GHOSTSCRIPT} = true ]; then \ ADD ./laravel.ini /usr/local/etc/php/conf.d ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/ -RUN rm -r /var/lib/apt/lists/* +#RUN rm -r /var/lib/apt/lists/* RUN usermod -u 1000 www-data diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index b0e79497..0cbdd757 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -225,7 +225,7 @@ RUN if [ ${GHOSTSCRIPT} = true ]; then \ ADD ./laravel.ini /usr/local/etc/php/conf.d ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/ -RUN rm -r /var/lib/apt/lists/* +#RUN rm -r /var/lib/apt/lists/* RUN usermod -u 1000 www-data From 3a7e6e4b1a06393d97f069b103e4e886c79ad0fe Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Fri, 14 Apr 2017 03:55:08 -0400 Subject: [PATCH 23/43] add travis file to auto generated documentation --- .travis.yml | 22 +++++++++++++++++++ .../_settings/content/contributing/index.md | 15 +++++++------ 2 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..972a5c84 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,22 @@ +language: go +install: + - export HUGO_VERSION=0.20 + - export HUGO_PACKAGE=hugo_${HUGO_VERSION}_Linux-64bit + - curl -L https://github.com/spf13/hugo/releases/download/v$HUGO_VERSION/$HUGO_PACKAGE.tar.gz | tar xz + - mkdir $HOME/bin + - mv ./hugo_${HUGO_VERSION}_linux_amd64/hugo_${HUGO_VERSION}_linux_amd64 $HOME/bin/hugo +script: + - rm -rf docs + - cd DOCUMENTATION/_settings + - hugo + +deploy: + provider: pages + skip_cleanup: true + local_dir: public + github_token: $GITHUB_TOKEN + on: + branch: master + +notifications: + email: false diff --git a/DOCUMENTATION/_settings/content/contributing/index.md b/DOCUMENTATION/_settings/content/contributing/index.md index 0eb0cdbe..f195fe74 100644 --- a/DOCUMENTATION/_settings/content/contributing/index.md +++ b/DOCUMENTATION/_settings/content/contributing/index.md @@ -38,17 +38,18 @@ You can request a new feature by submitting an [Issue](https://github.com/larado Laradock uses [Hugo](https://gohugo.io/) as website generator tool, with the [Material Docs theme](http://themes.gohugo.io/theme/material-docs/). You might need to check their docs quickly. +Go the `DOCUMENTATION/_settings/content` and search for the markdown file you want to edit (every folder represents a section in the menu). -1. Install [Hugo](https://gohugo.io/) on your machine (easy thing). -2. Open the `DOCUMENTATION/_settings/content` and search for the markdown file you want to edit (every folder represents a section in the menu). -3. Delete the `/docs` folder from the root. -4. When you finish editing, go to `DOCUMENTATION/_settings/` and run the `hugo` command to generate the HTML docs (inside new `/docs` folder). +To edit the sidebar or add a new section, you need to edit this file `DOCUMENTATION/_settings/config.toml` as well. + +*The site will be autogenerated in the `docs/` folder by [Travis](https://travis-ci.com/).* ### To Host the website locally -Go to `DOCUMENTATION/_settings` in your terminal and run `hugo serve` to host the website locally. -### Edit the sidebar -To add a new section to the sidebar or edit existing one, you need to edit this file `DOCUMENTATION/_settings/config.toml`. +1. Install [Hugo](https://gohugo.io/) on your machine (easy thing). +2. Edit the `DOCUMENTATION/_settings/content`. +3. Delete the `/docs` folder from the root. +4. When you finish editing, go to `DOCUMENTATION/_settings/` and run the `hugo` command to generate the HTML docs (inside new `/docs` folder). From 5a496bafeb8b3cdecb4e3f768e512a142fe77b56 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Fri, 14 Apr 2017 04:43:26 -0400 Subject: [PATCH 24/43] move _guides to the documentation --- DOCUMENTATION/_settings/config.toml | 13 +- .../_settings/content/contributing/index.md | 2 +- .../_settings/content/guides/index.md | 336 +++++++-- .../_settings/content/license/index.md | 2 +- .../content/related-projects/index.md | 2 +- .../hugo-material-docs/images/screenshot.png | Bin 252037 -> 0 bytes .../themes/hugo-material-docs/images/tn.png | Bin 86371 -> 0 bytes .../static}/photos/KiTTY/Connection.png | Bin .../static}/photos/KiTTY/ConnectionData.png | Bin .../static}/photos/KiTTY/ConnectionSSH.png | Bin .../photos/KiTTY/ConnectionSSHAuth.png | Bin .../static}/photos/KiTTY/Session.png | Bin .../static}/photos/KiTTY/Terminal.png | Bin .../static}/photos/KiTTY/TerminalKeyboard.png | Bin .../static}/photos/KiTTY/TerminalShell.png | Bin .../static}/photos/KiTTY/Window.png | Bin .../static}/photos/KiTTY/WindowAppearance.png | Bin .../static}/photos/PHPStorm/DebugRemoteOn.png | Bin .../PHPStorm/RemoteDebuggingSuccess.png | Bin .../static}/photos/PHPStorm/RemoteHost.png | Bin .../PHPStorm/RemoteTestDebuggingSuccess.png | Bin .../PHPStorm/RemoteWebDebuggingSuccess.png | Bin .../Settings/BuildDeploymentConnection.png | Bin .../BuildDeploymentConnectionMappings.png | Bin .../Settings/BuildDeploymentDebugger.png | Bin ...RunConfigurationRemoteExampleTestDebug.png | Bin .../EditRunConfigurationRemoteWebDebug.png | Bin .../PHPStorm/Settings/LangsPHPDebug.png | Bin .../Settings/LangsPHPInterpreters.png | Bin .../PHPStorm/Settings/LangsPHPPHPUnit.png | Bin .../PHPStorm/Settings/LangsPHPServers.png | Bin .../Settings/WindowsFirewallAllowedApps.png | Bin .../Settings/WindowsHyperVManager.png | Bin .../photos/PHPStorm/Settings/hosts.png | Bin .../SimpleHostsEditor/AddHost_laravel.png | Bin _guides/digital_ocean.md | 216 ------ docs/contributing/index.html | 40 +- docs/contributing/index.xml | 22 +- docs/documentation/index.html | 18 + docs/getting-started/index.html | 18 + docs/help/index.html | 18 + docs/index.html | 703 +++++++++++++++++- docs/index.xml | 686 ++++++++++++++++- docs/introduction/index.html | 34 + docs/license/index.html | 18 + docs/related-projects/index.html | 18 + docs/sitemap.xml | 9 + 47 files changed, 1840 insertions(+), 315 deletions(-) rename _guides/phpstorm.md => DOCUMENTATION/_settings/content/guides/index.md (60%) delete mode 100644 DOCUMENTATION/_settings/themes/hugo-material-docs/images/screenshot.png delete mode 100644 DOCUMENTATION/_settings/themes/hugo-material-docs/images/tn.png rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/KiTTY/Connection.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/KiTTY/ConnectionData.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/KiTTY/ConnectionSSH.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/KiTTY/ConnectionSSHAuth.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/KiTTY/Session.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/KiTTY/Terminal.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/KiTTY/TerminalKeyboard.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/KiTTY/TerminalShell.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/KiTTY/Window.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/KiTTY/WindowAppearance.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/DebugRemoteOn.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/RemoteDebuggingSuccess.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/RemoteHost.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/RemoteTestDebuggingSuccess.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/RemoteWebDebuggingSuccess.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/Settings/BuildDeploymentConnection.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/Settings/BuildDeploymentConnectionMappings.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/Settings/BuildDeploymentDebugger.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/Settings/EditRunConfigurationRemoteExampleTestDebug.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/Settings/EditRunConfigurationRemoteWebDebug.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/Settings/LangsPHPDebug.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/Settings/LangsPHPInterpreters.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/Settings/LangsPHPPHPUnit.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/Settings/LangsPHPServers.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/Settings/WindowsFirewallAllowedApps.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/Settings/WindowsHyperVManager.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/PHPStorm/Settings/hosts.png (100%) rename {_guides => DOCUMENTATION/_settings/themes/hugo-material-docs/static}/photos/SimpleHostsEditor/AddHost_laravel.png (100%) delete mode 100644 _guides/digital_ocean.md diff --git a/DOCUMENTATION/_settings/config.toml b/DOCUMENTATION/_settings/config.toml index 90b5b535..cffc6063 100644 --- a/DOCUMENTATION/_settings/config.toml +++ b/DOCUMENTATION/_settings/config.toml @@ -62,8 +62,8 @@ googleAnalytics = "UA-37514928-9" weight = 3 [[menu.main]] - name = "Related Projects" - url = "related-projects/" + name = "Giudes" + url = "guides/" weight = 4 [[menu.main]] @@ -71,15 +71,20 @@ googleAnalytics = "UA-37514928-9" url = "help/" weight = 5 +[[menu.main]] + name = "Related Projects" + url = "related-projects/" + weight = 6 + [[menu.main]] name = "Contributing" url = "contributing/" - weight = 6 + weight = 7 [[menu.main]] name = "License" url = "license/" - weight = 7 + weight = 8 # ------- MENU END ----------------------------------------- diff --git a/DOCUMENTATION/_settings/content/contributing/index.md b/DOCUMENTATION/_settings/content/contributing/index.md index f195fe74..906dcf59 100644 --- a/DOCUMENTATION/_settings/content/contributing/index.md +++ b/DOCUMENTATION/_settings/content/contributing/index.md @@ -1,7 +1,7 @@ --- title: Contributing type: index -weight: 6 +weight: 7 --- diff --git a/_guides/phpstorm.md b/DOCUMENTATION/_settings/content/guides/index.md similarity index 60% rename from _guides/phpstorm.md rename to DOCUMENTATION/_settings/content/guides/index.md index 8dad1a22..6be3e330 100644 --- a/_guides/phpstorm.md +++ b/DOCUMENTATION/_settings/content/guides/index.md @@ -1,49 +1,293 @@ -# PHPStorm Debugging Guide +--- +title: Guides +type: index +weight: 4 +--- + + + +* [Production Setup on Digital Ocean](#Digital-Ocean) +* [PHPStorm XDebug Setup](#PHPStorm-Debugging) + + + + +# 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 +``` + +## Install docker-compose command + +``` +$root@server:~/laravel/laradock# curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose +$root@server:~/chmod +x /usr/local/bin/docker-compose +``` + +## 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 +``` + +## 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/nginx# docker-compose down +$root@server:~/laravel/laradock/nginx# 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/caddy# 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/caddy# docker-compose down +$root@server:~/laravel/laradock/caddy# 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) + + + + + +
+
+
+
+
+ + +# PHPStorm XDebug Setup - [Intro](#Intro) - [Installation](#Installation) - - [Customize laradock/docker-compose.yml](#CustomizeDockerCompose) - - [Clean House](#InstallCleanHouse) - - [LaraDock Dial Tone](#InstallLaraDockDialTone) - - [hosts](#AddToHosts) - - [Firewall](#FireWall) + - [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) - + - [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`, +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`. + - 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](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](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. +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. @@ -51,7 +295,7 @@ Your PHPStorm will need to be able to receive a connection from PHP xdebug eithe ### Edit laradock/docker-compose.yml Set the following variables: ``` -### Workspace Utilities Container ########################### +### Workspace Utilities Container ############### workspace: build: @@ -60,9 +304,9 @@ Set the following variables: - INSTALL_XDEBUG=true - INSTALL_WORKSPACE_SSH=true ... - - -### PHP-FPM Container ####################################### + + +### PHP-FPM Container ##################### php-fpm: build: @@ -70,7 +314,7 @@ Set the following variables: args: - INSTALL_XDEBUG=true ... - + ``` ### Edit xdebug.ini files @@ -91,13 +335,13 @@ xdebug.cli_color=1 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). +- 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: +**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. @@ -107,7 +351,7 @@ Here are a few things I use to clean things up. if [ -n "$processes" ]; thend docker rm $processes fi - + images=`docker images -q -f dangling=true` if [ -n "$images" ]; then docker rmi $images @@ -140,13 +384,13 @@ alias dcleanlaradock=dcleanlaradockfunction ``` -#### Let's get a dial-tone with Laravel +## Let's get a dial-tone with Laravel ``` # barebones at this point docker-compose up -d nginx mysql -# run +# run docker-compose ps # Should see: @@ -163,7 +407,7 @@ laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222- ``` -#### Enable xDebug on php-fpm +## Enable xDebug on php-fpm In a host terminal sitting in the laradock folder, run: `./xdebugPhpFpm status` You should see something like the following: ``` @@ -181,39 +425,39 @@ If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will -#### PHPStorm Settings +## PHPStorm Settings - Here are some settings that are known to work: - `Settings/BuildDeploymentConnection` - ![Settings/BuildDeploymentConnection](photos/PHPStorm/Settings/BuildDeploymentConnection.png) - + - `Settings/BuildDeploymentConnectionMappings` - ![Settings/BuildDeploymentConnectionMappings](photos/PHPStorm/Settings/BuildDeploymentConnectionMappings.png) - + - `Settings/BuildDeploymentDebugger` - ![Settings/BuildDeploymentDebugger](photos/PHPStorm/Settings/BuildDeploymentDebugger.png) - + - `Settings/EditRunConfigurationRemoteWebDebug` - ![Settings/EditRunConfigurationRemoteWebDebug](photos/PHPStorm/Settings/EditRunConfigurationRemoteWebDebug.png) - + - `Settings/EditRunConfigurationRemoteExampleTestDebug` - ![Settings/EditRunConfigurationRemoteExampleTestDebug](photos/PHPStorm/Settings/EditRunConfigurationRemoteExampleTestDebug.png) - + - `Settings/LangsPHPDebug` - ![Settings/LangsPHPDebug](photos/PHPStorm/Settings/LangsPHPDebug.png) - + - `Settings/LangsPHPInterpreters` - ![Settings/LangsPHPInterpreters](photos/PHPStorm/Settings/LangsPHPInterpreters.png) - + - `Settings/LangsPHPPHPUnit` - ![Settings/LangsPHPPHPUnit](photos/PHPStorm/Settings/LangsPHPPHPUnit.png) - + - `Settings/LangsPHPServers` - ![Settings/LangsPHPServers](photos/PHPStorm/Settings/LangsPHPServers.png) - + - `RemoteHost` To switch on this view, go to: `Menu/Tools/Deployment/Browse Remote Host`. - ![RemoteHost](photos/PHPStorm/RemoteHost.png) - + - `RemoteWebDebug` - ![DebugRemoteOn](photos/PHPStorm/DebugRemoteOn.png) @@ -258,14 +502,14 @@ If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will ### Debug WebSite -- In case xDebug is disabled, from the `laradock` folder run: +- In case xDebug is disabled, from the `laradock` folder run: `./xdebugPhpFpm start`. - - To switch xdebug off, run: + - To switch xdebug off, run: `./xdebugPhpFpm stop` - + - Start Remote Debugging - ![DebugRemoteOn](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/) @@ -274,7 +518,7 @@ If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will -#### Let's shell into workspace +## Let's shell into workspace Assuming that you are in laradock folder, type: `ssh -i workspace/insecure_id_rsa -p2222 root@laravel` **Cha Ching!!!!** @@ -285,7 +529,7 @@ Assuming that you are in laradock folder, type: -##### KiTTY +### 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: diff --git a/DOCUMENTATION/_settings/content/license/index.md b/DOCUMENTATION/_settings/content/license/index.md index d65e5abc..795d4c89 100644 --- a/DOCUMENTATION/_settings/content/license/index.md +++ b/DOCUMENTATION/_settings/content/license/index.md @@ -1,7 +1,7 @@ --- title: License type: index -weight: 7 +weight: 8 --- [MIT License](https://github.com/laradock/laradock/blob/master/LICENSE) (MIT) diff --git a/DOCUMENTATION/_settings/content/related-projects/index.md b/DOCUMENTATION/_settings/content/related-projects/index.md index b5c30959..de7d0cd0 100644 --- a/DOCUMENTATION/_settings/content/related-projects/index.md +++ b/DOCUMENTATION/_settings/content/related-projects/index.md @@ -1,7 +1,7 @@ --- title: Related Projects type: index -weight: 4 +weight: 6 --- Laradock related projects: diff --git a/DOCUMENTATION/_settings/themes/hugo-material-docs/images/screenshot.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/images/screenshot.png deleted file mode 100644 index 97ac0628a405f1933194eb7b0746c2fb525c6718..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 252037 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%0D>qH*$J- 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 diff --git a/DOCUMENTATION/_settings/themes/hugo-material-docs/images/tn.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/images/tn.png deleted file mode 100644 index d3d374b30b3980136b68abeab00001641a845ada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86371 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�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 ~80^f_NZ4O7QAlUsWj1j%6 zVD}*dXpt_IqZw5-n^(PBrZR%Nrh-~<)K&N7dGB7pmjQ*CS*}Fh9*!7-k^hG-}t+`9l^lAu1>}N2`kD(#n;pl!o!OlKdUq86C;w|6yy>tLO z^-o}Decd{8+~?pn|C=I>)z^JJAH8jSoUhFwzSH$d7nAgt5te~HX5Hq;uYQaM5>o5{ z8kuxev@SEVs!*DAuTwMNFo}D?bt9!bnHll^i~e)4|Co|d!e$qW9~H$cAxABN59&n9IX9)$H%Y(db;Q}&@*Mak_bKxKzB`y(8H6qB&fMh z4o3dhZl2tj6l!ATSpC))y_lHTyhV$1dRcG8{!bE-PetCBb?AWROe4ZI+=k)S=MjmC zy&cq%VfchuTy?!=n$#_DQ9rFSrSqR`M^VYmb|Xy#G$YUg>!cF6t+@XSW~kfcglal> z*j9Y;I|;$~(0N~qzlu-2rM?`q0Y`#JewIe`!i|u{WI^@NZ^Un}CBS5oX^mA0eno#G z5I%972%j2G^dR6vii4IOzlA-^lsmt=C4zx0L`9ws&4mWFWB95@m@9tL<$a@hHp~=1 z7;PN5Tj$9_++kBBUWKav_kX0{T0;B*a4Awp>w=+{rW+7^im}1MLpBUKKn*OOt|iW) zj(slT8>n&a$Bp0~n+l+iQWXgLY;Sy3Ynku6)o#`i0eib_CHGA5M4DItc)eGDt^T7^L6i8bH*70(@ib`z_zp~lg7TV5(*Oh?bxeeb zvL&W7Gr}RiouweYjeRM=TwK*lm>xu!&LrQ|Hfpf5Btm8S2tz)cmnGw8wyVZb`08d2 zfCDa6kxC6$QLk|CtyWrxT4{=)c<$>Ww~Vm7OednL=aTeB5HS6BB$OeUPrbUpAf-zSxcjBhX6CHk!U}YT|vMY&C6fJYTLnFVpqW@c4X3gjU{J64jyOB8@y?d@uBUbLmRfd}6^)?fXZ6mcRXLZ~!ZqY6yW`(bUs; JuWl9c{{TuUNr?ae diff --git a/_guides/photos/KiTTY/Connection.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/Connection.png similarity index 100% rename from _guides/photos/KiTTY/Connection.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/Connection.png diff --git a/_guides/photos/KiTTY/ConnectionData.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/ConnectionData.png similarity index 100% rename from _guides/photos/KiTTY/ConnectionData.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/ConnectionData.png diff --git a/_guides/photos/KiTTY/ConnectionSSH.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/ConnectionSSH.png similarity index 100% rename from _guides/photos/KiTTY/ConnectionSSH.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/ConnectionSSH.png diff --git a/_guides/photos/KiTTY/ConnectionSSHAuth.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/ConnectionSSHAuth.png similarity index 100% rename from _guides/photos/KiTTY/ConnectionSSHAuth.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/ConnectionSSHAuth.png diff --git a/_guides/photos/KiTTY/Session.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/Session.png similarity index 100% rename from _guides/photos/KiTTY/Session.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/Session.png diff --git a/_guides/photos/KiTTY/Terminal.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/Terminal.png similarity index 100% rename from _guides/photos/KiTTY/Terminal.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/Terminal.png diff --git a/_guides/photos/KiTTY/TerminalKeyboard.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/TerminalKeyboard.png similarity index 100% rename from _guides/photos/KiTTY/TerminalKeyboard.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/TerminalKeyboard.png diff --git a/_guides/photos/KiTTY/TerminalShell.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/TerminalShell.png similarity index 100% rename from _guides/photos/KiTTY/TerminalShell.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/TerminalShell.png diff --git a/_guides/photos/KiTTY/Window.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/Window.png similarity index 100% rename from _guides/photos/KiTTY/Window.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/Window.png diff --git a/_guides/photos/KiTTY/WindowAppearance.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/WindowAppearance.png similarity index 100% rename from _guides/photos/KiTTY/WindowAppearance.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/KiTTY/WindowAppearance.png diff --git a/_guides/photos/PHPStorm/DebugRemoteOn.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/DebugRemoteOn.png similarity index 100% rename from _guides/photos/PHPStorm/DebugRemoteOn.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/DebugRemoteOn.png diff --git a/_guides/photos/PHPStorm/RemoteDebuggingSuccess.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/RemoteDebuggingSuccess.png similarity index 100% rename from _guides/photos/PHPStorm/RemoteDebuggingSuccess.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/RemoteDebuggingSuccess.png diff --git a/_guides/photos/PHPStorm/RemoteHost.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/RemoteHost.png similarity index 100% rename from _guides/photos/PHPStorm/RemoteHost.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/RemoteHost.png diff --git a/_guides/photos/PHPStorm/RemoteTestDebuggingSuccess.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/RemoteTestDebuggingSuccess.png similarity index 100% rename from _guides/photos/PHPStorm/RemoteTestDebuggingSuccess.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/RemoteTestDebuggingSuccess.png diff --git a/_guides/photos/PHPStorm/RemoteWebDebuggingSuccess.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/RemoteWebDebuggingSuccess.png similarity index 100% rename from _guides/photos/PHPStorm/RemoteWebDebuggingSuccess.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/RemoteWebDebuggingSuccess.png diff --git a/_guides/photos/PHPStorm/Settings/BuildDeploymentConnection.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/BuildDeploymentConnection.png similarity index 100% rename from _guides/photos/PHPStorm/Settings/BuildDeploymentConnection.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/BuildDeploymentConnection.png diff --git a/_guides/photos/PHPStorm/Settings/BuildDeploymentConnectionMappings.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/BuildDeploymentConnectionMappings.png similarity index 100% rename from _guides/photos/PHPStorm/Settings/BuildDeploymentConnectionMappings.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/BuildDeploymentConnectionMappings.png diff --git a/_guides/photos/PHPStorm/Settings/BuildDeploymentDebugger.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/BuildDeploymentDebugger.png similarity index 100% rename from _guides/photos/PHPStorm/Settings/BuildDeploymentDebugger.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/BuildDeploymentDebugger.png diff --git a/_guides/photos/PHPStorm/Settings/EditRunConfigurationRemoteExampleTestDebug.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/EditRunConfigurationRemoteExampleTestDebug.png similarity index 100% rename from _guides/photos/PHPStorm/Settings/EditRunConfigurationRemoteExampleTestDebug.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/EditRunConfigurationRemoteExampleTestDebug.png diff --git a/_guides/photos/PHPStorm/Settings/EditRunConfigurationRemoteWebDebug.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/EditRunConfigurationRemoteWebDebug.png similarity index 100% rename from _guides/photos/PHPStorm/Settings/EditRunConfigurationRemoteWebDebug.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/EditRunConfigurationRemoteWebDebug.png diff --git a/_guides/photos/PHPStorm/Settings/LangsPHPDebug.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/LangsPHPDebug.png similarity index 100% rename from _guides/photos/PHPStorm/Settings/LangsPHPDebug.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/LangsPHPDebug.png diff --git a/_guides/photos/PHPStorm/Settings/LangsPHPInterpreters.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/LangsPHPInterpreters.png similarity index 100% rename from _guides/photos/PHPStorm/Settings/LangsPHPInterpreters.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/LangsPHPInterpreters.png diff --git a/_guides/photos/PHPStorm/Settings/LangsPHPPHPUnit.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/LangsPHPPHPUnit.png similarity index 100% rename from _guides/photos/PHPStorm/Settings/LangsPHPPHPUnit.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/LangsPHPPHPUnit.png diff --git a/_guides/photos/PHPStorm/Settings/LangsPHPServers.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/LangsPHPServers.png similarity index 100% rename from _guides/photos/PHPStorm/Settings/LangsPHPServers.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/LangsPHPServers.png diff --git a/_guides/photos/PHPStorm/Settings/WindowsFirewallAllowedApps.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/WindowsFirewallAllowedApps.png similarity index 100% rename from _guides/photos/PHPStorm/Settings/WindowsFirewallAllowedApps.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/WindowsFirewallAllowedApps.png diff --git a/_guides/photos/PHPStorm/Settings/WindowsHyperVManager.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/WindowsHyperVManager.png similarity index 100% rename from _guides/photos/PHPStorm/Settings/WindowsHyperVManager.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/WindowsHyperVManager.png diff --git a/_guides/photos/PHPStorm/Settings/hosts.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/hosts.png similarity index 100% rename from _guides/photos/PHPStorm/Settings/hosts.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/PHPStorm/Settings/hosts.png diff --git a/_guides/photos/SimpleHostsEditor/AddHost_laravel.png b/DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/SimpleHostsEditor/AddHost_laravel.png similarity index 100% rename from _guides/photos/SimpleHostsEditor/AddHost_laravel.png rename to DOCUMENTATION/_settings/themes/hugo-material-docs/static/photos/SimpleHostsEditor/AddHost_laravel.png diff --git a/_guides/digital_ocean.md b/_guides/digital_ocean.md deleted file mode 100644 index 4c99b85f..00000000 --- a/_guides/digital_ocean.md +++ /dev/null @@ -1,216 +0,0 @@ -#### 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 -``` - -#### Install docker-compose command - -``` -$root@server:~/laravel/laradock# curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose -$root@server:~/chmod +x /usr/local/bin/docker-compose -``` - -#### 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 -``` - -#### 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/nginx# docker-compose down -$root@server:~/laravel/laradock/nginx# 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/caddy# 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/caddy# docker-compose down -$root@server:~/laravel/laradock/caddy# 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) diff --git a/docs/contributing/index.html b/docs/contributing/index.html index 9117ff04..a1f7f364 100644 --- a/docs/contributing/index.html +++ b/docs/contributing/index.html @@ -211,6 +211,24 @@ + + + Giudes + + + + + + + + + +

  • + + + + + Related Projects @@ -345,20 +363,20 @@ features, by not reporting duplicate issues.

    Laradock uses Hugo as website generator tool, with the Material Docs theme. You might need to check their docs quickly.

    -
      -
    1. Install Hugo on your machine (easy thing).
    2. -
    3. Open the DOCUMENTATION/_settings/content and search for the markdown file you want to edit (every folder represents a section in the menu).
    4. -
    5. Delete the /docs folder from the root.
    6. -
    7. When you finish editing, go to DOCUMENTATION/_settings/ and run the hugo command to generate the HTML docs (inside new /docs folder).
    8. -
    +

    Go the DOCUMENTATION/_settings/content and search for the markdown file you want to edit (every folder represents a section in the menu).

    + +

    To edit the sidebar or add a new section, you need to edit this file DOCUMENTATION/_settings/config.toml as well.

    + +

    The site will be autogenerated in the docs/ folder by Travis.

    To Host the website locally

    -

    Go to DOCUMENTATION/_settings in your terminal and run hugo serve to host the website locally.

    - -

    Edit the sidebar

    - -

    To add a new section to the sidebar or edit existing one, you need to edit this file DOCUMENTATION/_settings/config.toml.

    +
      +
    1. Install Hugo on your machine (easy thing).
    2. +
    3. Edit the DOCUMENTATION/_settings/content.
    4. +
    5. Delete the /docs folder from the root.
    6. +
    7. When you finish editing, go to DOCUMENTATION/_settings/ and run the hugo command to generate the HTML docs (inside new /docs folder).
    8. +

    How to support new Software (Add new Container)

    diff --git a/docs/contributing/index.xml b/docs/contributing/index.xml index b4a9f156..9ba042e7 100644 --- a/docs/contributing/index.xml +++ b/docs/contributing/index.xml @@ -48,20 +48,20 @@ features, by not reporting duplicate issues.</em></p> <p>Laradock uses <a href="https://gohugo.io/">Hugo</a> as website generator tool, with the <a href="http://themes.gohugo.io/theme/material-docs/">Material Docs theme</a>. You might need to check their docs quickly.</p> -<ol> -<li>Install <a href="https://gohugo.io/">Hugo</a> on your machine (easy thing).</li> -<li>Open the <code>DOCUMENTATION/_settings/content</code> and search for the markdown file you want to edit (every folder represents a section in the menu).</li> -<li>Delete the <code>/docs</code> folder from the root.</li> -<li>When you finish editing, go to <code>DOCUMENTATION/_settings/</code> and run the <code>hugo</code> command to generate the HTML docs (inside new <code>/docs</code> folder).</li> -</ol> +<p>Go the <code>DOCUMENTATION/_settings/content</code> and search for the markdown file you want to edit (every folder represents a section in the menu).</p> + +<p>To edit the sidebar or add a new section, you need to edit this file <code>DOCUMENTATION/_settings/config.toml</code> as well.</p> + +<p><em>The site will be autogenerated in the <code>docs/</code> folder by <a href="https://travis-ci.com/">Travis</a>.</em></p> <h3 id="to-host-the-website-locally">To Host the website locally</h3> -<p>Go to <code>DOCUMENTATION/_settings</code> in your terminal and run <code>hugo serve</code> to host the website locally.</p> - -<h3 id="edit-the-sidebar">Edit the sidebar</h3> - -<p>To add a new section to the sidebar or edit existing one, you need to edit this file <code>DOCUMENTATION/_settings/config.toml</code>.</p> +<ol> +<li>Install <a href="https://gohugo.io/">Hugo</a> on your machine (easy thing).</li> +<li>Edit the <code>DOCUMENTATION/_settings/content</code>.</li> +<li>Delete the <code>/docs</code> folder from the root.</li> +<li>When you finish editing, go to <code>DOCUMENTATION/_settings/</code> and run the <code>hugo</code> command to generate the HTML docs (inside new <code>/docs</code> folder).</li> +</ol> <h2 id="how-to-support-new-software-add-new-container">How to support new Software (Add new Container)</h2> diff --git a/docs/documentation/index.html b/docs/documentation/index.html index c1c162ad..d8e698fa 100644 --- a/docs/documentation/index.html +++ b/docs/documentation/index.html @@ -214,6 +214,24 @@ + + + Giudes + + + + + +
  • + + + +
  • + + + + + Related Projects diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html index c2fb80a5..6b24b2c9 100644 --- a/docs/getting-started/index.html +++ b/docs/getting-started/index.html @@ -214,6 +214,24 @@ + + + Giudes + + + + + +
  • + + + +
  • + + + + + Related Projects diff --git a/docs/help/index.html b/docs/help/index.html index b32e679e..f49ee6e1 100644 --- a/docs/help/index.html +++ b/docs/help/index.html @@ -211,6 +211,24 @@ + + + Giudes + + + + + +
  • + + + +
  • + + + + + Related Projects diff --git a/docs/index.html b/docs/index.html index d363e579..536794c3 100644 --- a/docs/index.html +++ b/docs/index.html @@ -214,6 +214,24 @@ + + + Giudes + + + + + +
  • + + + +
  • + + + + + Related Projects @@ -310,6 +328,665 @@
    +

    Guides

    + + + +

    Production Setup on Digital Ocean

    + +

    Install Docker

    + +
      +
    • Visit DigitalOcean 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
    +
    + +

    Install docker-compose command

    + +
    $root@server:~/laravel/laradock# curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose
    +$root@server:~/chmod +x /usr/local/bin/docker-compose
    +
    + +

    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 or the docker-compose.yml file.

    + +

    Go to Your Workspace

    + +
    docker-compose exec workspace bash
    +
    + +

    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/nginx# docker-compose down
    +$root@server:~/laravel/laradock/nginx# 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/caddy# 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/caddy# docker-compose down
    +$root@server:~/laravel/laradock/caddy# 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:

    + + +
    + +


    +
    +
    +
    +

    + +

    PHPStorm Debugging Guide

    + + + +

    + +

    Intro

    + +

    Wiring up Laravel, LaraDock [Laravel+Docker] and 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
      • +
    • + +
    • Hosts File Editor makes it easy to change your hosts file.

      + +
        +
      • Set laravel to your docker host IP. See Example.
      • +
    • +
    + +

    + +

    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. +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" ]; thend
      +      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

    + +
    
    +<a name="InstallLaraDockDialTone"></a>
    +#### 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

    + +
    
    +<a name="enablePhpXdebug"></a>
    +#### Enable xDebug on php-fpm
    +In a host terminal sitting in the laradock folder, run: `./xdebugPhpFpm 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 © 1997-2016 The PHP Group +Zend Engine v3.0.0, Copyright © 1998-2016 Zend Technologies + with Xdebug v2.4.1, Copyright © 2002-2016, by Derick Rethans +`` +Other commands include./xdebugPhpFpm 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
        • +
      • + +
      • Settings/BuildDeploymentConnectionMappings

        + +
          +
        • Settings/BuildDeploymentConnectionMappings
        • +
      • + +
      • Settings/BuildDeploymentDebugger

        + +
          +
        • Settings/BuildDeploymentDebugger
        • +
      • + +
      • Settings/EditRunConfigurationRemoteWebDebug

        + +
          +
        • Settings/EditRunConfigurationRemoteWebDebug
        • +
      • + +
      • Settings/EditRunConfigurationRemoteExampleTestDebug

        + +
          +
        • Settings/EditRunConfigurationRemoteExampleTestDebug
        • +
      • + +
      • Settings/LangsPHPDebug

        + +
          +
        • Settings/LangsPHPDebug
        • +
      • + +
      • Settings/LangsPHPInterpreters

        + +
          +
        • Settings/LangsPHPInterpreters
        • +
      • + +
      • Settings/LangsPHPPHPUnit

        + +
          +
        • Settings/LangsPHPPHPUnit
        • +
      • + +
      • Settings/LangsPHPServers

        + +
          +
        • Settings/LangsPHPServers
        • +
      • + +
      • RemoteHost +To switch on this view, go to: Menu/Tools/Deployment/Browse Remote Host.

        + +
          +
        • RemoteHost
        • +
      • + +
      • RemoteWebDebug

        + +
          +
        • DebugRemoteOn
        • +
      • + +
      • EditRunConfigurationRemoteWebDebug +Go to: Menu/Run/Edit Configurations.

        + +
          +
        • EditRunConfigurationRemoteWebDebug
        • +
      • + +
      • EditRunConfigurationRemoteExampleTestDebug +Go to: Menu/Run/Edit Configurations.

        + +
          +
        • EditRunConfigurationRemoteExampleTestDebug
        • +
      • + +
      • WindowsFirewallAllowedApps +Go to: Control Panel\All Control Panel Items\Windows Firewall\Allowed apps.

        + +
          +
        • WindowsFirewallAllowedApps.png
        • +
      • + +
      • hosts +Edit: C:\Windows\System32\drivers\etc\hosts.

        + +
      • +
    • +
    + +

    + +

    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
      • +
    • +
    + +

    + +

    Debug WebSite

    + +
      +
    • In case xDebug is disabled, from the laradock folder run: +./xdebugPhpFpm start.

      + +
        +
      • To switch xdebug off, run: +./xdebugPhpFpm stop
      • +
    • + +
    • Start Remote Debugging

      + +
        +
      • DebugRemoteOn
      • +
    • + +
    • Open to edit: bootstrap/app.php

    • + +
    • Add a BreakPoint on line 14: $app = new Illuminate\Foundation\Application(

    • + +
    • Reload Laravel Site

      + +
        +
      • Should have stopped at the BreakPoint!! You are now debugging locally against a remote Laravel project via SSH!
      • +
      • Remote Debugging Success
      • +
    • +
    + +

    + +

    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 KiTTY is a fork from version 0.67 of PuTTY.

    + +
      +
    • Here are some settings that are working for me: + +
        +
      • Session
      • +
      • Terminal
      • +
      • Window
      • +
      • WindowAppearance
      • +
      • Connection
      • +
      • ConnectionData
      • +
      • ConnectionSSH
      • +
      • ConnectionSSHAuth
      • +
      • TerminalShell
      • +
    • +
    + +

    Introduction

    @@ -2011,20 +2688,20 @@ features, by not reporting duplicate issues.

    Laradock uses Hugo as website generator tool, with the Material Docs theme. You might need to check their docs quickly.

    -
      -
    1. Install Hugo on your machine (easy thing).
    2. -
    3. Open the DOCUMENTATION/_settings/content and search for the markdown file you want to edit (every folder represents a section in the menu).
    4. -
    5. Delete the /docs folder from the root.
    6. -
    7. When you finish editing, go to DOCUMENTATION/_settings/ and run the hugo command to generate the HTML docs (inside new /docs folder).
    8. -
    +

    Go the DOCUMENTATION/_settings/content and search for the markdown file you want to edit (every folder represents a section in the menu).

    + +

    To edit the sidebar or add a new section, you need to edit this file DOCUMENTATION/_settings/config.toml as well.

    + +

    The site will be autogenerated in the docs/ folder by Travis.

    To Host the website locally

    -

    Go to DOCUMENTATION/_settings in your terminal and run hugo serve to host the website locally.

    - -

    Edit the sidebar

    - -

    To add a new section to the sidebar or edit existing one, you need to edit this file DOCUMENTATION/_settings/config.toml.

    +
      +
    1. Install Hugo on your machine (easy thing).
    2. +
    3. Edit the DOCUMENTATION/_settings/content.
    4. +
    5. Delete the /docs folder from the root.
    6. +
    7. When you finish editing, go to DOCUMENTATION/_settings/ and run the hugo command to generate the HTML docs (inside new /docs folder).
    8. +

    How to support new Software (Add new Container)

    @@ -2180,14 +2857,14 @@ git push origin my-fix-branch -f
  • + + + +
  • + + + + + Related Projects @@ -521,6 +539,22 @@ QUEUE_HOST=beanstalkd
  • + + + +
  • + + + + + Related Projects diff --git a/docs/related-projects/index.html b/docs/related-projects/index.html index 7a5a75a0..3fe3d4e1 100644 --- a/docs/related-projects/index.html +++ b/docs/related-projects/index.html @@ -211,6 +211,24 @@ + + + Giudes + + + + + +
  • + + + +
  • + + + + + Related Projects diff --git a/docs/sitemap.xml b/docs/sitemap.xml index 69ca8d46..35590489 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -1,6 +1,10 @@ + + http://laradock.io/guides/ + + http://laradock.io/introduction/ @@ -44,6 +48,11 @@ 0 + + http://laradock.io/guides/ + 0 + + http://laradock.io/help/ 0 From 74efa008dacf5cfacc99f8cf629a169016d262fc Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Fri, 14 Apr 2017 04:44:50 -0400 Subject: [PATCH 25/43] regenerate site --- docs/contributing/index.html | 12 +- docs/documentation/index.html | 12 +- docs/getting-started/index.html | 8 +- docs/help/index.html | 22 +- docs/index.html | 1353 ++++++++++++++--------------- docs/index.xml | 1361 +++++++++++++++--------------- docs/introduction/index.html | 24 +- docs/license/index.html | 8 +- docs/related-projects/index.html | 22 +- docs/sitemap.xml | 10 +- 10 files changed, 1417 insertions(+), 1415 deletions(-) diff --git a/docs/contributing/index.html b/docs/contributing/index.html index a1f7f364..c081df3e 100644 --- a/docs/contributing/index.html +++ b/docs/contributing/index.html @@ -229,9 +229,9 @@ - + - Related Projects + Help & Questions @@ -247,9 +247,9 @@ - + - Help & Questions + Related Projects @@ -514,7 +514,7 @@ git push origin my-fix-branch -f
  • @@ -247,15 +250,12 @@ - + - Help & Questions + Related Projects -
      -
    - @@ -348,7 +348,7 @@