From 5cfd158a720f0ccb843407c8f4b4cb3b92f23d39 Mon Sep 17 00:00:00 2001 From: Vinayak Kulkarni Date: Mon, 27 Apr 2020 01:38:22 +0530 Subject: [PATCH 01/11] chore: upgrade Ubuntu 20.04 --- docker-files/docker/app/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-files/docker/app/Dockerfile b/docker-files/docker/app/Dockerfile index c58550b..c4926b4 100644 --- a/docker-files/docker/app/Dockerfile +++ b/docker-files/docker/app/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:18.04 +FROM ubuntu:20.04 LABEL maintainer="Chris Fidao" From ad0bc63346c6701808215645a0f5b1867dcb3a3f Mon Sep 17 00:00:00 2001 From: Vinayak Kulkarni Date: Mon, 27 Apr 2020 02:42:07 +0530 Subject: [PATCH 02/11] chore: update nginx & php repo links --- docker-files/docker/app/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-files/docker/app/Dockerfile b/docker-files/docker/app/Dockerfile index c4926b4..1306909 100644 --- a/docker-files/docker/app/Dockerfile +++ b/docker-files/docker/app/Dockerfile @@ -14,8 +14,8 @@ RUN set -x \ RUN mkdir ~/.gnupg \ && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu bionic main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ - && echo "deb http://ppa.launchpad.net/nginx/development/ubuntu bionic main" > /etc/apt/sources.list.d/ppa_nginx_mainline.list \ + && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ + && echo "deb http://ppa.launchpad.net/nginx/development/ubuntu focal main" > /etc/apt/sources.list.d/ppa_nginx_mainline.list \ && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C \ && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C \ && apt-get update \ From f9447d4854d5f7c83253d233889713de732661ce Mon Sep 17 00:00:00 2001 From: Vinayak Kulkarni Date: Wed, 20 May 2020 01:02:22 +0530 Subject: [PATCH 03/11] feat: use nginx ppa instead of launchpad --- docker-files/docker/app/Dockerfile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docker-files/docker/app/Dockerfile b/docker-files/docker/app/Dockerfile index 1306909..41f8696 100644 --- a/docker-files/docker/app/Dockerfile +++ b/docker-files/docker/app/Dockerfile @@ -15,11 +15,14 @@ RUN set -x \ RUN mkdir ~/.gnupg \ && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ - && echo "deb http://ppa.launchpad.net/nginx/development/ubuntu focal main" > /etc/apt/sources.list.d/ppa_nginx_mainline.list \ + && apt-get install curl gnupg2 ca-certificates lsb-release -y \ + && echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list \ + && curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add - \ + && apt-key fingerprint ABF5BD827BD9BF62 \ && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C \ && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C \ && apt-get update \ - && apt-get install -y curl zip unzip git supervisor sqlite3 \ + && apt-get install -y zip unzip git supervisor sqlite3 \ && apt-get install -y nginx php7.4-fpm php7.4-cli \ php7.4-pgsql php7.4-sqlite3 php7.4-gd \ php7.4-curl php7.4-memcached \ From 46cbf478fd331d9d95caefc82af37599c714e9de Mon Sep 17 00:00:00 2001 From: Vinayak Kulkarni Date: Wed, 20 May 2020 01:16:01 +0530 Subject: [PATCH 04/11] chore: update ordering for better readability --- docker-files/docker/app/Dockerfile | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docker-files/docker/app/Dockerfile b/docker-files/docker/app/Dockerfile index 41f8696..6011ca6 100644 --- a/docker-files/docker/app/Dockerfile +++ b/docker-files/docker/app/Dockerfile @@ -14,15 +14,14 @@ RUN set -x \ RUN mkdir ~/.gnupg \ && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ - && apt-get install curl gnupg2 ca-certificates lsb-release -y \ + && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C \ + && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C \ + && apt-get install curl gnupg2 ca-certificates lsb-release zip unzip git supervisor sqlite3 -y \ + && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ && echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list \ && curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add - \ && apt-key fingerprint ABF5BD827BD9BF62 \ - && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C \ - && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C \ && apt-get update \ - && apt-get install -y zip unzip git supervisor sqlite3 \ && apt-get install -y nginx php7.4-fpm php7.4-cli \ php7.4-pgsql php7.4-sqlite3 php7.4-gd \ php7.4-curl php7.4-memcached \ From bdc37812902904b8e015045d4c05a99bd8c80281 Mon Sep 17 00:00:00 2001 From: Chris Fidao Date: Thu, 15 Oct 2020 09:17:49 -0500 Subject: [PATCH 05/11] no prompts while building --- docker-files/docker/app/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-files/docker/app/Dockerfile b/docker-files/docker/app/Dockerfile index 6011ca6..a2c1f13 100644 --- a/docker-files/docker/app/Dockerfile +++ b/docker-files/docker/app/Dockerfile @@ -5,6 +5,8 @@ LABEL maintainer="Chris Fidao" RUN useradd -ms /bin/bash -u 1337 vessel WORKDIR /var/www/html +# Avoid prompts when building +ENV DEBIAN_FRONTEND noninteractive ENV TZ=UTC RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone From 938682d61e8a7a86d29a0e577a55cc041c4cc5c4 Mon Sep 17 00:00:00 2001 From: Chris Fidao Date: Thu, 15 Oct 2020 09:18:29 -0500 Subject: [PATCH 06/11] re-ordering some commands, removing lsb-release and gnugp2 --- docker-files/docker/app/Dockerfile | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/docker-files/docker/app/Dockerfile b/docker-files/docker/app/Dockerfile index a2c1f13..83a60cc 100644 --- a/docker-files/docker/app/Dockerfile +++ b/docker-files/docker/app/Dockerfile @@ -10,17 +10,15 @@ ENV DEBIAN_FRONTEND noninteractive ENV TZ=UTC RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone -RUN set -x \ - && apt-get update && apt-get install -y gnupg gosu \ - && gosu nobody true - -RUN mkdir ~/.gnupg \ +RUN apt-get update \ + && apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 \ + && mkdir -p ~/.gnupg \ && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C \ && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C \ - && apt-get install curl gnupg2 ca-certificates lsb-release zip unzip git supervisor sqlite3 -y \ - && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ - && echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list \ + && \ + && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ + && echo "deb http://nginx.org/packages/ubuntu focal nginx" | tee /etc/apt/sources.list.d/nginx.list \ && curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add - \ && apt-key fingerprint ABF5BD827BD9BF62 \ && apt-get update \ From a905d1ff9d9665de1c95eab752625a545fa35cee Mon Sep 17 00:00:00 2001 From: Chris Fidao Date: Thu, 15 Oct 2020 09:18:45 -0500 Subject: [PATCH 07/11] adding pcov package --- docker-files/docker/app/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-files/docker/app/Dockerfile b/docker-files/docker/app/Dockerfile index 83a60cc..8721b3d 100644 --- a/docker-files/docker/app/Dockerfile +++ b/docker-files/docker/app/Dockerfile @@ -27,7 +27,7 @@ RUN apt-get update \ php7.4-curl php7.4-memcached \ php7.4-imap php7.4-mysql php7.4-mbstring \ php7.4-xml php7.4-zip php7.4-bcmath php7.4-soap \ - php7.4-intl php7.4-readline php7.4-xdebug \ + php7.4-intl php7.4-readline php7.4-xdebug php7.4-pcov \ php7.4-msgpack php7.4-igbinary php7.4-ldap \ php-redis \ && php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \ From 435de4f785df18df24ddd66e4ccd2f6b3dbd164b Mon Sep 17 00:00:00 2001 From: Chris Fidao Date: Thu, 15 Oct 2020 09:19:08 -0500 Subject: [PATCH 08/11] removing need for php-fpm.conf file in favor of editing file on the fly during build time --- docker-files/docker/app/Dockerfile | 11 +-- docker-files/docker/app/php-fpm.conf | 130 --------------------------- 2 files changed, 6 insertions(+), 135 deletions(-) delete mode 100644 docker-files/docker/app/php-fpm.conf diff --git a/docker-files/docker/app/Dockerfile b/docker-files/docker/app/Dockerfile index 8721b3d..e314ea8 100644 --- a/docker-files/docker/app/Dockerfile +++ b/docker-files/docker/app/Dockerfile @@ -39,14 +39,15 @@ RUN apt-get update \ && sed -i "s/pm\.start_servers = .*/pm.start_servers = 10/" /etc/php/7.4/fpm/pool.d/www.conf \ && sed -i "s/pm\.min_spare_servers = .*/pm.min_spare_servers = 5/" /etc/php/7.4/fpm/pool.d/www.conf \ && sed -i "s/pm\.max_spare_servers = .*/pm.max_spare_servers = 10/" /etc/php/7.4/fpm/pool.d/www.conf \ - && echo "daemon off;" >> /etc/nginx/nginx.conf - -RUN ln -sf /dev/stdout /var/log/nginx/access.log \ - && ln -sf /dev/stderr /var/log/nginx/error.log + && echo "daemon off;" >> /etc/nginx/nginx.conf \ + && ln -sf /dev/stdout /var/log/nginx/access.log \ + && ln -sf /dev/stderr /var/log/nginx/error.log \ + && sed -i 's/^;daemonize.*$/daemonize = no/g' /etc/php/7.4/fpm/php-fpm.conf \ + && sed -i 's@^error_log.*$@error_log = /proc/self/fd/2@g' /etc/php/7.4/fpm/php-fpm.conf \ + && echo "\n; Allow Vessel to set env vars for local dev\nclear_env=false" >> /etc/php/7.4/fpm/php-fpm.conf COPY h5bp /etc/nginx/h5bp COPY default /etc/nginx/sites-available/default -COPY php-fpm.conf /etc/php/7.4/fpm/php-fpm.conf COPY xdebug.ini /etc/php/7.4/mods-available/xdebug.ini COPY vessel.ini /etc/php/7.4/fpm/conf.d/99-vessel.ini diff --git a/docker-files/docker/app/php-fpm.conf b/docker-files/docker/app/php-fpm.conf deleted file mode 100644 index 427766f..0000000 --- a/docker-files/docker/app/php-fpm.conf +++ /dev/null @@ -1,130 +0,0 @@ -;;;;;;;;;;;;;;;;;;;;; -; FPM Configuration ; -;;;;;;;;;;;;;;;;;;;;; - -; All relative paths in this configuration file are relative to PHP's install -; prefix (/usr). This prefix can be dynamically changed by using the -; '-p' argument from the command line. - -;;;;;;;;;;;;;;;;;; -; Global Options ; -;;;;;;;;;;;;;;;;;; - -[global] -; Pid file -; Note: the default prefix is /var -; Default Value: none -pid = /run/php/php7.4-fpm.pid - -; Error log file -; If it's set to "syslog", log is sent to syslogd instead of being written -; into a local file. -; Note: the default prefix is /var -; Default Value: log/php-fpm.log -error_log = /proc/self/fd/2 - -; syslog_facility is used to specify what type of program is logging the -; message. This lets syslogd specify that messages from different facilities -; will be handled differently. -; See syslog(3) for possible values (ex daemon equiv LOG_DAEMON) -; Default Value: daemon -;syslog.facility = daemon - -; syslog_ident is prepended to every message. If you have multiple FPM -; instances running on the same server, you can change the default value -; which must suit common needs. -; Default Value: php-fpm -;syslog.ident = php-fpm - -; Log level -; Possible Values: alert, error, warning, notice, debug -; Default Value: notice -;log_level = notice - -; If this number of child processes exit with SIGSEGV or SIGBUS within the time -; interval set by emergency_restart_interval then FPM will restart. A value -; of '0' means 'Off'. -; Default Value: 0 -;emergency_restart_threshold = 0 - -; Interval of time used by emergency_restart_interval to determine when -; a graceful restart will be initiated. This can be useful to work around -; accidental corruptions in an accelerator's shared memory. -; Available Units: s(econds), m(inutes), h(ours), or d(ays) -; Default Unit: seconds -; Default Value: 0 -;emergency_restart_interval = 0 - -; Time limit for child processes to wait for a reaction on signals from master. -; Available units: s(econds), m(inutes), h(ours), or d(ays) -; Default Unit: seconds -; Default Value: 0 -;process_control_timeout = 0 - -; The maximum number of processes FPM will fork. This has been designed to control -; the global number of processes when using dynamic PM within a lot of pools. -; Use it with caution. -; Note: A value of 0 indicates no limit -; Default Value: 0 -; process.max = 128 - -; Specify the nice(2) priority to apply to the master process (only if set) -; The value can vary from -19 (highest priority) to 20 (lowest priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool process will inherit the master process priority -; unless specified otherwise -; Default Value: no set -; process.priority = -19 - -; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging. -; Default Value: yes -daemonize = no - -; Set open file descriptor rlimit for the master process. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit for the master process. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Specify the event mechanism FPM will use. The following is available: -; - select (any POSIX os) -; - poll (any POSIX os) -; - epoll (linux >= 2.5.44) -; - kqueue (FreeBSD >= 4.1, OpenBSD >= 2.9, NetBSD >= 2.0) -; - /dev/poll (Solaris >= 7) -; - port (Solaris >= 10) -; Default Value: not set (auto detection) -;events.mechanism = epoll - -; When FPM is built with systemd integration, specify the interval, -; in seconds, between health report notification to systemd. -; Set to 0 to disable. -; Available Units: s(econds), m(inutes), h(ours) -; Default Unit: seconds -; Default value: 10 -;systemd_interval = 10 - -;;;;;;;;;;;;;;;;;;;; -; Pool Definitions ; -;;;;;;;;;;;;;;;;;;;; - -; Multiple pools of child processes may be started with different listening -; ports and different management options. The name of the pool will be -; used in logs and stats. There is no limitation on the number of pools which -; FPM can handle. Your system will tell you anyway :) - -; Include one or more files. If glob(3) exists, it is used to include a bunch of -; files from a glob(3) pattern. This directive can be used everywhere in the -; file. -; Relative path can also be used. They will be prefixed by: -; - the global prefix if it's been set (-p argument) -; - /usr otherwise -include=/etc/php/7.4/fpm/pool.d/*.conf - -; Clear environment in FPM workers. Prevents arbitrary environment variables from -; reaching FPM worker processes by clearing the environment in workers before env -; vars specified in this pool configuration are added. -clear_env=false From 3ce22870208cfbb3a10f8b93c0ce537d2095bc3e Mon Sep 17 00:00:00 2001 From: Chris Fidao Date: Thu, 15 Oct 2020 09:22:25 -0500 Subject: [PATCH 09/11] don't bother with offical nginx repo, ubuntu 20.04 nginx is new enough. This way we don't need to change nginx configuration setup away from regular ubuntu standard --- docker-files/docker/app/Dockerfile | 3 --- 1 file changed, 3 deletions(-) diff --git a/docker-files/docker/app/Dockerfile b/docker-files/docker/app/Dockerfile index e314ea8..1cac338 100644 --- a/docker-files/docker/app/Dockerfile +++ b/docker-files/docker/app/Dockerfile @@ -18,9 +18,6 @@ RUN apt-get update \ && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C \ && \ && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ - && echo "deb http://nginx.org/packages/ubuntu focal nginx" | tee /etc/apt/sources.list.d/nginx.list \ - && curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add - \ - && apt-key fingerprint ABF5BD827BD9BF62 \ && apt-get update \ && apt-get install -y nginx php7.4-fpm php7.4-cli \ php7.4-pgsql php7.4-sqlite3 php7.4-gd \ From 717c4bf9d790a543ab946760f7ff39ca0c286ca0 Mon Sep 17 00:00:00 2001 From: Chris Fidao Date: Thu, 15 Oct 2020 09:24:52 -0500 Subject: [PATCH 10/11] syntax error --- docker-files/docker/app/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-files/docker/app/Dockerfile b/docker-files/docker/app/Dockerfile index 1cac338..1de97bf 100644 --- a/docker-files/docker/app/Dockerfile +++ b/docker-files/docker/app/Dockerfile @@ -16,7 +16,6 @@ RUN apt-get update \ && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C \ && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C \ - && \ && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ && apt-get update \ && apt-get install -y nginx php7.4-fpm php7.4-cli \ From 6da21e784e34a6026ae3ec5e73d292133e736dec Mon Sep 17 00:00:00 2001 From: Chris Fidao Date: Thu, 15 Oct 2020 09:25:28 -0500 Subject: [PATCH 11/11] dir already exists --- docker-files/docker/app/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-files/docker/app/Dockerfile b/docker-files/docker/app/Dockerfile index 1de97bf..8e36838 100644 --- a/docker-files/docker/app/Dockerfile +++ b/docker-files/docker/app/Dockerfile @@ -27,7 +27,6 @@ RUN apt-get update \ php7.4-msgpack php7.4-igbinary php7.4-ldap \ php-redis \ && php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \ - && mkdir /run/php \ && apt-get -y autoremove \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \