├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── app ├── beanstalkd │ └── 1.10 │ │ ├── Dockerfile │ │ └── configs │ │ └── etc │ │ └── supervisor │ │ └── conf.d │ │ └── beanstalkd.conf └── ubuntu-16.04 │ └── php-7.2 │ ├── Dockerfile │ ├── README.md │ ├── configs │ └── etc │ │ ├── dpkg │ │ └── dpkg.cfg.d │ │ │ └── 01_nodoc │ │ ├── logrotate.d │ │ ├── nginx │ │ └── php7.2-fpm │ │ ├── nginx │ │ ├── directives │ │ │ ├── cache.conf │ │ │ ├── cross-domain-insecure.conf │ │ │ ├── extra-security.conf │ │ │ ├── real-ip.conf │ │ │ └── resolver.conf │ │ ├── fastcgi_params │ │ ├── locations │ │ │ ├── nginx-status.conf │ │ │ ├── php-fpm-status.conf │ │ │ ├── protect-system-files.conf │ │ │ └── silent-access.conf │ │ ├── nginx.conf │ │ └── sites-enabled │ │ │ └── default │ │ ├── php │ │ └── 7.2 │ │ │ ├── fpm │ │ │ ├── php-fpm.conf │ │ │ ├── php.ini │ │ │ └── pool.d │ │ │ │ └── www.conf │ │ │ └── mods-available │ │ │ └── xdebug.ini │ │ └── supervisor │ │ └── conf.d │ │ ├── nginx.conf │ │ └── php-fpm.conf │ ├── entrypoint.d │ ├── 00-pinba-setup.sh │ ├── 01-nginx-setup.sh │ └── 01-xdebug-setup.sh │ ├── entrypoint.sh │ └── installers │ ├── nginx.sh │ ├── openssl.sh │ ├── pinba.sh │ ├── zephir-parser.sh │ └── zephir.sh ├── base ├── alpine-3 │ ├── Dockerfile │ └── configs │ │ └── etc │ │ └── supervisor │ │ ├── conf.d │ │ └── cron.conf │ │ └── supervisord.conf └── ubuntu-16.04 │ ├── Dockerfile │ └── configs │ └── etc │ └── supervisor │ ├── conf.d │ └── cron.conf │ └── supervisord.conf ├── bootstrap ├── alpine-3 │ └── Dockerfile ├── centos-7 │ ├── Dockerfile │ └── Makefile ├── debian-10 │ └── Dockerfile ├── debian-11 │ └── Dockerfile ├── debian-9 │ └── Dockerfile ├── ubuntu-12.04 │ └── Dockerfile ├── ubuntu-14.04 │ └── Dockerfile ├── ubuntu-16.04 │ └── Dockerfile ├── ubuntu-18.04 │ └── Dockerfile ├── ubuntu-20.04 │ └── Dockerfile └── ubuntu-20.10 │ └── Dockerfile └── build ├── README.md ├── alpine-3.4 ├── Dockerfile └── Makefile ├── centos7-ius55 ├── Dockerfile └── Makefile ├── centos7-ius56 ├── Dockerfile └── Makefile ├── centos7-ius70 └── Dockerfile ├── centos7-ius71 └── Dockerfile ├── centos7-ius72 └── Dockerfile ├── centos7-ius73 └── Dockerfile ├── centos7-ius74 └── Dockerfile ├── centos7 └── Dockerfile ├── debian-bullseye-7.4 └── Dockerfile ├── debian-bullseye └── Dockerfile ├── debian-buster-7.3 └── Dockerfile ├── debian-buster-7.4 └── Dockerfile ├── debian-buster └── Dockerfile ├── debian-stretch-7.1 └── Dockerfile ├── debian-stretch-7.2 └── Dockerfile ├── debian-stretch-7.3 └── Dockerfile ├── debian-stretch-7.4 └── Dockerfile ├── debian-stretch └── Dockerfile ├── ubuntu-bionic-7.1 └── Dockerfile ├── ubuntu-bionic-7.2 └── Dockerfile ├── ubuntu-bionic-7.3 └── Dockerfile ├── ubuntu-bionic-7.4 └── Dockerfile ├── ubuntu-bionic └── Dockerfile ├── ubuntu-focal-7.2 └── Dockerfile ├── ubuntu-focal-7.3 └── Dockerfile ├── ubuntu-focal-7.4 └── Dockerfile ├── ubuntu-focal-8.0 └── Dockerfile ├── ubuntu-focal └── Dockerfile ├── ubuntu-groovy-7.3 └── Dockerfile ├── ubuntu-groovy-7.4 └── Dockerfile ├── ubuntu-groovy └── Dockerfile ├── ubuntu-trusty-7.0 └── Dockerfile ├── ubuntu-trusty-7.1 └── Dockerfile ├── ubuntu-trusty-7.2 └── Dockerfile ├── ubuntu-trusty-7.3 └── Dockerfile ├── ubuntu-trusty ├── Dockerfile └── provision.d │ └── usr │ └── sbin │ └── policy-rc.d ├── ubuntu-xenial-7.1 └── Dockerfile ├── ubuntu-xenial-7.2 └── Dockerfile ├── ubuntu-xenial-7.3 └── Dockerfile ├── ubuntu-xenial-7.4 └── Dockerfile └── ubuntu-xenial └── Dockerfile /.gitignore: -------------------------------------------------------------------------------- 1 | # Please do not use this ignore file to define platform specific files. 2 | # 3 | # For these purposes create a global .gitignore file, which is a list of rules 4 | # for ignoring files in every Git repository on your computer. 5 | # 6 | # https://help.github.com/articles/ignoring-files/#create-a-global-gitignore 7 | 8 | *.log 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | MIT License 3 | 4 | Copyright (c) 2016-2016 Phalcon Team 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | ARGS = $(filter-out $@,$(MAKECMDGOALS)) 2 | MAKEFLAGS += --silent 3 | 4 | .PHONY: build 5 | build: build-ubuntu build-centos build-alpine 6 | 7 | .PHONY: release 8 | release: release-ubuntu release-centos release-alpine 9 | 10 | .PHONY: build-ubuntu 11 | build-ubuntu: build-bootstraps-ubuntu build-builders-ubuntu 12 | 13 | .PHONY: release-ubuntu 14 | release-ubuntu: release-bootstraps-ubuntu release-builders-ubuntu 15 | 16 | .PHONY: build-centos 17 | build-centos: build-bootstraps-centos build-builders-centos 18 | 19 | .PHONY: release-centos 20 | release-centos: release-bootstraps-centos release-builders-centos 21 | 22 | .PHONY: build-alpine 23 | build-alpine: build-bootstraps-alpine build-builders-alpine 24 | 25 | .PHONY: release-alpine 26 | release-alpine: release-bootstraps-alpine release-builders-alpine 27 | 28 | .PHONY: build-builders 29 | build-builders: build-builders-ubuntu build-builders-centos build-builders-alpine 30 | 31 | .PHONY: release-builders 32 | release-builders: release-builders-ubuntu release-builders-centos release-builders-alpine 33 | 34 | .PHONY: build-bootstraps 35 | build-bootstraps: build-bootstraps-ubuntu build-bootstraps-centos build-bootstraps-alpine 36 | 37 | .PHONY: release-bootstraps 38 | release-bootstraps: release-bootstraps-ubuntu release-bootstraps-centos release-bootstraps-alpine 39 | 40 | .PHONY: build-builders-ubuntu 41 | build-builders-ubuntu: 42 | cd build/ubuntu-trusty && $(MAKE) build 43 | cd build/ubuntu-trusty-7.0 && $(MAKE) build 44 | cd build/ubuntu-trusty-7.1 && $(MAKE) build 45 | cd build/ubuntu-trusty-7.2 && $(MAKE) build 46 | cd build/ubuntu-xenial && $(MAKE) build 47 | cd build/ubuntu-xenial-7.1 && $(MAKE) build 48 | cd build/ubuntu-xenial-7.2 && $(MAKE) build 49 | cd build/ubuntu-bionic && $(MAKE) build 50 | cd build/ubuntu-bionic-7.1 && $(MAKE) build 51 | cd build/ubuntu-bionic-7.2 && $(MAKE) build 52 | 53 | .PHONY: release-builders-ubuntu 54 | release-builders-ubuntu: 55 | cd build/ubuntu-trusty && $(MAKE) release 56 | cd build/ubuntu-trusty-7.0 && $(MAKE) release 57 | cd build/ubuntu-trusty-7.1 && $(MAKE) release 58 | cd build/ubuntu-trusty-7.2 && $(MAKE) release 59 | cd build/ubuntu-xenial && $(MAKE) release 60 | cd build/ubuntu-xenial-7.1 && $(MAKE) release 61 | cd build/ubuntu-xenial-7.2 && $(MAKE) release 62 | cd build/ubuntu-bionic && $(MAKE) release 63 | cd build/ubuntu-bionic-7.1 && $(MAKE) release 64 | cd build/ubuntu-bionic-7.2 && $(MAKE) release 65 | 66 | .PHONY: build-builders-centos 67 | build-builders-centos: 68 | cd build/centos7 && $(MAKE) build 69 | cd build/centos7-ius55 && $(MAKE) build 70 | cd build/centos7-ius56 && $(MAKE) build 71 | cd build/centos7-ius70 && $(MAKE) build 72 | cd build/centos7-ius71 && $(MAKE) build 73 | cd build/centos7-ius72 && $(MAKE) build 74 | 75 | .PHONY: release-builders-centos 76 | release-builders-centos: 77 | cd build/centos7 && $(MAKE) release 78 | cd build/centos7-ius55 && $(MAKE) release 79 | cd build/centos7-ius56 && $(MAKE) release 80 | cd build/centos7-ius70 && $(MAKE) release 81 | cd build/centos7-ius71 && $(MAKE) release 82 | cd build/centos7-ius72 && $(MAKE) release 83 | 84 | .PHONY: build-bootstraps-ubuntu 85 | build-bootstraps-ubuntu: 86 | cd bootstrap/ubuntu-12.04 && $(MAKE) build 87 | cd bootstrap/ubuntu-14.04 && $(MAKE) build 88 | cd bootstrap/ubuntu-16.04 && $(MAKE) build 89 | cd bootstrap/ubuntu-18.04 && $(MAKE) build 90 | 91 | .PHONY: release-bootstraps-ubuntu 92 | release-bootstraps-ubuntu: 93 | cd bootstrap/ubuntu-12.04 && $(MAKE) release 94 | cd bootstrap/ubuntu-14.04 && $(MAKE) release 95 | cd bootstrap/ubuntu-16.04 && $(MAKE) release 96 | cd bootstrap/ubuntu-18.04 && $(MAKE) release 97 | 98 | .PHONY: build-bootstraps-centos 99 | build-bootstraps-centos: 100 | cd bootstrap/centos-7 && $(MAKE) build 101 | 102 | .PHONY: release-bootstraps-centos 103 | release-bootstraps-centos: 104 | cd bootstrap/centos-7 && $(MAKE) release 105 | 106 | .PHONY: build-builders-alpine 107 | build-builders-alpine: 108 | cd build/alpine-3.4 && $(MAKE) build 109 | 110 | .PHONY: release-builders-alpine 111 | release-builders-alpine: 112 | cd build/alpine-3.4 && $(MAKE) release 113 | 114 | .PHONY: build-bootstraps-alpine 115 | build-bootstraps-alpine: 116 | cd bootstrap/alpine-3.4 && $(MAKE) build 117 | 118 | .PHONY: release-bootstraps-alpine 119 | release-bootstraps-alpine: 120 | cd bootstrap/alpine-3.4 && $(MAKE) release 121 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Phalcon Dockerfiles 2 | 3 | Dockerfiles located in this repository entirely used for internal purposes. 4 | We would like to leave in this repository only those Dockerfiles that we need to build `deb` and `rmp` packages. 5 | 6 | During some time no longer supported Docker images will be available at the [Docker Hub](https://hub.docker.com/r/phalconphp/). 7 | The source code of old Docker images is located at [`legacy`](https://github.com/phalcon/dockerfiles/tree/legacy) branch. 8 | 9 | ## License 10 | 11 | Phalcon Dockerfiles is open-sourced software licensed under the MIT License. 12 | See the [LICENSE](https://github.com/phalcon/dockerfiles/blob/master/LICENSE) file for more information. 13 | -------------------------------------------------------------------------------- /app/beanstalkd/1.10/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/base:alpine-3 2 | 3 | LABEL description="Minimal beanstalkd image based on Alpine Linux" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.beanstalkd-1.10" 7 | 8 | ENV BEANSTALKD_VERSION="1.10" \ 9 | BEANSTALKD_PORT="11300" \ 10 | BEANSTALKD_JOB_SIZE="65536" \ 11 | BEANSTALKD_LIB="/var/lib/beanstalkd" 12 | 13 | RUN apk update \ 14 | && apk upgrade --force \ 15 | && apk add --no-cache --virtual .build-deps \ 16 | gcc \ 17 | make \ 18 | musl-dev \ 19 | && cd /tmp \ 20 | && wget --quiet -O "beanstalkd-${BEANSTALKD_VERSION}.tar.gz" \ 21 | "https://github.com/kr/beanstalkd/archive/v${BEANSTALKD_VERSION}.tar.gz" \ 22 | && tar -xzf "beanstalkd-${BEANSTALKD_VERSION}.tar.gz" \ 23 | && cd "beanstalkd-${BEANSTALKD_VERSION}" \ 24 | && sed -i "s|#include |#include |g" sd-daemon.c \ 25 | && make || return 1 \ 26 | && make PREFIX=/usr install \ 27 | && mkdir -p $BEANSTALKD_LIB \ 28 | && beanstalkd -v 29 | 30 | # cleanup 31 | RUN apk del .build-deps \ 32 | && rm -rf /tmp/* /var/cache/apk/* \ 33 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 34 | 35 | COPY ./configs / 36 | 37 | EXPOSE $BEANSTALKD_PORT 38 | 39 | VOLUME [$BEANSTALKD_LIB] 40 | -------------------------------------------------------------------------------- /app/beanstalkd/1.10/configs/etc/supervisor/conf.d/beanstalkd.conf: -------------------------------------------------------------------------------- 1 | [group:system] 2 | programs = beanstalkd 3 | priority = 20 4 | 5 | [program:beanstalkd] 6 | command = beanstalkd -p %(ENV_BEANSTALKD_PORT)s -z %(ENV_BEANSTALKD_JOB_SIZE)s -b %(ENV_BEANSTALKD_LIB)s 7 | process_name = %(program_name)s 8 | startsecs = 0 9 | autostart = true 10 | autorestart = true 11 | stdout_logfile = /dev/stdout 12 | stdout_logfile_maxbytes = 0 13 | stderr_logfile = /dev/stderr 14 | stderr_logfile_maxbytes = 0 -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/Dockerfile: -------------------------------------------------------------------------------- 1 | # Build image 2 | FROM ubuntu:16.04 AS build-env 3 | 4 | # install base packages, supervisor, cron, logrotate 5 | RUN apt-get -y update \ 6 | && apt-get install --no-install-recommends -yq \ 7 | autoconf \ 8 | build-essential \ 9 | gcc \ 10 | git \ 11 | libjansson-dev \ 12 | make \ 13 | openssl \ 14 | software-properties-common \ 15 | unzip \ 16 | wget \ 17 | zlib1g-dev 18 | 19 | ENV DEBIAN_FRONTEND=noninteractive \ 20 | ZEPHIR_VERSION=0.11.12 \ 21 | ZEPHIR_PARSER_VERSION=v1.3.1 \ 22 | NGINX_VERSION=1.16.0 \ 23 | NGINX_USER=www-data \ 24 | NGINX_CONF_PATH=/etc/nginx \ 25 | NGINX_LOG_PATH=/var/log/nginx \ 26 | NGINX_BUILD=Ubuntu \ 27 | PCRE_VERSION=8.43 \ 28 | PCRE_PATH=/var/lib/pcre \ 29 | OPENSSL_VERSION=openssl-1.0.2o 30 | 31 | RUN LC_ALL=C.UTF-8 apt-add-repository -y ppa:ondrej/php \ 32 | && apt-get update -y 33 | 34 | # PHP 7.2 with dependencies 35 | RUN apt-get \ 36 | -o Dpkg::Options::="--force-confdef" \ 37 | -o Dpkg::Options::="--force-confold" \ 38 | install -y -f --no-install-recommends \ 39 | jq \ 40 | libc6-dev \ 41 | libexpat-dev \ 42 | libgeoip-dev \ 43 | libpcre3-dev \ 44 | libssh2-1-dev \ 45 | libssl-dev \ 46 | libxslt1-dev \ 47 | libyaml-dev \ 48 | lsb-release \ 49 | php7.2-cli \ 50 | php7.2-common \ 51 | php7.2-dev \ 52 | php7.2-xml \ 53 | re2c 54 | 55 | # Nginx dependencies 56 | RUN apt-get \ 57 | -o Dpkg::Options::="--force-confdef" \ 58 | -o Dpkg::Options::="--force-confold" \ 59 | install -y -f --no-install-recommends \ 60 | libexpat-dev \ 61 | libmaxminddb-dev \ 62 | mmdb-bin \ 63 | libmaxminddb0 64 | 65 | # Turn the detached message off 66 | RUN git config --global advice.detachedHead false 67 | 68 | COPY ./installers /installers 69 | 70 | # Build custom extensions and move it to /artifacts folder 71 | RUN mkdir /artifacts \ 72 | && bash /installers/zephir-parser.sh \ 73 | && bash /installers/zephir.sh \ 74 | && bash /installers/pinba.sh 75 | 76 | # Update openssl from openssl 1.0.2g to 1.0.2o 77 | RUN bash /installers/openssl.sh 78 | 79 | # configure NGINX from source 80 | RUN bash /installers/nginx.sh 81 | COPY ./configs/etc/nginx/nginx.conf /etc/nginx/nginx.conf 82 | 83 | # Application image 84 | FROM phalconphp/base:ubuntu-16.04 85 | 86 | LABEL description="Application image to use for production with PHP and Nginx" \ 87 | maintainer="Serghei Iakovlev " \ 88 | vendor=Phalcon \ 89 | name="com.phalconphp.images.ubuntu-16.04.php-7.2" 90 | 91 | ARG GITHUB_TOKEN 92 | ARG GITHUB_USER 93 | ARG PINBA_SERVER 94 | 95 | ENV DEBIAN_FRONTEND=noninteractive \ 96 | FPM_MAX_CHILDREN=32 \ 97 | FPM_START_SERVERS=6 \ 98 | FPM_MIN_SPARE_SERVERS=2 \ 99 | FPM_MAX_SPARE_SERVERS=8 \ 100 | FPM_PROCESS_IDLE_TIMEOUT=5 \ 101 | FPM_MAX_REQUEST=1024 \ 102 | PATH=/root/composer/vendor/bin:$PATH \ 103 | COMPOSER_HOME=/root/composer \ 104 | COMPOSER_ALLOW_SUPERUSER=1 \ 105 | PCRE_PATH=/var/lib/pcre \ 106 | PINBA_SERVER=${PINBA_SERVER:-} \ 107 | GITHUB_USER=${GITHUB_USER:-} \ 108 | GITHUB_TOKEN=${GITHUB_TOKEN:-} 109 | 110 | # TODO: HEALTHCHECK 111 | 112 | COPY ./configs/etc/dpkg/dpkg.cfg.d/ /etc/dpkg/dpkg.cfg.d/ 113 | 114 | RUN LC_ALL=C.UTF-8 apt-add-repository -y ppa:ondrej/php 115 | 116 | # Install php 7.2 with libs and other software 117 | RUN apt-get update -y \ 118 | && apt-get \ 119 | -o Dpkg::Options::="--force-confdef" \ 120 | -o Dpkg::Options::="--force-confold" \ 121 | install -y -f --no-install-recommends \ 122 | dnsutils \ 123 | iproute2 \ 124 | libc6-dev \ 125 | libgeoip-dev \ 126 | libpcre3-dev \ 127 | libssh2-1-dev \ 128 | libssl-dev \ 129 | libyaml-dev \ 130 | lsb-release \ 131 | php-amqp \ 132 | php-apcu-bc \ 133 | php-igbinary \ 134 | php-memcache \ 135 | php-pear \ 136 | php-sodium \ 137 | php-ssh2 \ 138 | php-xdebug \ 139 | php-yaml \ 140 | php7.2-bcmath \ 141 | php7.2-cgi \ 142 | php7.2-cli \ 143 | php7.2-common \ 144 | php7.2-curl \ 145 | php7.2-dba \ 146 | php7.2-dev \ 147 | php7.2-fpm \ 148 | php7.2-gd \ 149 | php7.2-gmp \ 150 | php7.2-imagick \ 151 | php7.2-imap \ 152 | php7.2-intl \ 153 | php7.2-json \ 154 | php7.2-mbstring \ 155 | php7.2-memcached \ 156 | php7.2-mongodb \ 157 | php7.2-msgpack \ 158 | php7.2-mysql \ 159 | php7.2-odbc \ 160 | php7.2-opcache \ 161 | php7.2-pgsql \ 162 | php7.2-phalcon \ 163 | php7.2-pspell \ 164 | php7.2-recode \ 165 | php7.2-redis \ 166 | php7.2-soap \ 167 | php7.2-tidy \ 168 | php7.2-xml \ 169 | php7.2-zip \ 170 | software-properties-common \ 171 | swig \ 172 | tmpreaper \ 173 | unzip \ 174 | wget 175 | 176 | # Create required directories 177 | RUN mkdir -p \ 178 | /app \ 179 | /tmp/xdebug-{profile,outpt} \ 180 | /run/php \ 181 | /var/log/php \ 182 | /var/lib/nginx/{cache,proxy} \ 183 | $COMPOSER_HOME 184 | 185 | COPY --from=build-env /artifacts/ / 186 | COPY ./configs/etc/php/7.2/ /etc/php/7.2/ 187 | 188 | RUN wget -qO- https://getcomposer.org/installer | \ 189 | php -- --install-dir=/usr/local/bin --filename=composer \ 190 | && chmod +x /usr/local/bin/composer 191 | 192 | # Disable following modules by default 193 | RUN phpdismod -v 7.2 apcu_bc \ 194 | && phpdismod -v 7.2 apcu \ 195 | && phpdismod -v 7.2 mongodb \ 196 | && phpdismod -v 7.2 pinba \ 197 | && phpdismod -v 7.2 xdebug 198 | 199 | # Nginx with GeoIP setup 200 | RUN apt-get install -y \ 201 | libjansson-dev \ 202 | libmaxminddb0 \ 203 | mmdb-bin \ 204 | nginx \ 205 | openssl \ 206 | zlib1g-dev 207 | 208 | RUN mkdir -p /usr/share/GeoIP \ 209 | && wget -qO - \ 210 | http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz \ 211 | | gunzip -c > /usr/share/GeoIP/maxmind-city.mmdb \ 212 | && wget -qO - \ 213 | http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz \ 214 | | gunzip -c > /usr/share/GeoIP/maxmind-country.mmdb 215 | 216 | COPY --from=build-env $PCRE_PATH $PCRE_PATH 217 | COPY --from=build-env /usr/sbin/nginx /usr/sbin/nginx 218 | COPY ./configs/etc/nginx/ /etc/nginx/ 219 | 220 | # Supervisor && logrotate 221 | COPY ./configs/etc/supervisor/ /etc/supervisor/ 222 | COPY ./configs/etc/logrotate.d/ /etc/logrotate.d/ 223 | 224 | # Startup scripts 225 | COPY ./entrypoint.sh /entrypoint.sh 226 | COPY ./entrypoint.d /entrypoint.d 227 | 228 | # Final check and preparing entrypoint 229 | RUN echo \ 230 | && nginx -v \ 231 | && php --version | head -n 1 \ 232 | && composer --version --no-ansi \ 233 | && zephir --version \ 234 | && php -r 'echo "Phalcon " . \Phalcon\Version::get() . "\n";' \ 235 | && echo -n "Zephir Parser " && php \ 236 | -d extension=`php-config --extension-dir`/zephir_parser.so \ 237 | --ri "Zephir Parser" | grep Version | awk '{print $3}' \ 238 | && echo \ 239 | && chmod +x /entrypoint.sh 240 | 241 | # Cleanup 242 | RUN apt-get autoremove -y \ 243 | && apt-get clean -y \ 244 | && rm -rf /tmp/* /var/tmp/* \ 245 | && rm -rf /usr/share/doc/* \ 246 | && rm -rf /usr/share/man/* \ 247 | && rm -rf /usr/share/locale/* \ 248 | && rm -f /var/log/php7.2-fpm.log \ 249 | && find /var/cache/apt/archives /var/lib/apt/lists \ 250 | -not -name lock \ 251 | -type f \ 252 | -delete \ 253 | && find /var/cache -type f -not -name lock -delete \ 254 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 255 | 256 | VOLUME /app \ 257 | /var/log/nginx \ 258 | /var/log/php \ 259 | /tmp/xdebug-profile \ 260 | /tmp/xdebug-outupt \ 261 | /var/lib/nginx/cache \ 262 | /var/lib/nginx/proxy 263 | 264 | WORKDIR /app 265 | ENTRYPOINT ["/entrypoint.sh"] 266 | 267 | # Local Variables: 268 | # tab-width: 4 269 | # End: 270 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/README.md: -------------------------------------------------------------------------------- 1 | # `phalconphp/ubuntu-16.04:php-7.2` 2 | 3 | Application image to use for production with PHP and Nginx. 4 | 5 | ## Usage 6 | 7 | Run the following command to get the Application Docker image: 8 | 9 | ``` sh 10 | $ docker pull phalconphp/ubuntu-16.04:php-7.2 11 | ``` 12 | 13 | ### Simple run 14 | 15 | ``` sh 16 | $ docker run --name app -p 8081:80 phalconphp/ubuntu-16.04:php-7.2 17 | ``` 18 | 19 | Of course to run container in background you'll need to use `-d` option, 20 | the `--name` and `-p` options are optional: 21 | 22 | ``` sh 23 | $ docker run -d phalconphp/ubuntu-16.04:php-7.2 24 | ``` 25 | 26 | For more see: `docker run --help`. 27 | 28 | ### PHP application example 29 | 30 | ``` sh 31 | # Host system 32 | $ tree 33 | . 34 | ├── docker 35 | │   └── nginx.conf 36 | └── public 37 | └── index.php 38 | 39 | 2 directories, 2 files 40 | ``` 41 | 42 | ``` php 43 | " \ 127 | vendor=Acme \ 128 | name="com.acme.images.apps.example" 129 | 130 | # "/app" is a working directory as it set in parent image. We copy all files 131 | # inside current working dir. This approach implies that we don't use the 132 | # current container to install PHP dependencies using composer and build any 133 | # project related stuff. Any required project dependencies should be obtained 134 | # on host system or via special build images. We're use this image as a real 135 | # container for the application, not as a build system. 136 | COPY . /app 137 | 138 | # However, composer is here, and you can always use it if this is your strategy 139 | # to build application image. 140 | RUN composer --version 141 | 142 | # Copy virtual host, custom PHP configuration and disable default site 143 | RUN rm -f /etc/nginx/sites-enabled/default \ 144 | && cp -R /app/docker/config/nginx/* /etc/nginx/ \ 145 | && ln -s /app/docker/config/php/app.ini /etc/php/7.2/cli/conf.d/100-app.ini \ 146 | && ln -s /app/docker/config/php/app.ini /etc/php/7.2/fpm/conf.d/100-app.ini 147 | 148 | # Run custom script after build, e.g cleaning up, custom settings, disabling 149 | # redundant modules, etc 150 | RUN bash /app/docker/provision/after-build.sh 151 | 152 | # Expose required ports 153 | EXPOSE 80 443 154 | 155 | # Amend parent volumes 156 | VOLUME /app/storage/logs 157 | ``` 158 | 159 | ``` sh 160 | # build it 161 | docker build --pull -t acme/example-app:2.0.0 . 162 | 163 | # we may want to create alias for version "2.0.0"" 164 | docker tag acme/example-app:2.0.0 acme/example-app:latest 165 | ``` 166 | 167 | ``` sh 168 | # run it 169 | docker run -d -p 80:80 acme/example-app:2.0.0 170 | 171 | # or, if we want just "latest" 172 | docker run -d -p 80:80 acme/example-app 173 | ``` 174 | 175 | ### Xdebug 176 | 177 | Xdebug is disabled by default. To enable it you'll need pass 178 | `XDEBUG_REMOTE_ENABLE` and/or `XDEBUG_REMOTE_HOST` environment variables. 179 | 180 | | Variable | Description | 181 | | -------------------------------- | ----------------------------------------- | 182 | | `XDEBUG_REMOTE_ENABLE=1` | This will enable Xdebug. | 183 | | `XDEBUG_REMOTE_AUTO_START=1` | Enable autostart will catch all requests. | 184 | | `XDEBUG_REMOTE_HOST=192.168.0.1` | Xdebug remote host. | 185 | | `XDEBUG_REMOTE_PORT=9000` | Will setup remote host. | 186 | 187 | If you want to start debug session manually pass variable `XDEBUG_SESSION_START` 188 | via `GET`, `POST` or `COOKIE`. Note: To use this feature you'll need set 189 | `XDEBUG_REMOTE_HOST`. 190 | 191 | ## Build 192 | 193 | To build image from the source just use command as follows: 194 | 195 | ``` sh 196 | $ build --pull -t phalconphp/ubuntu-16.04:php-7.2 . 197 | ``` 198 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/dpkg/dpkg.cfg.d/01_nodoc: -------------------------------------------------------------------------------- 1 | # Delete locales 2 | path-exclude=/usr/share/locale/* 3 | 4 | # Delete man pages 5 | path-exclude=/usr/share/man/* 6 | 7 | # Delete docs 8 | path-exclude=/usr/share/doc/* 9 | path-include=/usr/share/doc/*/copyright -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/logrotate.d/nginx: -------------------------------------------------------------------------------- 1 | /var/log/nginx/*.log 2 | /var/log/nginx/*.json { 3 | daily 4 | missingok 5 | rotate 7 6 | compress 7 | delaycompress 8 | notifempty 9 | create 0640 www-data adm 10 | sharedscripts 11 | prerotate 12 | if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ 13 | run-parts /etc/logrotate.d/httpd-prerotate; \ 14 | fi \ 15 | endscript 16 | postrotate 17 | # rotete nginx log if run under service 18 | # invoke-rc.d nginx rotate >/dev/null 2>&1 19 | # rotate nginx log if run under supervisor 20 | /bin/kill -USR1 $(/usr/bin/supervisorctl pid nginx:nginxd) 21 | endscript 22 | } 23 | 24 | # Local Variables: 25 | # mode: conf 26 | # End: 27 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/logrotate.d/php7.2-fpm: -------------------------------------------------------------------------------- 1 | /var/log/php/* { 2 | rotate 1 3 | daily 4 | missingok 5 | notifempty 6 | compress 7 | delaycompress 8 | postrotate 9 | /usr/lib/php/php7.2-fpm-reopenlogs 10 | endscript 11 | } 12 | 13 | # Local Variables: 14 | # mode: conf 15 | # End: 16 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/nginx/directives/cache.conf: -------------------------------------------------------------------------------- 1 | # cache settings used in secure-file locations section 2 | proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=cache:64M inactive=60m max_size=5G; 3 | proxy_temp_path /var/lib/nginx/proxy 1 2; 4 | proxy_cache_use_stale error timeout invalid_header http_502; 5 | proxy_cache_bypass $cookie_session $http_x_update; 6 | proxy_no_cache $cookie_session; 7 | proxy_headers_hash_bucket_size 128; 8 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/nginx/directives/cross-domain-insecure.conf: -------------------------------------------------------------------------------- 1 | # Cross domain AJAX requests 2 | add_header 'Access-Control-Allow-Origin' '*'; 3 | add_header 'Access-Control-Allow-Headers' 'Range,Accept-Ranges,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Encoding'; 4 | 5 | add_header 'Access-Control-Expose-Headers' 'Range,Accept-Ranges,Content-Encoding,Content-Type,Content-Length,Content-Range'; 6 | 7 | if ($request_method = OPTIONS) { 8 | add_header 'Access-Control-Allow-Origin' '*'; 9 | add_header 'Access-Control-Allow-Methods' 'GET,OPTIONS'; 10 | add_header 'Access-Control-Allow-Credentials' "true"; 11 | add_header 'Access-Control-Allow-Headers' 'Range,Accept-Ranges,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Encoding'; 12 | add_header 'Access-Control-Expose-Headers' 'Range,Accept-Ranges,Content-Encoding,Content-Type,Content-Length,Content-Range'; 13 | add_header 'Content-Length' 0; 14 | add_header 'Content-Type' text/plain; 15 | 16 | return 200; 17 | } 18 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/nginx/directives/extra-security.conf: -------------------------------------------------------------------------------- 1 | # The X-Frame-Options header indicates whether a browser should be allowed 2 | # to render a page within a frame or iframe. 3 | add_header X-Frame-Options SAMEORIGIN always; 4 | 5 | # MIME type sniffing security protection 6 | # There are very few edge cases where you wouldn't want this enabled. 7 | add_header X-Content-Type-Options nosniff always; 8 | 9 | # The X-XSS-Protection header is used by Internet Explorer version 8+ 10 | # The header instructs IE to enable its inbuilt anti-cross-site scripting filter. 11 | add_header X-XSS-Protection "1; mode=block" always; 12 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/nginx/directives/real-ip.conf: -------------------------------------------------------------------------------- 1 | # ngx_http_realip_module configuration 2 | # 3 | # For more see: 4 | # https://nginx.org/en/docs/http/ngx_http_realip_module.html 5 | 6 | # Internal, local and ELB networks. 7 | set_real_ip_from 10.0.0.0/8; 8 | set_real_ip_from 192.168.0.0/24; 9 | set_real_ip_from 127.0.0.0/8; 10 | 11 | # Docker networks 12 | set_real_ip_from 172.16.0.0/12; 13 | set_real_ip_from 172.17.0.0/16; 14 | set_real_ip_from 172.18.0.0/16; 15 | set_real_ip_from 172.19.0.0/16; 16 | set_real_ip_from 172.20.0.0/16; 17 | set_real_ip_from 172.21.0.0/16; 18 | set_real_ip_from 172.22.0.0/16; 19 | 20 | # AWS CloudFront IP/CIDR range 21 | # 22 | # $ curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | \ 23 | # jq .prefixes | \ 24 | # jq '.[] | \ 25 | # select(.service=="CLOUDFRONT")' | \ 26 | # jq .ip_prefix 27 | # 28 | set_real_ip_from 13.124.199.0/24; 29 | set_real_ip_from 144.220.0.0/16; 30 | set_real_ip_from 34.226.14.0/24; 31 | set_real_ip_from 52.124.128.0/17; 32 | set_real_ip_from 54.230.0.0/16; 33 | set_real_ip_from 54.239.128.0/18; 34 | set_real_ip_from 52.82.128.0/19; 35 | set_real_ip_from 99.84.0.0/16; 36 | set_real_ip_from 52.15.127.128/26; 37 | set_real_ip_from 35.158.136.0/24; 38 | set_real_ip_from 52.57.254.0/24; 39 | set_real_ip_from 18.216.170.128/25; 40 | set_real_ip_from 13.54.63.128/26; 41 | set_real_ip_from 13.59.250.0/26; 42 | set_real_ip_from 13.210.67.128/26; 43 | set_real_ip_from 35.167.191.128/26; 44 | set_real_ip_from 52.47.139.0/24; 45 | set_real_ip_from 52.199.127.192/26; 46 | set_real_ip_from 52.212.248.0/26; 47 | set_real_ip_from 205.251.192.0/19; 48 | set_real_ip_from 52.66.194.128/26; 49 | set_real_ip_from 54.239.192.0/19; 50 | set_real_ip_from 70.132.0.0/18; 51 | set_real_ip_from 13.32.0.0/15; 52 | set_real_ip_from 13.224.0.0/14; 53 | set_real_ip_from 13.113.203.0/24; 54 | set_real_ip_from 34.195.252.0/24; 55 | set_real_ip_from 35.162.63.192/26; 56 | set_real_ip_from 34.223.12.224/27; 57 | set_real_ip_from 13.35.0.0/16; 58 | set_real_ip_from 204.246.172.0/23; 59 | set_real_ip_from 204.246.164.0/22; 60 | set_real_ip_from 52.56.127.0/25; 61 | set_real_ip_from 204.246.168.0/22; 62 | set_real_ip_from 13.228.69.0/24; 63 | set_real_ip_from 34.216.51.0/25; 64 | set_real_ip_from 71.152.0.0/17; 65 | set_real_ip_from 216.137.32.0/19; 66 | set_real_ip_from 205.251.249.0/24; 67 | set_real_ip_from 99.86.0.0/16; 68 | set_real_ip_from 52.46.0.0/18; 69 | set_real_ip_from 52.84.0.0/15; 70 | set_real_ip_from 54.233.255.128/26; 71 | set_real_ip_from 130.176.0.0/16; 72 | set_real_ip_from 64.252.64.0/18; 73 | set_real_ip_from 52.52.191.128/26; 74 | set_real_ip_from 204.246.174.0/23; 75 | set_real_ip_from 64.252.128.0/18; 76 | set_real_ip_from 205.251.254.0/24; 77 | set_real_ip_from 143.204.0.0/16; 78 | set_real_ip_from 205.251.252.0/23; 79 | set_real_ip_from 52.78.247.128/26; 80 | set_real_ip_from 204.246.176.0/20; 81 | set_real_ip_from 52.220.191.0/26; 82 | set_real_ip_from 13.249.0.0/16; 83 | set_real_ip_from 54.240.128.0/18; 84 | set_real_ip_from 205.251.250.0/23; 85 | set_real_ip_from 52.222.128.0/17; 86 | set_real_ip_from 54.182.0.0/16; 87 | set_real_ip_from 54.192.0.0/16; 88 | set_real_ip_from 34.232.163.208/29; 89 | 90 | real_ip_recursive on; 91 | real_ip_header X-Forwarded-For; 92 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/nginx/directives/resolver.conf: -------------------------------------------------------------------------------- 1 | resolver NGINX_RESOLVER valid=30s; 2 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/nginx/fastcgi_params: -------------------------------------------------------------------------------- 1 | fastcgi_param QUERY_STRING $query_string; 2 | fastcgi_param REQUEST_METHOD $request_method; 3 | fastcgi_param CONTENT_TYPE $content_type; 4 | fastcgi_param CONTENT_LENGTH $content_length; 5 | fastcgi_param SCRIPT_FILENAME $request_filename; 6 | fastcgi_param SCRIPT_NAME $fastcgi_script_name; 7 | fastcgi_param X_REQUEST_ID $x_request_id; 8 | fastcgi_param REQUEST_URI $request_uri; 9 | fastcgi_param DOCUMENT_URI $document_uri; 10 | fastcgi_param DOCUMENT_ROOT $document_root; 11 | fastcgi_param SERVER_PROTOCOL $server_protocol; 12 | fastcgi_param GATEWAY_INTERFACE CGI/1.1; 13 | fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 14 | fastcgi_param REMOTE_ADDR $remote_addr; 15 | fastcgi_param REMOTE_PORT $remote_port; 16 | fastcgi_param SERVER_ADDR $server_addr; 17 | fastcgi_param SERVER_PORT $server_port; 18 | fastcgi_param SERVER_NAME $server_name; 19 | fastcgi_param HTTPS $https if_not_empty; 20 | fastcgi_param HTTPS $fcgi_https if_not_empty; 21 | 22 | # PHP only, required if PHP was built with --enable-force-cgi-redirect 23 | fastcgi_param REDIRECT_STATUS 200; 24 | 25 | # PHP-FPM geoip variables 26 | fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code; 27 | fastcgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3; 28 | fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name; 29 | fastcgi_param GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code; 30 | fastcgi_param GEOIP_CITY_COUNTRY_CODE3 $geoip_city_country_code3; 31 | fastcgi_param GEOIP_CITY_COUNTRY_NAME $geoip_city_country_name; 32 | fastcgi_param GEOIP_REGION $geoip_region; 33 | fastcgi_param GEOIP_CITY $geoip_city; 34 | fastcgi_param GEOIP_POSTAL_CODE $geoip_postal_code; 35 | fastcgi_param GEOIP_CITY_CONTINENT_CODE $geoip_city_continent_code; 36 | fastcgi_param GEOIP_LATITUDE $geoip_latitude; 37 | fastcgi_param GEOIP_LONGITUDE $geoip_longitude; 38 | fastcgi_param GEOIP_DMA_CODE $geoip_dma_code; 39 | fastcgi_param GEOIP_AREA_CODE $geoip_area_code; 40 | 41 | # Local Variables: 42 | # mode: conf 43 | # End: 44 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/nginx/locations/nginx-status.conf: -------------------------------------------------------------------------------- 1 | location /nginx-status { 2 | # Internal, AWS and Docker networks 3 | allow 172.16.0.0/12; 4 | allow 10.0.0.0/8; 5 | allow 192.168.0.0/16; 6 | allow 100.64.0.0/10; 7 | allow 127.0.0.1; 8 | 9 | deny all; 10 | 11 | access_log off; 12 | log_subrequest off; 13 | log_not_found off; 14 | 15 | stub_status on; 16 | } 17 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/nginx/locations/php-fpm-status.conf: -------------------------------------------------------------------------------- 1 | location ~ ^/(fpmstatus|fpmping)$ { 2 | # Internal, AWS and Docker networks 3 | allow 172.16.0.0/12; 4 | allow 10.0.0.0/8; 5 | allow 192.168.0.0/16; 6 | allow 100.64.0.0/10; 7 | allow 127.0.0.1; 8 | 9 | deny all; 10 | 11 | access_log off; 12 | log_subrequest off; 13 | log_not_found off; 14 | 15 | include fastcgi_params; 16 | fastcgi_pass unix:/run/php/php7.2-fpm.sock; 17 | } 18 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/nginx/locations/protect-system-files.conf: -------------------------------------------------------------------------------- 1 | # Prevent clients from accessing hidden files (starting with a dot) 2 | # This is particularly important if you store .htpasswd files in the site hierarchy 3 | # Access to `/.well-known/` is allowed. 4 | # https://www.mnot.net/blog/2010/04/07/well-known 5 | # https://tools.ietf.org/html/rfc5785 6 | location ~* /\.(?!well-known\/) { 7 | deny all; 8 | } 9 | 10 | # Prevent clients from accessing to backup/config/source files 11 | location ~* (?:\.(?:bak|conf|dist|git|fla|in[ci]|log|psd|sh|sql|sw[op])|~)$ { 12 | deny all; 13 | } 14 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/nginx/locations/silent-access.conf: -------------------------------------------------------------------------------- 1 | # Disable logging for robots.txt 2 | location = /robots.txt { 3 | access_log off; 4 | log_subrequest off; 5 | log_not_found off; 6 | } 7 | 8 | # Disable logging for favicon.ico 9 | location = /favicon.ico { 10 | access_log off; 11 | log_subrequest off; 12 | log_not_found off; 13 | } 14 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/nginx/nginx.conf: -------------------------------------------------------------------------------- 1 | user root; 2 | worker_processes auto; 3 | daemon off; 4 | pid /run/nginx.pid; 5 | 6 | events { 7 | worker_connections 4096; 8 | multi_accept on; 9 | use epoll; 10 | } 11 | 12 | http { 13 | # sendfile off; 14 | tcp_nopush on; 15 | tcp_nodelay on; 16 | keepalive_timeout 30; 17 | types_hash_max_size 2048; 18 | 19 | variables_hash_max_size 1024; 20 | variables_hash_bucket_size 128; 21 | 22 | large_client_header_buffers 4 16k; 23 | 24 | server_tokens off; 25 | client_max_body_size 64M; 26 | 27 | include /etc/nginx/mime.types; 28 | default_type application/octet-stream; 29 | 30 | include directives/real-ip.conf; 31 | 32 | map $http_forwarded_request_id $x_request_id { 33 | "" $request_id; 34 | default $http_forwarded_request_id; 35 | } 36 | 37 | map $http_x_forwarded_proto $fcgi_https { 38 | default ""; 39 | https on; 40 | } 41 | 42 | map $http_x_forwarded_proto $real_scheme { 43 | default $scheme; 44 | https https; 45 | } 46 | 47 | # GeoIP setup 48 | geoip2 /usr/share/GeoIP/maxmind-country.mmdb { 49 | auto_reload 1d; 50 | $geoip2_metadata_country_build metadata build_epoch; 51 | $geoip2_data_country_code default=US source=$remote_addr country iso_code; 52 | $geoip2_data_country_name country names en; 53 | } 54 | 55 | geoip2 /usr/share/GeoIP/maxmind-city.mmdb { 56 | $geoip2_data_city_name default=London city names en; 57 | } 58 | 59 | # Compression Settings 60 | gzip_static on; 61 | gzip on; 62 | gzip_min_length 100; 63 | gzip_proxied any; 64 | gzip_comp_level 6; 65 | 66 | # The types that should gziped 67 | gzip_types text/plain; 68 | gzip_types text/css; 69 | gzip_types text/xml; 70 | gzip_types text/javascript; 71 | gzip_types image/svg+xml; 72 | gzip_types application/json; 73 | gzip_types application/x-javascript; 74 | gzip_types application/xml; 75 | gzip_types application/xml+rss; 76 | gzip_types application/javascript; 77 | gzip_disable "MSIE [1-6]\.(?!.*SV1)"; 78 | 79 | # Logging Settings 80 | map $http_user_agent:$http_x_forwarded_log $enable_log { 81 | default 1; 82 | ~ELB-HealthChecker 0; 83 | ~disable-upstream-access-log 0; 84 | } 85 | 86 | log_format log_json escape=json '{' 87 | '"time_iso8601":"$time_iso8601",' 88 | '"remote_addr":"$remote_addr",' 89 | '"http_x_real_ip":"$http_x_real_ip",' 90 | '"remote_user":"$remote_user",' 91 | '"body_bytes_sent":"$body_bytes_sent",' 92 | '"request_time":"$request_time",' 93 | '"upstream_response_time":"$upstream_response_time",' 94 | '"status":"$status",' 95 | '"request_uri":"$request_uri",' 96 | '"geoip_country_code":"$geoip_country_code",' 97 | '"geoip_country_name":"$geoip_country_name",' 98 | '"geoip_region":"$geoip_region",' 99 | '"geoip_city":"$geoip_city",' 100 | '"geoip_postal_code":"$geoip_postal_code",' 101 | '"geoip_city_continent_code":"$geoip_city_continent_code",' 102 | '"geoip_latitude":"$geoip_latitude",' 103 | '"geoip_longitude":"$geoip_longitude",' 104 | '"scheme":"$scheme",' 105 | '"server_name":"$server_name",' 106 | '"server_addr":"$server_addr",' 107 | '"request_method":"$request_method",' 108 | '"http_referrer":"$http_referrer",' 109 | '"http_user_agent":"$http_user_agent",' 110 | '"x_request_id":"$x_request_id"' 111 | '}'; 112 | 113 | access_log /var/log/nginx/access.json log_json if=$enable_log; 114 | error_log /var/log/nginx/error.log; 115 | 116 | # Virtual host configuration 117 | include /etc/nginx/conf.d/*.conf; 118 | include /etc/nginx/sites-enabled/*; 119 | } 120 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/nginx/sites-enabled/default: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80; 3 | 4 | root /var/www/html; 5 | index index.html index.htm index.nginx-debian.html; 6 | 7 | location / { 8 | try_files $uri $uri/ =404; 9 | } 10 | 11 | include /etc/nginx/locations/nginx-status.conf; 12 | include /etc/nginx/locations/protect-system-files.conf; 13 | include /etc/nginx/locations/silent-access.conf; 14 | } 15 | 16 | # Local Variables: 17 | # mode: nginx 18 | # End: 19 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/php/7.2/fpm/php-fpm.conf: -------------------------------------------------------------------------------- 1 | [global] 2 | pid = /run/php/php7.2-fpm.pid 3 | ; TODO: /dev/stderr 4 | error_log = /var/log/php/php_fpm_error.log 5 | 6 | include = /etc/php/7.2/fpm/pool.d/*.conf 7 | 8 | ; Local Variables: 9 | ; mode: ini 10 | ; End: 11 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/php/7.2/fpm/php.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | engine = On 3 | short_open_tag = Off 4 | asp_tags = Off 5 | precision = 14 6 | output_buffering = 4096 7 | zlib.output_compression = Off 8 | implicit_flush = Off 9 | unserialize_callback_func = 10 | serialize_precision = -1 11 | disable_classes = 12 | zend.enable_gc = On 13 | expose_php = Off 14 | max_execution_time = 30 15 | max_input_time = 60 16 | memory_limit = 128M 17 | error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT 18 | display_errors = Off 19 | display_startup_errors = Off 20 | log_errors = On 21 | log_errors_max_len = 1024 22 | ignore_repeated_errors = Off 23 | ignore_repeated_source = Off 24 | report_memleaks = On 25 | track_errors = Off 26 | html_errors = On 27 | variables_order = "GPCS" 28 | request_order = "GP" 29 | register_argc_argv = Off 30 | auto_globals_jit = On 31 | post_max_size = 64M 32 | auto_prepend_file = 33 | auto_append_file = 34 | default_mimetype = "text/html" 35 | default_charset = "UTF-8" 36 | doc_root = 37 | user_dir = 38 | enable_dl = Off 39 | file_uploads = On 40 | upload_max_filesize = 64M 41 | max_file_uploads = 20 42 | allow_url_fopen = On 43 | allow_url_include = Off 44 | default_socket_timeout = 60 45 | 46 | [CLI Server] 47 | cli_server.color = On 48 | 49 | [sqlite3] 50 | sqlite3.defensive = 1 51 | 52 | [Pdo_mysql] 53 | pdo_mysql.cache_size = 2000 54 | pdo_mysql.default_socket= 55 | 56 | [mail function] 57 | SMTP = localhost 58 | smtp_port = 25 59 | mail.add_x_header = On 60 | 61 | [SQL] 62 | sql.safe_mode = Off 63 | 64 | [ODBC] 65 | odbc.allow_persistent = On 66 | odbc.check_persistent = On 67 | odbc.max_persistent = -1 68 | odbc.max_links = -1 69 | odbc.defaultlrl = 4096 70 | odbc.defaultbinmode = 1 71 | 72 | [Interbase] 73 | ibase.allow_persistent = 1 74 | ibase.max_persistent = -1 75 | ibase.max_links = -1 76 | ibase.timestampformat = "%Y-%m-%d %H:%M:%S" 77 | ibase.dateformat = "%Y-%m-%d" 78 | ibase.timeformat = "%H:%M:%S" 79 | 80 | [MySQLi] 81 | mysqli.max_persistent = -1 82 | mysqli.allow_persistent = On 83 | mysqli.max_links = -1 84 | mysqli.cache_size = 2000 85 | mysqli.default_port = 3306 86 | mysqli.default_socket = 87 | mysqli.default_host = 88 | mysqli.default_user = 89 | mysqli.default_pw = 90 | mysqli.reconnect = Off 91 | 92 | [mysqlnd] 93 | mysqlnd.collect_statistics = On 94 | mysqlnd.collect_memory_statistics = Off 95 | 96 | [PostgreSQL] 97 | pgsql.allow_persistent = On 98 | pgsql.auto_reset_persistent = Off 99 | pgsql.max_persistent = -1 100 | pgsql.max_links = -1 101 | pgsql.ignore_notice = 0 102 | pgsql.log_notice = 0 103 | 104 | [bcmath] 105 | bcmath.scale = 0 106 | 107 | [Session] 108 | session.save_handler = files 109 | session.use_strict_mode = 0 110 | session.use_cookies = 1 111 | session.use_only_cookies = 1 112 | session.name = PHPSESSID 113 | session.auto_start = 0 114 | session.cookie_lifetime = 0 115 | session.cookie_path = / 116 | session.cookie_domain = 117 | session.cookie_httponly = 118 | session.serialize_handler = php 119 | session.gc_probability = 0 120 | session.gc_divisor = 1000 121 | session.gc_maxlifetime = 1440 122 | session.referer_check = 123 | session.cache_limiter = nocache 124 | session.cache_expire = 180 125 | session.use_trans_sid = 0 126 | session.sid_length = 26 127 | session.trans_sid_tags = "a=href,area=href,frame=src,form=" 128 | session.sid_bits_per_character = 5 129 | 130 | [Assertion] 131 | zend.assertions = -1 132 | 133 | [Tidy] 134 | tidy.clean_output = Off 135 | 136 | [soap] 137 | soap.wsdl_cache_enabled=1 138 | soap.wsdl_cache_dir="/tmp" 139 | soap.wsdl_cache_ttl=86400 140 | soap.wsdl_cache_limit = 5 141 | 142 | [ldap] 143 | ldap.max_links = -1 144 | 145 | 146 | [opcache] 147 | opcache.enable=1 148 | opcache.memory_consumption=256 149 | opcache.interned_strings_buffer=16 150 | opcache.max_accelerated_files=100000 151 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/php/7.2/fpm/pool.d/www.conf: -------------------------------------------------------------------------------- 1 | [www] 2 | user = root 3 | group = root 4 | 5 | listen = /run/php/php7.2-fpm.sock 6 | listen.owner = root 7 | listen.group = root 8 | 9 | pm = dynamic 10 | pm.max_children = 256 11 | pm.start_servers = 15 12 | pm.min_spare_servers = 5 13 | pm.max_spare_servers = 25 14 | pm.max_requests = 500 15 | 16 | pm.status_path = /fpmstatus 17 | ping.path = /fpmping 18 | 19 | request_slowlog_timeout = 5s 20 | request_terminate_timeout = 120s 21 | rlimit_files = 128000 22 | chdir = / 23 | catch_workers_output = yes 24 | php_flag[display_errors] = on 25 | 26 | php_admin_value[error_reporting] = E_ALL & ~E_STRICT & ~E_DEPRECATED & ~E_USER_WARNING & ~E_NOTICE 27 | php_admin_flag[log_errors] = on 28 | php_admin_value[memory_limit] = 512M 29 | php_value[short_open_tag] = on 30 | 31 | php_admin_value[error_log] = /dev/stderr 32 | slowlog = /dev/stderr 33 | access.log = /dev/stdout 34 | 35 | clear_env = no 36 | 37 | ; Local Variables: 38 | ; mode: ini 39 | ; End: 40 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/php/7.2/mods-available/xdebug.ini: -------------------------------------------------------------------------------- 1 | zend_extension=xdebug.so 2 | 3 | xdebug.remote_host = 127.0.0.1 4 | xdebug.remote_port = 9000 5 | xdebug.remote_enable = 0 6 | xdebug.remote_connect_back = 0 7 | xdebug.remote_autostart = 0 8 | xdebug.idekey = docker 9 | xdebug.cli_color = 1 10 | xdebug.max_nesting_level = 1000 11 | xdebug.profiler_enable_trigger = 1000 12 | xdebug.profiler_output_dir = /tmp/xdebug-profile 13 | xdebug.output_dir = /tmp/xdebug-outupt 14 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/supervisor/conf.d/nginx.conf: -------------------------------------------------------------------------------- 1 | [group:nginx] 2 | programs=nginxd 3 | priority=20 4 | 5 | [program:nginxd] 6 | command = /usr/sbin/nginx 7 | process_name = %(program_name)s 8 | numprocs = 1 9 | user = root 10 | startsecs = 0 11 | autostart = true 12 | autorestart = true 13 | exitcodes = 0 14 | stopsignal = TERM 15 | restartsignal = HUP 16 | reloadsignal = USR2 17 | stdout_events_enabled = false 18 | stdout_logfile_maxbytes = 0 19 | stdout_logfile = /dev/stdout 20 | redirect_stderr = true -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/configs/etc/supervisor/conf.d/php-fpm.conf: -------------------------------------------------------------------------------- 1 | [group:php-fpm] 2 | programs=php-fpmd 3 | priority=20 4 | 5 | [program:php-fpmd] 6 | command = /usr/sbin/php-fpm7.2 --nodaemonize -R 7 | process_name=%(program_name)s 8 | startsecs = 0 9 | autostart = true 10 | autorestart = true 11 | stdout_logfile=/dev/stdout 12 | stdout_logfile_maxbytes=0 13 | redirect_stderr = true -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/entrypoint.d/00-pinba-setup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Exit the script if any statement returns a non-true return value 4 | set -e 5 | 6 | # Set pinba server 7 | if [ "x${PINBA_SERVER}" != "x" ]; then 8 | sed -i -e "s/pinba.server[ \t]*=[ \t]*\(.*\)$/pinba.server = ${PINBA_SERVER}/g" \ 9 | /etc/php/7.2/mods-available/pinba.ini 10 | 11 | phpenmod -v 7.2 pinba 12 | fi 13 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/entrypoint.d/01-nginx-setup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Exit the script if any statement returns a non-true return value 4 | set -e 5 | 6 | if [ "x${NGINX_RESOLVER}" != "x" ]; then 7 | sed -i "s/NGINX_RESOLVER/${NGINX_RESOLVER}/g" \ 8 | /etc/nginx/directives/resolver.conf 9 | fi 10 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/entrypoint.d/01-xdebug-setup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Exit the script if any statement returns a non-true return value 4 | set -e 5 | 6 | if [ "x${XDEBUG_REMOTE_PORT}" != "x" ]; then 7 | sed -i -e "s/xdebug.remote_port[ \t]*=[ \t]*\(.*\)$/xdebug.remote_port = ${XDEBUG_REMOTE_PORT}/g" \ 8 | /etc/php/7.2/mods-available/xdebug.ini 9 | fi 10 | 11 | if [ "x${XDEBUG_REMOTE_AUTO_START}" != "x" ]; then 12 | sed -i -e "s/xdebug.remote_autostart[ \t]*=[ \t]*\(.*\)$/xdebug.remote_autostart = ${XDEBUG_REMOTE_AUTO_START}/g" \ 13 | /etc/php/7.2/mods-available/xdebug.ini 14 | fi 15 | 16 | if [ "x${XDEBUG_REMOTE_ENABLE}" != "x" ]; then 17 | sed -i -e "s/xdebug.remote_enable[ \t]*=[ \t]*\(.*\)$/xdebug.remote_enable = ${XDEBUG_REMOTE_ENABLE}/g" \ 18 | /etc/php/7.2/mods-available/xdebug.ini 19 | 20 | # Setting XDEBUG_REMOTE_ENABLE=1 will enable xdebug 21 | case $XDEBUG_REMOTE_ENABLE in 22 | "1"|"on"|"On"|"ON"|"true"|"True"|"TRUE") 23 | phpenmod -v 7.2 xdebug; 24 | ;; 25 | esac 26 | fi 27 | 28 | # Enable xdebug if XDEBUG_REMOTE_HOST is defined 29 | if [ "x${XDEBUG_REMOTE_HOST}" != "x" ]; then 30 | if [ ${XDEBUG_REMOTE_HOST} == "auto" ]; then 31 | export XDEBUG_REMOTE_HOST=$(/sbin/ip route|awk '/default/ { print $3 }') 32 | fi 33 | 34 | sed -i -e "s/xdebug.remote_host[ \t]*=[ \t]*\(.*\)$/xdebug.remote_host = ${XDEBUG_REMOTE_HOST}/g" \ 35 | /etc/php/7.2/mods-available/xdebug.ini 36 | 37 | phpenmod -v 7.2 xdebug 38 | fi 39 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Exit the script if any statement returns a non-true return value 4 | set -e 5 | 6 | for file in /entrypoint.d/*.sh 7 | do 8 | source "$file" 9 | done 10 | 11 | exec "$@" 12 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/installers/nginx.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # trace ERR through pipes 4 | set -o pipefail 5 | 6 | # trace ERR through 'time command' and other functions 7 | set -o errtrace 8 | 9 | # set -u : exit the script if you try to use an uninitialised variable 10 | set -o nounset 11 | 12 | # set -e : exit the script if any statement returns a non-true return value 13 | set -o errexit 14 | 15 | gunzip_uri() { 16 | source=$1 17 | destination=$2 18 | 19 | cd /tmp 20 | 21 | wget --quiet -O $destination $source 22 | tar -xzf $destination 23 | } 24 | 25 | git clone \ 26 | --depth=1 \ 27 | -q \ 28 | https://github.com/tony2001/ngx_http_pinba_module.git \ 29 | /tmp/pinba 30 | 31 | git clone \ 32 | --depth=1 \ 33 | -q \ 34 | https://github.com/leev/ngx_http_geoip2_module.git \ 35 | /tmp/ngx_http_geoip2_module 36 | 37 | git clone \ 38 | --depth=1 \ 39 | -q \ 40 | https://github.com/arut/nginx-dav-ext-module \ 41 | /tmp/nginx-dav-ext-module 42 | 43 | gunzip_uri \ 44 | "https://ftp.pcre.org/pub/pcre/pcre-${PCRE_VERSION}.tar.gz" \ 45 | /tmp/pcre.tar.gz 46 | 47 | mv /tmp/pcre-${PCRE_VERSION} $PCRE_PATH 48 | 49 | gunzip_uri \ 50 | "https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz" \ 51 | /tmp/nginx.tar.gz 52 | 53 | cd /tmp/nginx-${NGINX_VERSION} 54 | 55 | ./configure --prefix=/usr/share/nginx \ 56 | --sbin-path=/usr/sbin/nginx \ 57 | --conf-path=$NGINX_CONF_PATH/nginx.conf\ 58 | --error-log-path=$NGINX_LOG_PATH/error.log \ 59 | --http-log-path=$NGINX_LOG_PATH/access.log \ 60 | --pid-path=/run/nginx.pid \ 61 | --lock-path=/var/lock/nginx.lock \ 62 | --user=$NGINX_USER \ 63 | --group=$NGINX_USER \ 64 | --build=$NGINX_BUILD \ 65 | --add-module=/tmp/pinba/ \ 66 | --add-module=/tmp/ngx_http_geoip2_module \ 67 | --with-pcre=$PCRE_PATH \ 68 | --with-http_realip_module \ 69 | --with-http_geoip_module \ 70 | --with-http_gzip_static_module \ 71 | --with-http_stub_status_module \ 72 | --with-http_ssl_module \ 73 | --with-openssl=/tmp/$OPENSSL_VERSION \ 74 | --with-http_dav_module \ 75 | --add-module=/tmp/nginx-dav-ext-module 76 | 77 | make -s -j"$(getconf _NPROCESSORS_ONLN)" 78 | make -s install 79 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/installers/openssl.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # trace ERR through pipes 4 | set -o pipefail 5 | 6 | # trace ERR through 'time command' and other functions 7 | set -o errtrace 8 | 9 | # set -u : exit the script if you try to use an uninitialised variable 10 | set -o nounset 11 | 12 | # set -e : exit the script if any statement returns a non-true return value 13 | set -o errexit 14 | 15 | cd /tmp 16 | 17 | wget --quiet -O /tmp/openssl.tar.gz \ 18 | "https://www.openssl.org/source/$OPENSSL_VERSION.tar.gz" 19 | 20 | tar -xzf openssl.tar.gz 21 | cd $OPENSSL_VERSION 22 | 23 | ./config --prefix=/usr 24 | make -s -j"$(getconf _NPROCESSORS_ONLN)" 25 | make -s install 26 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/installers/pinba.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # trace ERR through pipes 4 | set -o pipefail 5 | 6 | # trace ERR through 'time command' and other functions 7 | set -o errtrace 8 | 9 | # set -u : exit the script if you try to use an uninitialised variable 10 | set -o nounset 11 | 12 | # set -e : exit the script if any statement returns a non-true return value 13 | set -o errexit 14 | 15 | git clone \ 16 | --depth=1 \ 17 | -q \ 18 | https://github.com/tony2001/pinba_extension.git \ 19 | /tmp/pinba_extension 20 | 21 | cd /tmp/pinba_extension 22 | 23 | phpize 24 | ./configure 25 | make -s -j"$(getconf _NPROCESSORS_ONLN)" 26 | make -s install 27 | 28 | php_version=`php -r 'echo phpversion();' | cut -d '.' -f 1,2` 29 | php_ext_dir=`php-config --extension-dir` 30 | 31 | mkdir -p /artifacts${php_ext_dir} 32 | mkdir -p /artifacts/etc/php/${php_version}/mods-available 33 | 34 | echo "[pinba]" > /etc/php/${php_version}/mods-available/pinba.ini 35 | echo "extension=${php_ext_dir}/pinba.so" >> /etc/php/${php_version}/mods-available/pinba.ini 36 | echo "pinba.server=127.0.0.1" >> /etc/php/${php_version}/mods-available/pinba.ini 37 | echo "pinba.enabled=1" >> /etc/php/${php_version}/mods-available/pinba.ini 38 | echo "pinba.auto_flush=1" >> /etc/php/${php_version}/mods-available/pinba.ini 39 | 40 | ln -sf \ 41 | /etc/php/${php_version}/mods-available/pinba.ini \ 42 | /etc/php/${php_version}/cli/conf.d/20-pinba.ini 43 | 44 | cp /etc/php/${php_version}/mods-available/pinba.ini /artifacts/etc/php/${php_version}/mods-available 45 | cp ${php_ext_dir}/pinba.so /artifacts${php_ext_dir} 46 | 47 | php --ri pinba 48 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/installers/zephir-parser.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # trace ERR through pipes 4 | set -o pipefail 5 | 6 | # trace ERR through 'time command' and other functions 7 | set -o errtrace 8 | 9 | # set -u : exit the script if you try to use an uninitialised variable 10 | set -o nounset 11 | 12 | # set -e : exit the script if any statement returns a non-true return value 13 | set -o errexit 14 | 15 | git clone \ 16 | --depth=1 \ 17 | -q \ 18 | https://github.com/phalcon/php-zephir-parser.git \ 19 | -b ${ZEPHIR_PARSER_VERSION} /tmp/zephir_parser 20 | 21 | cd /tmp/zephir_parser 22 | 23 | phpize 24 | ./configure 25 | make -s -j"$(getconf _NPROCESSORS_ONLN)" 26 | make -s install 27 | 28 | php_version=`php -r 'echo phpversion();' | cut -d '.' -f 1,2` 29 | php_include_dir=`php-config --include-dir` 30 | php_ext_dir=`php-config --extension-dir` 31 | 32 | echo "[Zephir Parser]" > /etc/php/${php_version}/mods-available/zephir_parser.ini 33 | echo "extension=zephir_parser.so" >> /etc/php/${php_version}/mods-available/zephir_parser.ini 34 | 35 | ln -sf \ 36 | /etc/php/${php_version}/mods-available/zephir_parser.ini \ 37 | /etc/php/${php_version}/cli/conf.d/50-zephir_parser.ini 38 | 39 | mkdir -p /artifacts${php_ext_dir} 40 | mkdir -p /artifacts${php_include_dir}/ext 41 | mkdir -p /artifacts/etc/php/${php_version}/mods-available 42 | 43 | cp /etc/php/${php_version}/mods-available/zephir_parser.ini /artifacts/etc/php/${php_version}/mods-available 44 | cp ${php_ext_dir}/zephir_parser.so /artifacts${php_ext_dir} 45 | cp -R ${php_include_dir}/ext/zephir_parser /artifacts/${php_include_dir}/ext 46 | 47 | php --ri "Zephir Parser" 48 | -------------------------------------------------------------------------------- /app/ubuntu-16.04/php-7.2/installers/zephir.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # trace ERR through pipes 4 | set -o pipefail 5 | 6 | # trace ERR through 'time command' and other functions 7 | set -o errtrace 8 | 9 | # set -u : exit the script if you try to use an uninitialised variable 10 | set -o nounset 11 | 12 | # set -e : exit the script if any statement returns a non-true return value 13 | set -o errexit 14 | 15 | echo "Installing Zephir v${ZEPHIR_VERSION}..." 16 | 17 | mkdir -p /usr/local/bin 18 | 19 | wget --quiet -O /usr/local/bin/zephir \ 20 | "https://github.com/phalcon/zephir/releases/download/${ZEPHIR_VERSION}/zephir.phar" 21 | 22 | chmod +x /usr/local/bin/zephir 23 | 24 | mkdir -p /artifacts/usr/local/bin 25 | cp /usr/local/bin/zephir /artifacts/usr/local/bin 26 | -------------------------------------------------------------------------------- /base/alpine-3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/bootstrap:alpine-3 2 | 3 | LABEL description="Slimmed-down base image to use for production with crond and supervisord" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.base.alpine-3" 7 | 8 | ENV SUPERVISOR_VERSION=4.0.1 \ 9 | GOSU_VERSION=1.11 10 | 11 | # install base packages 12 | RUN apk update \ 13 | && apk upgrade --force \ 14 | && apk add --no-cache \ 15 | dcron \ 16 | gnupg \ 17 | logrotate \ 18 | py-setuptools \ 19 | python \ 20 | tar \ 21 | wget \ 22 | xz \ 23 | && cd /tmp \ 24 | && apk add --no-cache --virtual .build-deps dpkg \ 25 | && wget --quiet -O "supervisor-${SUPERVISOR_VERSION}.tar.gz" \ 26 | "https://github.com/Supervisor/supervisor/archive/${SUPERVISOR_VERSION}.tar.gz" \ 27 | && tar -xzf "supervisor-${SUPERVISOR_VERSION}.tar.gz" \ 28 | && cd "supervisor-${SUPERVISOR_VERSION}" \ 29 | && python setup.py install --quiet \ 30 | && mkdir -p /var/log/supervisor \ 31 | && /usr/bin/supervisord --version \ 32 | && mkdir -m 0644 -p /var/log/supervisor /var/log/cron /var/spool/cron/crontabs /etc/cron.d \ 33 | && touch /var/log/cron/cron.log \ 34 | && export DPKG_ARCH="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \ 35 | && wget --quiet -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$DPKG_ARCH" \ 36 | && wget --quiet -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$DPKG_ARCH.asc" \ 37 | && export GNUPGHOME="$(mktemp -d)" \ 38 | && export GPG_KEY="B42F6819007F00F88E364FD4036A9C25BF357DD4" \ 39 | && ( \ 40 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ 41 | || gpg --keyserver pgp.mit.edu --recv-keys "$GPG_KEY" \ 42 | || gpg --keyserver keyserver.pgp.com --recv-keys "$GPG_KEY" \ 43 | ) \ 44 | && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \ 45 | && chmod +x /usr/local/bin/gosu \ 46 | && gosu nobody true \ 47 | && python --version 48 | 49 | # cleanup 50 | RUN apk del .build-deps \ 51 | && rm -rf /tmp/* /var/cache/apk/* \ 52 | && rm -f /usr/local/bin/gosu.asc \ 53 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 54 | 55 | COPY ./configs / 56 | 57 | CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"] 58 | -------------------------------------------------------------------------------- /base/alpine-3/configs/etc/supervisor/conf.d/cron.conf: -------------------------------------------------------------------------------- 1 | [group:system] 2 | programs = cron 3 | priority = 20 4 | 5 | [program:cron] 6 | command = /usr/sbin/crond -f 7 | process_name = %(program_name)s 8 | startsecs = 0 9 | autostart = true 10 | autorestart = true 11 | stdout_logfile = /dev/stdout 12 | stdout_logfile_maxbytes = 0 13 | stderr_logfile = /dev/stderr 14 | stderr_logfile_maxbytes = 0 15 | -------------------------------------------------------------------------------- /base/alpine-3/configs/etc/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [unix_http_server] 2 | file = /var/run/supervisor.sock 3 | chmod = 0700 4 | chown = root:root 5 | username = root 6 | password = {SHA}e982f17bcbe0f724063b708a4f76db211a999304 7 | 8 | [supervisord] 9 | nodaemon = true 10 | logfile = /dev/null 11 | logfile_maxbytes = 0 12 | pidfile = /var/run/supervisord.pid 13 | childlogdir = /var/log/supervisor 14 | 15 | [rpcinterface:supervisor] 16 | supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface 17 | 18 | [supervisorctl] 19 | serverurl = unix:///var/run/supervisor.sock 20 | username = root 21 | password = docker 22 | 23 | [include] 24 | files = /etc/supervisor/conf.d/*.conf 25 | -------------------------------------------------------------------------------- /base/ubuntu-16.04/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/bootstrap:ubuntu-16.04 2 | 3 | LABEL description="Slimmed-down base image to use for production with crond and supervisord" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.base.ubuntu-16.04" 7 | 8 | ENV SUPERVISOR_VERSION=4.0.1 \ 9 | GOSU_VERSION=1.11 10 | 11 | # remove from base image unobvious cron jobs 12 | RUN [ -d /etc/cron.hourly ] && rm /etc/cron.hourly/* ; \ 13 | [ -d /etc/cron.daily ] && rm /etc/cron.daily/* ; \ 14 | [ -d /etc/cron.weekly ] && rm /etc/cron.weekly/* ; \ 15 | [ -d /etc/cron.monthly ] && rm /etc/cron.monthly/* ; \ 16 | exit 0 ; 17 | 18 | RUN apt-get update \ 19 | && apt-get install --no-install-recommends -yq \ 20 | cron \ 21 | gnupg \ 22 | logrotate \ 23 | python \ 24 | python-setuptools \ 25 | wget \ 26 | && cd /tmp \ 27 | && wget --quiet -O "supervisor-${SUPERVISOR_VERSION}.tar.gz" \ 28 | "https://github.com/Supervisor/supervisor/archive/${SUPERVISOR_VERSION}.tar.gz" \ 29 | && tar -xzf "supervisor-${SUPERVISOR_VERSION}.tar.gz" \ 30 | && cd "supervisor-${SUPERVISOR_VERSION}" \ 31 | && python setup.py install --quiet \ 32 | && mkdir -p /var/log/supervisor \ 33 | && /usr/local/bin/supervisord --version \ 34 | && sed -i "s/^[\s]*su root syslog/# su root syslog/g" /etc/logrotate.conf \ 35 | && export DPKG_ARCH="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \ 36 | && wget --quiet -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$DPKG_ARCH" \ 37 | && wget --quiet -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$DPKG_ARCH.asc" \ 38 | && export GNUPGHOME="$(mktemp -d)" \ 39 | && export GPG_KEY="B42F6819007F00F88E364FD4036A9C25BF357DD4" \ 40 | && ( \ 41 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ 42 | || gpg --keyserver pgp.mit.edu --recv-keys "$GPG_KEY" \ 43 | || gpg --keyserver keyserver.pgp.com --recv-keys "$GPG_KEY" \ 44 | ) \ 45 | && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \ 46 | && chmod +x /usr/local/bin/gosu \ 47 | && gosu nobody true 48 | 49 | # cleanup 50 | RUN apt-get autoremove -y \ 51 | && apt-get clean -y \ 52 | && rm -rf /tmp/* /var/tmp/* \ 53 | && rm /usr/local/bin/gosu.asc \ 54 | && find /var/cache/apt/archives /var/lib/apt/lists \ 55 | -not -name lock \ 56 | -type f \ 57 | -delete \ 58 | && find /var/cache -type f -delete \ 59 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 60 | 61 | COPY ./configs / 62 | 63 | CMD ["/usr/local/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"] 64 | -------------------------------------------------------------------------------- /base/ubuntu-16.04/configs/etc/supervisor/conf.d/cron.conf: -------------------------------------------------------------------------------- 1 | [group:system] 2 | programs = cron 3 | priority = 20 4 | 5 | [program:cron] 6 | command = /usr/sbin/cron -f 7 | process_name = %(program_name)s 8 | startsecs = 0 9 | autostart = true 10 | autorestart = true 11 | stdout_logfile = /dev/stdout 12 | stdout_logfile_maxbytes = 0 13 | stderr_logfile = /dev/stderr 14 | stderr_logfile_maxbytes = 0 15 | -------------------------------------------------------------------------------- /base/ubuntu-16.04/configs/etc/supervisor/supervisord.conf: -------------------------------------------------------------------------------- 1 | [unix_http_server] 2 | file = /var/run/supervisor.sock 3 | chmod = 0700 4 | chown = root:root 5 | username = root 6 | password = {SHA}e982f17bcbe0f724063b708a4f76db211a999304 7 | 8 | [supervisord] 9 | nodaemon = true 10 | logfile = /dev/null 11 | logfile_maxbytes = 0 12 | pidfile = /var/run/supervisord.pid 13 | childlogdir = /var/log/supervisor 14 | 15 | [rpcinterface:supervisor] 16 | supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface 17 | 18 | [supervisorctl] 19 | serverurl = unix:///var/run/supervisor.sock 20 | username = root 21 | password = docker 22 | 23 | [include] 24 | files = /etc/supervisor/conf.d/*.conf 25 | -------------------------------------------------------------------------------- /bootstrap/alpine-3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.9 2 | 3 | LABEL description="Bootstrap image to use for production with Alpine 3" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.bootstrap.alpine-3" 7 | 8 | ENV TIMEZONE=UTC \ 9 | LANGUAGE=en_US.UTF-8 \ 10 | LANG=en_US.UTF-8 \ 11 | LC_ALL=en_US.UTF-8 \ 12 | TERM=xterm 13 | 14 | RUN apk update \ 15 | && apk upgrade --force \ 16 | && apk add --no-cache \ 17 | bash \ 18 | bash-completion \ 19 | ca-certificates \ 20 | coreutils \ 21 | musl-utils \ 22 | tzdata \ 23 | openssl \ 24 | && update-ca-certificates 2>/dev/null || true \ 25 | && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \ 26 | && echo "${TIMEZONE}" | tee /etc/timezone \ 27 | && rm -rf /tmp/* /var/cache/apk/* \ 28 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 29 | -------------------------------------------------------------------------------- /bootstrap/centos-7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM centos:7 2 | 3 | LABEL description="Bootstrap image to use for production with Ubuntu 12.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.bootstrap.centos-7" 7 | 8 | ENV TIMEZONE=UTC \ 9 | LANGUAGE=en_US.UTF-8 \ 10 | LANG=en_US.UTF-8 \ 11 | LC_ALL=en_US.UTF-8 \ 12 | TERM=xterm 13 | 14 | RUN rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \ 15 | && yum upgrade -y \ 16 | && yum -y install \ 17 | epel-release \ 18 | && yum clean all \ 19 | && rm -rf /tmp/* /var/tmp/* \ 20 | && find /var/cache -type f -delete \ 21 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 22 | -------------------------------------------------------------------------------- /bootstrap/centos-7/Makefile: -------------------------------------------------------------------------------- 1 | NAME = phalconphp/bootstrap 2 | VERSION = centos-7 3 | SHELL = /bin/bash 4 | 5 | .PHONY: build 6 | build: pre-build docker-build post-build 7 | 8 | .PHONY: pre-build 9 | pre-build: 10 | 11 | .PHONY: post-build 12 | post-build: 13 | 14 | .PHONY: docker-build 15 | docker-build: 16 | docker build --pull -t $(NAME):$(VERSION) --no-cache --force-rm --compress . 17 | 18 | .PHONY: release 19 | release: build push 20 | 21 | .PHONY: push 22 | push: do-push post-push 23 | 24 | .PHONY: do-push 25 | do-push: 26 | docker push $(NAME):$(VERSION) 27 | 28 | .PHONY: post-push 29 | post-push: 30 | 31 | # vim:ft=make:noet:ci:pi:sts=0:sw=4:ts=4:tw=78:fenc=utf-8:et 32 | -------------------------------------------------------------------------------- /bootstrap/debian-10/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:buster 2 | 3 | LABEL description="Bootstrap image to use for production with Debian Buster" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.bootstrap.buster" 7 | 8 | ENV TIMEZONE=UTC \ 9 | LANGUAGE=en_US.UTF-8 \ 10 | LANG=en_US.UTF-8 \ 11 | LC_ALL=en_US.UTF-8 \ 12 | DEBIAN_FRONTEND=noninteractive \ 13 | TERM=xterm 14 | 15 | RUN apt-get clean -y \ 16 | && sed -ri 's/(deb.*\/debian buster main)/\1 contrib non-free /' -- /etc/apt/sources.list \ 17 | && apt-get update -y \ 18 | && apt-get upgrade -y \ 19 | && apt-get install -y locales \ 20 | && export LANGUAGE=${LANGUAGE} \ 21 | && export LANG=${LANG} \ 22 | && export LC_ALL=${LC_ALL} \ 23 | && locale-gen ${LANG} \ 24 | && dpkg-reconfigure --frontend noninteractive locales \ 25 | && apt-get install --no-install-recommends -yq \ 26 | apt-transport-https \ 27 | apt-utils \ 28 | ca-certificates \ 29 | lsb-release \ 30 | software-properties-common \ 31 | tzdata \ 32 | locales \ 33 | && printf "LANGUAGE=\"en_US.UTF-8\"\nLC_ALL=\"en_US.UTF-8\"" >> /etc/environment \ 34 | && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ 35 | && echo 'LANG="en_US.UTF-8"' > /etc/default/locale \ 36 | && dpkg-reconfigure --frontend=noninteractive locales \ 37 | && update-locale LANG=${LANG} \ 38 | && apt-get autoremove -y \ 39 | && apt-get clean -y \ 40 | && rm -rf /tmp/* /var/tmp/* \ 41 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 42 | && find /var/cache -type f -delete \ 43 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done -------------------------------------------------------------------------------- /bootstrap/debian-11/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bullseye 2 | 3 | LABEL description="Bootstrap image to use for production with Debian Buster" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.bootstrap.bullseye" 7 | 8 | ENV TIMEZONE=UTC \ 9 | LANGUAGE=en_US.UTF-8 \ 10 | LANG=en_US.UTF-8 \ 11 | LC_ALL=en_US.UTF-8 \ 12 | DEBIAN_FRONTEND=noninteractive \ 13 | TERM=xterm 14 | 15 | RUN apt-get clean -y \ 16 | && sed -ri 's/(deb.*\/debian bullseye main)/\1 contrib non-free /' -- /etc/apt/sources.list \ 17 | && apt-get update -y \ 18 | && apt-get upgrade -y \ 19 | && apt-get install -y locales \ 20 | && export LANGUAGE=${LANGUAGE} \ 21 | && export LANG=${LANG} \ 22 | && export LC_ALL=${LC_ALL} \ 23 | && locale-gen ${LANG} \ 24 | && dpkg-reconfigure --frontend noninteractive locales \ 25 | && apt-get install --no-install-recommends -yq \ 26 | apt-transport-https \ 27 | apt-utils \ 28 | ca-certificates \ 29 | lsb-release \ 30 | software-properties-common \ 31 | tzdata \ 32 | locales \ 33 | && printf "LANGUAGE=\"en_US.UTF-8\"\nLC_ALL=\"en_US.UTF-8\"" >> /etc/environment \ 34 | && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ 35 | && echo 'LANG="en_US.UTF-8"' > /etc/default/locale \ 36 | && dpkg-reconfigure --frontend=noninteractive locales \ 37 | && update-locale LANG=${LANG} \ 38 | && apt-get autoremove -y \ 39 | && apt-get clean -y \ 40 | && rm -rf /tmp/* /var/tmp/* \ 41 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 42 | && find /var/cache -type f -delete \ 43 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done -------------------------------------------------------------------------------- /bootstrap/debian-9/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:stretch 2 | 3 | LABEL description="Bootstrap image to use for production with Debian Stretch" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.bootstrap.stretch" 7 | 8 | ENV TIMEZONE=UTC \ 9 | LANGUAGE=en_US.UTF-8 \ 10 | LANG=en_US.UTF-8 \ 11 | LC_ALL=en_US.UTF-8 \ 12 | DEBIAN_FRONTEND=noninteractive \ 13 | TERM=xterm 14 | 15 | RUN apt-get clean -y \ 16 | && sed -ri 's/(deb.*\/debian stretch main)/\1 contrib non-free /' -- /etc/apt/sources.list \ 17 | && apt-get update -y \ 18 | && apt-get upgrade -y \ 19 | && apt-get install -y locales \ 20 | && export LANGUAGE=${LANGUAGE} \ 21 | && export LANG=${LANG} \ 22 | && export LC_ALL=${LC_ALL} \ 23 | && locale-gen ${LANG} \ 24 | && dpkg-reconfigure --frontend noninteractive locales \ 25 | && apt-get install --no-install-recommends -yq \ 26 | apt-transport-https \ 27 | apt-utils \ 28 | ca-certificates \ 29 | lsb-release \ 30 | software-properties-common \ 31 | tzdata \ 32 | locales \ 33 | && printf "LANGUAGE=\"en_US.UTF-8\"\nLC_ALL=\"en_US.UTF-8\"" >> /etc/environment \ 34 | && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ 35 | && echo 'LANG="en_US.UTF-8"' > /etc/default/locale \ 36 | && dpkg-reconfigure --frontend=noninteractive locales \ 37 | && update-locale LANG=${LANG} \ 38 | && apt-get autoremove -y \ 39 | && apt-get clean -y \ 40 | && rm -rf /tmp/* /var/tmp/* \ 41 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 42 | && find /var/cache -type f -delete \ 43 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done -------------------------------------------------------------------------------- /bootstrap/ubuntu-12.04/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:12.04 2 | 3 | LABEL description="Bootstrap image to use for production with Ubuntu 12.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.bootstrap.ubuntu-12.04" 7 | 8 | ENV TIMEZONE=UTC \ 9 | LANGUAGE=en_US.UTF-8 \ 10 | LANG=en_US.UTF-8 \ 11 | LC_ALL=en_US.UTF-8 \ 12 | DEBIAN_FRONTEND=noninteractive \ 13 | TERM=xterm 14 | 15 | RUN apt-get clean -y \ 16 | && echo "deb http://archive.ubuntu.com/ubuntu/ precise-security multiverse" >> /etc/apt/sources.list \ 17 | && echo "deb-src http://archive.ubuntu.com/ubuntu/ precise-security multiverse" >> /etc/apt/sources.list \ 18 | && echo "deb http://archive.ubuntu.com/ubuntu/ precise multiverse" >> /etc/apt/sources.list \ 19 | && echo "deb-src http://archive.ubuntu.com/ubuntu/ precise multiverse" >> /etc/apt/sources.list \ 20 | && apt-get update -y \ 21 | && apt-get upgrade -y \ 22 | && apt-get install -y locales \ 23 | && export LANGUAGE=${LANGUAGE} \ 24 | && export LANG=${LANG} \ 25 | && export LC_ALL=${LC_ALL} \ 26 | && locale-gen ${LANG} \ 27 | && dpkg-reconfigure --frontend noninteractive locales \ 28 | && apt-get install --no-install-recommends -yq \ 29 | apt-utils \ 30 | software-properties-common \ 31 | python-software-properties \ 32 | lsb-release \ 33 | ca-certificates \ 34 | apt-transport-https \ 35 | tzdata \ 36 | && echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d \ 37 | && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \ 38 | && echo "${TIMEZONE}" | tee /etc/timezone \ 39 | && dpkg-reconfigure --frontend noninteractive tzdata \ 40 | && apt-get autoremove -y \ 41 | && apt-get clean -y \ 42 | && rm -rf /tmp/* /var/tmp/* \ 43 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 44 | && find /var/cache -type f -delete \ 45 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 46 | -------------------------------------------------------------------------------- /bootstrap/ubuntu-14.04/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:14.04 2 | 3 | LABEL description="Bootstrap image to use for production with Ubuntu 14.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.bootstrap.ubuntu-14.04" 7 | 8 | ENV TIMEZONE=UTC \ 9 | LANGUAGE=en_US.UTF-8 \ 10 | LANG=en_US.UTF-8 \ 11 | LC_ALL=en_US.UTF-8 \ 12 | DEBIAN_FRONTEND=noninteractive \ 13 | TERM=xterm 14 | 15 | RUN apt-get clean -y \ 16 | && apt-get update -y \ 17 | && apt-get upgrade -y \ 18 | && apt-get install -y locales \ 19 | && export LANGUAGE=${LANGUAGE} \ 20 | && export LANG=${LANG} \ 21 | && export LC_ALL=${LC_ALL} \ 22 | && locale-gen ${LANG} \ 23 | && dpkg-reconfigure --frontend noninteractive locales \ 24 | && apt-get install --no-install-recommends -yq \ 25 | apt-utils \ 26 | software-properties-common \ 27 | python-software-properties \ 28 | lsb-release \ 29 | ca-certificates \ 30 | apt-transport-https \ 31 | tzdata \ 32 | && echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d \ 33 | && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \ 34 | && echo "${TIMEZONE}" | tee /etc/timezone \ 35 | && dpkg-reconfigure --frontend noninteractive tzdata \ 36 | && apt-add-repository -y multiverse \ 37 | && apt-get update -y \ 38 | && apt-get upgrade -y \ 39 | && apt-get autoremove -y \ 40 | && apt-get clean -y \ 41 | && rm -rf /tmp/* /var/tmp/* \ 42 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 43 | && find /var/cache -type f -delete \ 44 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 45 | -------------------------------------------------------------------------------- /bootstrap/ubuntu-16.04/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:16.04 2 | 3 | LABEL description="Bootstrap image to use for production with Ubuntu 16.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.bootstrap.ubuntu-16.04" 7 | 8 | ENV TIMEZONE=UTC \ 9 | LANGUAGE=en_US.UTF-8 \ 10 | LANG=en_US.UTF-8 \ 11 | LC_ALL=en_US.UTF-8 \ 12 | DEBIAN_FRONTEND=noninteractive \ 13 | TERM=xterm 14 | 15 | RUN apt clean -y \ 16 | && apt update -y \ 17 | && apt upgrade -y \ 18 | && apt install -y locales \ 19 | && export LANGUAGE=${LANGUAGE} \ 20 | && export LANG=${LANG} \ 21 | && export LC_ALL=${LC_ALL} \ 22 | && locale-gen ${LANG} \ 23 | && dpkg-reconfigure --frontend noninteractive locales \ 24 | && apt install --no-install-recommends -yq \ 25 | apt-transport-https \ 26 | apt-utils \ 27 | ca-certificates \ 28 | lsb-release \ 29 | python-software-properties \ 30 | software-properties-common \ 31 | tzdata \ 32 | && echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d \ 33 | && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \ 34 | && echo "${TIMEZONE}" | tee /etc/timezone \ 35 | && dpkg-reconfigure --frontend noninteractive tzdata \ 36 | && apt-add-repository -y multiverse \ 37 | && apt update -y \ 38 | && apt upgrade -y \ 39 | && apt autoremove -y \ 40 | && apt clean -y \ 41 | && rm -rf /tmp/* /var/tmp/* \ 42 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 43 | && find /var/cache -type f -delete \ 44 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 45 | -------------------------------------------------------------------------------- /bootstrap/ubuntu-18.04/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:18.04 2 | 3 | LABEL description="Bootstrap image to use for production with Ubuntu 18.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.bootstrap.ubuntu-18.04" 7 | 8 | ENV TIMEZONE=UTC \ 9 | LANGUAGE=en_US.UTF-8 \ 10 | LANG=en_US.UTF-8 \ 11 | LC_ALL=en_US.UTF-8 \ 12 | DEBIAN_FRONTEND=noninteractive \ 13 | TERM=xterm 14 | 15 | RUN apt clean -y \ 16 | && apt update -y \ 17 | && apt upgrade -y \ 18 | && apt install -y locales \ 19 | && export LANGUAGE=${LANGUAGE} \ 20 | && export LANG=${LANG} \ 21 | && export LC_ALL=${LC_ALL} \ 22 | && locale-gen ${LANG} \ 23 | && dpkg-reconfigure --frontend noninteractive locales \ 24 | && apt install --no-install-recommends -yq \ 25 | apt-transport-https \ 26 | apt-utils \ 27 | ca-certificates \ 28 | lsb-release \ 29 | software-properties-common \ 30 | tzdata \ 31 | && echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d \ 32 | && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \ 33 | && echo "${TIMEZONE}" | tee /etc/timezone \ 34 | && dpkg-reconfigure --frontend noninteractive tzdata \ 35 | && apt-add-repository -y multiverse \ 36 | && apt update -y \ 37 | && apt upgrade -y \ 38 | && apt autoremove -y \ 39 | && apt clean -y \ 40 | && rm -rf /tmp/* /var/tmp/* \ 41 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 42 | && find /var/cache -type f -delete \ 43 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 44 | -------------------------------------------------------------------------------- /bootstrap/ubuntu-20.04/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:20.04 2 | 3 | LABEL description="Bootstrap image to use for production with Ubuntu 20.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.bootstrap.ubuntu-20.04" 7 | 8 | ENV TIMEZONE=UTC \ 9 | LANGUAGE=en_US.UTF-8 \ 10 | LANG=en_US.UTF-8 \ 11 | LC_ALL=en_US.UTF-8 \ 12 | DEBIAN_FRONTEND=noninteractive \ 13 | TERM=xterm 14 | 15 | RUN apt clean -y \ 16 | && apt update -y \ 17 | && apt upgrade -y \ 18 | && apt install -y locales \ 19 | && export LANGUAGE=${LANGUAGE} \ 20 | && export LANG=${LANG} \ 21 | && export LC_ALL=${LC_ALL} \ 22 | && locale-gen ${LANG} \ 23 | && dpkg-reconfigure --frontend noninteractive locales \ 24 | && apt install --no-install-recommends -yq \ 25 | apt-transport-https \ 26 | apt-utils \ 27 | ca-certificates \ 28 | lsb-release \ 29 | software-properties-common \ 30 | tzdata \ 31 | && echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d \ 32 | && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \ 33 | && echo "${TIMEZONE}" | tee /etc/timezone \ 34 | && dpkg-reconfigure --frontend noninteractive tzdata \ 35 | && apt-add-repository -y multiverse \ 36 | && apt update -y \ 37 | && apt upgrade -y \ 38 | && apt autoremove -y \ 39 | && apt clean -y \ 40 | && rm -rf /tmp/* /var/tmp/* \ 41 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 42 | && find /var/cache -type f -delete \ 43 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 44 | -------------------------------------------------------------------------------- /bootstrap/ubuntu-20.10/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:20.10 2 | 3 | LABEL description="Bootstrap image to use for production with Ubuntu 20.10" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.bootstrap.ubuntu-20.10" 7 | 8 | ENV TIMEZONE=UTC \ 9 | LANGUAGE=en_US.UTF-8 \ 10 | LANG=en_US.UTF-8 \ 11 | LC_ALL=en_US.UTF-8 \ 12 | DEBIAN_FRONTEND=noninteractive \ 13 | TERM=xterm 14 | 15 | RUN apt clean -y \ 16 | && apt update -y \ 17 | && apt upgrade -y \ 18 | && apt install -y locales \ 19 | && export LANGUAGE=${LANGUAGE} \ 20 | && export LANG=${LANG} \ 21 | && export LC_ALL=${LC_ALL} \ 22 | && locale-gen ${LANG} \ 23 | && dpkg-reconfigure --frontend noninteractive locales \ 24 | && apt install --no-install-recommends -yq \ 25 | apt-transport-https \ 26 | apt-utils \ 27 | ca-certificates \ 28 | lsb-release \ 29 | software-properties-common \ 30 | tzdata \ 31 | && echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d \ 32 | && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \ 33 | && echo "${TIMEZONE}" | tee /etc/timezone \ 34 | && dpkg-reconfigure --frontend noninteractive tzdata \ 35 | && apt-add-repository -y multiverse \ 36 | && apt update -y \ 37 | && apt upgrade -y \ 38 | && apt autoremove -y \ 39 | && apt clean -y \ 40 | && rm -rf /tmp/* /var/tmp/* \ 41 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 42 | && find /var/cache -type f -delete \ 43 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 44 | -------------------------------------------------------------------------------- /build/README.md: -------------------------------------------------------------------------------- 1 | # Phalcon Build 2 | 3 | Docker images to build Phalcon for supported platforms. 4 | -------------------------------------------------------------------------------- /build/alpine-3.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/bootstrap:alpine-3.4 2 | 3 | LABEL description="Docker images to build Phalcon on Alpine 3.4" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.alpine-3.4" 7 | 8 | RUN apk update \ 9 | && apk upgrade --force \ 10 | && apk add --no-cache \ 11 | alpine-sdk \ 12 | ccache \ 13 | cmake \ 14 | curl \ 15 | gdb \ 16 | geoip-dev \ 17 | jansson-dev \ 18 | openssl-dev \ 19 | pcre-dev \ 20 | re2c \ 21 | su-exec \ 22 | sudo \ 23 | tar \ 24 | wget \ 25 | xz \ 26 | yaml-dev \ 27 | zlib-dev \ 28 | && sed -i.bak -n -e '/^Defaults.*requiretty/ { s/^/# /;};/^%wheel.*ALL$/ { s/^/# / ;} ;/^#.*wheel.*NOPASSWD/ { s/^#[ ]*//;};p' /etc/sudoers \ 29 | && rm -rf /tmp/* /var/cache/apk/* \ 30 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 31 | -------------------------------------------------------------------------------- /build/alpine-3.4/Makefile: -------------------------------------------------------------------------------- 1 | NAME = phalconphp/build 2 | TAG = alpine-3.4 3 | SHELL = /bin/bash 4 | 5 | .PHONY: pre-build docker-build post-build clean build release push do-push post-push 6 | 7 | build: pre-build docker-build post-build 8 | 9 | pre-build: 10 | 11 | post-build: clean 12 | 13 | docker-build: 14 | docker build -t $(NAME):$(TAG) --no-cache --rm . 15 | 16 | release: build push 17 | 18 | push: do-push post-push 19 | 20 | do-push: 21 | docker push $(NAME):$(TAG) 22 | 23 | post-push: 24 | 25 | clean: 26 | 27 | # vim:ft=make:noet:ci:pi:sts=0:sw=4:ts=4:tw=78:fenc=utf-8:et 28 | -------------------------------------------------------------------------------- /build/centos7-ius55/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:centos7 2 | 3 | LABEL description="Docker images to build Phalcon on CentOS 7" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.centos7-ius55" 7 | 8 | RUN yum upgrade -y \ 9 | && curl -s https://setup.ius.io | bash \ 10 | && yum -y install \ 11 | php55u-cli \ 12 | php55u-pdo \ 13 | php55u-common \ 14 | php55u-devel \ 15 | && yum clean all \ 16 | && rm -rf /tmp/* /var/tmp/* \ 17 | && find /var/cache -type f -delete \ 18 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 19 | -------------------------------------------------------------------------------- /build/centos7-ius55/Makefile: -------------------------------------------------------------------------------- 1 | NAME = phalconphp/build 2 | TAG = centos7-ius55 3 | SHELL = /bin/bash 4 | 5 | .PHONY: pre-build docker-build post-build clean build release push do-push post-push 6 | 7 | build: pre-build docker-build post-build 8 | 9 | pre-build: all 10 | 11 | post-build: clean 12 | 13 | docker-build: 14 | $(info The PHP 5.5 no longer supported bu IUS repo maintainer) 15 | 16 | release: build push 17 | 18 | push: do-push post-push 19 | 20 | do-push: 21 | $(info The PHP 5.5 no longer supported bu IUS repo maintainer) 22 | 23 | post-push: 24 | 25 | clean: 26 | 27 | # vim:ft=make:noet:ci:pi:sts=0:sw=4:ts=4:tw=78:fenc=utf-8:et 28 | -------------------------------------------------------------------------------- /build/centos7-ius56/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:centos7 2 | 3 | LABEL description="Docker images to build Phalcon on CentOS 7" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.centos7-ius56" 7 | 8 | RUN yum upgrade -y \ 9 | && curl -s https://setup.ius.io | bash \ 10 | && yum -y install \ 11 | php56u-cli \ 12 | php56u-pdo \ 13 | php56u-common \ 14 | php56u-devel \ 15 | && yum clean all \ 16 | && rm -rf /tmp/* /var/tmp/* \ 17 | && find /var/cache -type f -delete \ 18 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 19 | -------------------------------------------------------------------------------- /build/centos7-ius56/Makefile: -------------------------------------------------------------------------------- 1 | NAME = phalconphp/build 2 | VERSION = centos7-ius56 3 | SHELL = /bin/bash 4 | 5 | build: pre-build docker-build post-build 6 | 7 | .PHONY: pre-build 8 | pre-build: 9 | 10 | .PHONY: post-build 11 | post-build: 12 | 13 | .PHONY: docker-build 14 | docker-build: 15 | docker build --pull -t $(NAME):$(VERSION) --no-cache --force-rm --compress . 16 | 17 | .PHONY: release 18 | release: build push 19 | 20 | .PHONY: push 21 | push: do-push post-push 22 | 23 | .PHONY: do-push 24 | do-push: 25 | docker push $(NAME):$(VERSION) 26 | 27 | .PHONY: post-push 28 | post-push: 29 | 30 | # vim:ft=make:noet:ci:pi:sts=0:sw=4:ts=4:tw=78:fenc=utf-8:et 31 | -------------------------------------------------------------------------------- /build/centos7-ius70/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:centos7 2 | 3 | LABEL description="Docker images to build Phalcon on CentOS 7" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.centos7-ius70" 7 | 8 | # This image has disabled `centos-sclo-rh-source' repo in the 9 | # /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo 10 | # 11 | # The `yum-builddep' from `yum-utils' package, for some unknown to me 12 | # reason, enable all source repos for corresponding binary repos. 13 | # 14 | # For example it enables `centos-sclo-rh-source'. But in fact this repo 15 | # has wrong base url and this lead to an error: 16 | # 17 | # http://vault.centos.org/centos/7/sclo/Source/rh/repodata/repomd.xml: 18 | # [Errno 14] HTTP Error 404 - Not Found 19 | 20 | RUN curl -s https://setup.ius.io | bash \ 21 | && yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm \ 22 | && yum install -y centos-release-scl \ 23 | && yum-config-manager --enable centos-sclo-sclo-testing \ 24 | && yum -y install devtoolset-7-gcc \ 25 | && echo "source /opt/rh/devtoolset-7/enable" | tee -a /etc/bashrc \ 26 | && echo "source /opt/rh/devtoolset-7/enable" | tee -a /etc/profile \ 27 | && source /opt/rh/devtoolset-7/enable \ 28 | && gcc --version \ 29 | && ln -sf /opt/rh/devtoolset-7/root/usr/bin/gcc /usr/bin/gcc \ 30 | && awk \ 31 | '/centos-sclo-rh-source/{f=1} f>6{f=0} f{f++; $0="# " $0} 1' \ 32 | /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo > repo.patch \ 33 | && mv repo.patch /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo \ 34 | && yum-config-manager --enable remi-php70 \ 35 | && yum -y install \ 36 | pcre-devel \ 37 | php-cli \ 38 | php-pdo \ 39 | php-json \ 40 | php-common \ 41 | php-devel \ 42 | php-pecl-psr \ 43 | php-pecl-psr-devel \ 44 | && for p in cli pdo json common devel; do yum info php-${p} | egrep "Name|Version" && echo; done \ 45 | && yum clean all \ 46 | && rm -rf /tmp/* /var/tmp/* \ 47 | && find /var/cache -type f -delete \ 48 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 49 | -------------------------------------------------------------------------------- /build/centos7-ius71/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:centos7 2 | 3 | LABEL description="Docker images to build Phalcon on CentOS 7" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.centos7-ius71" 7 | 8 | # This image has disabled `centos-sclo-rh-source' repo in the 9 | # /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo 10 | # 11 | # The `yum-builddep' from `yum-utils' package, for some unknown to me 12 | # reason, enable all source repos for corresponding binary repos. 13 | # 14 | # For example it enables `centos-sclo-rh-source'. But in fact this repo 15 | # has wrong base url and this lead to an error: 16 | # 17 | # http://vault.centos.org/centos/7/sclo/Source/rh/repodata/repomd.xml: 18 | # [Errno 14] HTTP Error 404 - Not Found 19 | 20 | RUN curl -s https://setup.ius.io | bash \ 21 | && yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm \ 22 | && yum install -y centos-release-scl \ 23 | && yum-config-manager --enable centos-sclo-sclo-testing \ 24 | && yum -y install devtoolset-7-gcc \ 25 | && echo "source /opt/rh/devtoolset-7/enable" | tee -a /etc/bashrc \ 26 | && echo "source /opt/rh/devtoolset-7/enable" | tee -a /etc/profile \ 27 | && source /opt/rh/devtoolset-7/enable \ 28 | && gcc --version \ 29 | && ln -sf /opt/rh/devtoolset-7/root/usr/bin/gcc /usr/bin/gcc \ 30 | && awk \ 31 | '/centos-sclo-rh-source/{f=1} f>6{f=0} f{f++; $0="# " $0} 1' \ 32 | /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo > repo.patch \ 33 | && mv repo.patch /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo \ 34 | && yum-config-manager --enable remi-php71 \ 35 | && yum -y install \ 36 | pcre-devel \ 37 | php-cli \ 38 | php-pdo \ 39 | php-json \ 40 | php-common \ 41 | php-devel \ 42 | php-pecl-psr \ 43 | php-pecl-psr-devel \ 44 | && for p in cli pdo json common devel; do yum info php-${p} | egrep "Name|Version" && echo; done \ 45 | && yum clean all \ 46 | && rm -rf /tmp/* /var/tmp/* \ 47 | && find /var/cache -type f -delete \ 48 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 49 | -------------------------------------------------------------------------------- /build/centos7-ius72/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:centos7 2 | 3 | LABEL description="Docker images to build Phalcon on CentOS 7" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.centos7-ius72" 7 | 8 | # This image has disabled `centos-sclo-rh-source' repo in the 9 | # /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo 10 | # 11 | # The `yum-builddep' from `yum-utils' package, for some unknown to me 12 | # reason, enable all source repos for corresponding binary repos. 13 | # 14 | # For example it enables `centos-sclo-rh-source'. But in fact this repo 15 | # has wrong base url and this lead to an error: 16 | # 17 | # http://vault.centos.org/centos/7/sclo/Source/rh/repodata/repomd.xml: 18 | # [Errno 14] HTTP Error 404 - Not Found 19 | 20 | RUN curl -s https://setup.ius.io | bash \ 21 | && yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm \ 22 | && yum install -y centos-release-scl \ 23 | && yum-config-manager --enable centos-sclo-sclo-testing \ 24 | && yum -y install devtoolset-7-gcc \ 25 | && echo "source /opt/rh/devtoolset-7/enable" | tee -a /etc/bashrc \ 26 | && echo "source /opt/rh/devtoolset-7/enable" | tee -a /etc/profile \ 27 | && source /opt/rh/devtoolset-7/enable \ 28 | && gcc --version \ 29 | && ln -sf /opt/rh/devtoolset-7/root/usr/bin/gcc /usr/bin/gcc \ 30 | && awk \ 31 | '/centos-sclo-rh-source/{f=1} f>6{f=0} f{f++; $0="# " $0} 1' \ 32 | /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo > repo.patch \ 33 | && mv repo.patch /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo \ 34 | && yum-config-manager --enable remi-php72 \ 35 | && yum -y install \ 36 | pcre-devel \ 37 | php-cli \ 38 | php-pdo \ 39 | php-json \ 40 | php-common \ 41 | php-devel \ 42 | php-pecl-psr \ 43 | php-pecl-psr-devel \ 44 | && for p in cli pdo json common devel; do yum info php-${p} | egrep "Name|Version" && echo; done \ 45 | && yum clean all \ 46 | && rm -rf /tmp/* /var/tmp/* \ 47 | && find /var/cache -type f -delete \ 48 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 49 | -------------------------------------------------------------------------------- /build/centos7-ius73/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:centos7 2 | 3 | LABEL description="Docker images to build Phalcon on CentOS 7" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.centos7-ius73" 7 | 8 | # This image has disabled `centos-sclo-rh-source' repo in the 9 | # /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo 10 | # 11 | # The `yum-builddep' from `yum-utils' package, for some unknown to me 12 | # reason, enable all source repos for corresponding binary repos. 13 | # 14 | # For example it enables `centos-sclo-rh-source'. But in fact this repo 15 | # has wrong base url and this lead to an error: 16 | # 17 | # http://vault.centos.org/centos/7/sclo/Source/rh/repodata/repomd.xml: 18 | # [Errno 14] HTTP Error 404 - Not Found 19 | 20 | RUN yum upgrade -y \ 21 | && curl -s https://setup.ius.io | bash \ 22 | && yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm \ 23 | && yum install -y centos-release-scl \ 24 | && yum-config-manager --enable centos-sclo-sclo-testing \ 25 | && yum -y install devtoolset-7-gcc \ 26 | && echo "source /opt/rh/devtoolset-7/enable" | tee -a /etc/bashrc \ 27 | && echo "source /opt/rh/devtoolset-7/enable" | tee -a /etc/profile \ 28 | && source /opt/rh/devtoolset-7/enable \ 29 | && gcc --version \ 30 | && ln -sf /opt/rh/devtoolset-7/root/usr/bin/gcc /usr/bin/gcc \ 31 | && awk \ 32 | '/centos-sclo-rh-source/{f=1} f>6{f=0} f{f++; $0="# " $0} 1' \ 33 | /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo > repo.patch \ 34 | && mv repo.patch /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo \ 35 | && yum-config-manager --enable remi-php73 \ 36 | && yum -y install \ 37 | pcre-devel \ 38 | php-cli \ 39 | php-pdo \ 40 | php-json \ 41 | php-common \ 42 | php-devel \ 43 | php-pecl-psr \ 44 | php-pecl-psr-devel \ 45 | && for p in cli pdo json common devel; do yum info php-${p} | egrep "Name|Version" && echo; done \ 46 | && yum clean all \ 47 | && rm -rf /tmp/* /var/tmp/* \ 48 | && find /var/cache -type f -delete \ 49 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 50 | -------------------------------------------------------------------------------- /build/centos7-ius74/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:centos7 2 | 3 | LABEL description="Docker images to build Phalcon on CentOS 7" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.centos7-ius74" 7 | 8 | # This image has disabled `centos-sclo-rh-source' repo in the 9 | # /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo 10 | # 11 | # The `yum-builddep' from `yum-utils' package, for some unknown to me 12 | # reason, enable all source repos for corresponding binary repos. 13 | # 14 | # For example it enables `centos-sclo-rh-source'. But in fact this repo 15 | # has wrong base url and this lead to an error: 16 | # 17 | # http://vault.centos.org/centos/7/sclo/Source/rh/repodata/repomd.xml: 18 | # [Errno 14] HTTP Error 404 - Not Found 19 | 20 | RUN curl -s https://setup.ius.io | bash \ 21 | && yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm \ 22 | && yum install -y centos-release-scl \ 23 | && yum-config-manager --enable centos-sclo-sclo-testing \ 24 | && yum -y install devtoolset-7-gcc \ 25 | && echo "source /opt/rh/devtoolset-7/enable" | tee -a /etc/bashrc \ 26 | && echo "source /opt/rh/devtoolset-7/enable" | tee -a /etc/profile \ 27 | && source /opt/rh/devtoolset-7/enable \ 28 | && gcc --version \ 29 | && ln -sf /opt/rh/devtoolset-7/root/usr/bin/gcc /usr/bin/gcc \ 30 | && awk \ 31 | '/centos-sclo-rh-source/{f=1} f>6{f=0} f{f++; $0="# " $0} 1' \ 32 | /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo > repo.patch \ 33 | && mv repo.patch /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo \ 34 | && yum-config-manager --enable remi-php74 \ 35 | && yum -y install \ 36 | pcre-devel \ 37 | php-cli \ 38 | php-pdo \ 39 | php-json \ 40 | php-common \ 41 | php-devel \ 42 | php-pecl-psr \ 43 | php-pecl-psr-devel \ 44 | && for p in cli pdo json common devel; do yum info php-${p} | egrep "Name|Version" && echo; done \ 45 | && yum clean all \ 46 | && rm -rf /tmp/* /var/tmp/* \ 47 | && find /var/cache -type f -delete \ 48 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 49 | 50 | -------------------------------------------------------------------------------- /build/centos7/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/bootstrap:centos-7 2 | 3 | LABEL description="Docker images to build Phalcon on CentOS 7" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.centos7" 7 | 8 | RUN yum upgrade -y \ 9 | && yum -y install \ 10 | autoconf \ 11 | automake \ 12 | binutils \ 13 | binutils-devel \ 14 | dnf \ 15 | dnf-plugins-core \ 16 | git \ 17 | gnupg \ 18 | libtool \ 19 | make \ 20 | patch \ 21 | perl-Test-Harness \ 22 | pkgconfig \ 23 | pygpgme \ 24 | re2c \ 25 | redhat-rpm-config \ 26 | rpm-build \ 27 | rpm-sign \ 28 | rpmdevtools \ 29 | scl-utils \ 30 | scl-utils-build \ 31 | sudo \ 32 | wget \ 33 | yum-utils \ 34 | zlib-devel \ 35 | && sed -i.bak -n -e '/^Defaults.*requiretty/ { s/^/# /;};/^%wheel.*ALL$/ { s/^/# / ;} ;/^#.*wheel.*NOPASSWD/ { s/^#[ ]*//;};p' /etc/sudoers \ 36 | && yum clean all \ 37 | && rm -rf /tmp/* /var/tmp/* \ 38 | && find /var/cache -type f -delete \ 39 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 40 | -------------------------------------------------------------------------------- /build/debian-bullseye-7.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:debian-bullseye 2 | 3 | LABEL description="Docker image to build Phalcon on Debian Buster" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.bullseye-7.4" 7 | 8 | # TODO: Move locale stuff to the base image 9 | RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \ 10 | && echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list \ 11 | && apt-get update \ 12 | && apt-get install --no-install-recommends -yq \ 13 | php7.4-dev \ 14 | php7.4-common \ 15 | php7.4-cli \ 16 | && apt-get autoremove -y \ 17 | && apt-get autoclean -y \ 18 | && apt-get clean -y \ 19 | && rm -rf /tmp/* /var/tmp/* \ 20 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 21 | && find /var/cache -type f -delete \ 22 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 23 | -------------------------------------------------------------------------------- /build/debian-bullseye/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/bootstrap:debian-11 2 | 3 | LABEL description="Docker image to build Phalcon on Debian Buster" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.bullseye" 7 | 8 | RUN apt-get update \ 9 | && echo "LC_ALL=en_US.UTF-8" >> /etc/environment \ 10 | && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ 11 | && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ 12 | && locale-gen en_US.UTF-8 \ 13 | && apt-get install --no-install-recommends -yq \ 14 | build-essential \ 15 | gdb \ 16 | gnupg \ 17 | wget \ 18 | git \ 19 | ccache \ 20 | devscripts \ 21 | debhelper \ 22 | fakeroot \ 23 | cdbs \ 24 | equivs \ 25 | rpm \ 26 | alien \ 27 | sudo \ 28 | cmake \ 29 | libreadline-dev \ 30 | libyaml-dev \ 31 | binutils-dev \ 32 | zlib1g-dev \ 33 | doxygen \ 34 | && echo '%adm ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \ 35 | && apt-get autoremove -y \ 36 | && apt-get autoclean -y \ 37 | && apt-get clean -y \ 38 | && rm -rf /tmp/* /var/tmp/* \ 39 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 40 | && find /var/cache -type f -delete \ 41 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 42 | -------------------------------------------------------------------------------- /build/debian-buster-7.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:debian-buster 2 | 3 | LABEL description="Docker image to build Phalcon on Debian Buster" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.buster-7.3" 7 | 8 | RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \ 9 | && echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list \ 10 | && apt-get update \ 11 | && apt-get install --no-install-recommends -yq \ 12 | php7.3-dev \ 13 | php7.3-common \ 14 | php7.3-cli \ 15 | && apt-get autoremove -y \ 16 | && apt-get autoclean -y \ 17 | && apt-get clean -y \ 18 | && rm -rf /tmp/* /var/tmp/* \ 19 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 20 | && find /var/cache -type f -delete \ 21 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 22 | -------------------------------------------------------------------------------- /build/debian-buster-7.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:debian-buster 2 | 3 | LABEL description="Docker image to build Phalcon on Debian Buster" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.buster-7.4" 7 | 8 | # TODO: Move locale stuff to the base image 9 | RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \ 10 | && echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list \ 11 | && apt-get update \ 12 | && apt-get install --no-install-recommends -yq \ 13 | php7.4-dev \ 14 | php7.4-common \ 15 | php7.4-cli \ 16 | && apt-get autoremove -y \ 17 | && apt-get autoclean -y \ 18 | && apt-get clean -y \ 19 | && rm -rf /tmp/* /var/tmp/* \ 20 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 21 | && find /var/cache -type f -delete \ 22 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 23 | -------------------------------------------------------------------------------- /build/debian-buster/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/bootstrap:debian-10 2 | 3 | LABEL description="Docker image to build Phalcon on Debian Buster" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.buster" 7 | 8 | RUN apt-get update \ 9 | && echo "LC_ALL=en_US.UTF-8" >> /etc/environment \ 10 | && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ 11 | && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ 12 | && locale-gen en_US.UTF-8 \ 13 | && apt-get install --no-install-recommends -yq \ 14 | build-essential \ 15 | gdb \ 16 | gnupg \ 17 | wget \ 18 | git \ 19 | ccache \ 20 | devscripts \ 21 | debhelper \ 22 | fakeroot \ 23 | cdbs \ 24 | equivs \ 25 | rpm \ 26 | alien \ 27 | sudo \ 28 | cmake \ 29 | libreadline-dev \ 30 | libyaml-dev \ 31 | binutils-dev \ 32 | zlib1g-dev \ 33 | doxygen \ 34 | && echo '%adm ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \ 35 | && apt-get autoremove -y \ 36 | && apt-get autoclean -y \ 37 | && apt-get clean -y \ 38 | && rm -rf /tmp/* /var/tmp/* \ 39 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 40 | && find /var/cache -type f -delete \ 41 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 42 | -------------------------------------------------------------------------------- /build/debian-stretch-7.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:debian-stretch 2 | 3 | LABEL description="Docker image to build Phalcon on Debian Stretch" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.stretch-7.1" 7 | 8 | RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \ 9 | && echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list \ 10 | && echo "LC_ALL=en_US.UTF-8" >> /etc/environment \ 11 | && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ 12 | && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ 13 | && locale-gen en_US.UTF-8 \ 14 | && apt-get update \ 15 | && apt-get install --no-install-recommends -yq \ 16 | php7.1-dev \ 17 | php7.1-common \ 18 | php7.1-cli \ 19 | && apt-get autoremove -y \ 20 | && apt-get autoclean -y \ 21 | && apt-get clean -y \ 22 | && rm -rf /tmp/* /var/tmp/* \ 23 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 24 | && find /var/cache -type f -delete \ 25 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 26 | -------------------------------------------------------------------------------- /build/debian-stretch-7.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:debian-stretch 2 | 3 | LABEL description="Docker image to build Phalcon on Debian Stretch" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.stretch-7.2" 7 | 8 | RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \ 9 | && echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list \ 10 | && echo "LC_ALL=en_US.UTF-8" >> /etc/environment \ 11 | && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ 12 | && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ 13 | && locale-gen en_US.UTF-8 \ 14 | && apt-get update \ 15 | && apt-get install --no-install-recommends -yq \ 16 | php7.2-dev \ 17 | php7.2-common \ 18 | php7.2-cli \ 19 | && apt-get autoremove -y \ 20 | && apt-get autoclean -y \ 21 | && apt-get clean -y \ 22 | && rm -rf /tmp/* /var/tmp/* \ 23 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 24 | && find /var/cache -type f -delete \ 25 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 26 | -------------------------------------------------------------------------------- /build/debian-stretch-7.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:debian-stretch 2 | 3 | LABEL description="Docker image to build Phalcon on Debian Stretch" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.stretch-7.3" 7 | 8 | RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \ 9 | && echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list \ 10 | && echo "LC_ALL=en_US.UTF-8" >> /etc/environment \ 11 | && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ 12 | && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ 13 | && locale-gen en_US.UTF-8 \ 14 | && apt-get update \ 15 | && apt-get install --no-install-recommends -yq \ 16 | php7.3-dev \ 17 | php7.3-common \ 18 | php7.3-cli \ 19 | && apt-get autoremove -y \ 20 | && apt-get autoclean -y \ 21 | && apt-get clean -y \ 22 | && rm -rf /tmp/* /var/tmp/* \ 23 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 24 | && find /var/cache -type f -delete \ 25 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 26 | -------------------------------------------------------------------------------- /build/debian-stretch-7.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:debian-stretch 2 | 3 | LABEL description="Docker image to build Phalcon on Debian Stretch" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.stretch-7.4" 7 | 8 | RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \ 9 | && echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list \ 10 | && echo "LC_ALL=en_US.UTF-8" >> /etc/environment \ 11 | && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ 12 | && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ 13 | && locale-gen en_US.UTF-8 \ 14 | && apt-get update \ 15 | && apt-get install --no-install-recommends -yq \ 16 | php7.4-dev \ 17 | php7.4-common \ 18 | php7.4-cli \ 19 | && apt-get autoremove -y \ 20 | && apt-get autoclean -y \ 21 | && apt-get clean -y \ 22 | && rm -rf /tmp/* /var/tmp/* \ 23 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 24 | && find /var/cache -type f -delete \ 25 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 26 | -------------------------------------------------------------------------------- /build/debian-stretch/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/bootstrap:debian-9 2 | 3 | LABEL description="Docker image to build Phalcon on Debian Stretch" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.stretch" 7 | 8 | RUN apt-get update \ 9 | && apt-get install --no-install-recommends -yq \ 10 | build-essential \ 11 | gdb \ 12 | gnupg \ 13 | wget \ 14 | git \ 15 | curl \ 16 | ccache \ 17 | devscripts \ 18 | debhelper \ 19 | fakeroot \ 20 | cdbs \ 21 | equivs \ 22 | rpm \ 23 | alien \ 24 | sudo \ 25 | cmake \ 26 | libreadline-dev \ 27 | libyaml-dev \ 28 | binutils-dev \ 29 | zlib1g-dev \ 30 | doxygen \ 31 | && echo '%adm ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \ 32 | && apt-get autoremove -y \ 33 | && apt-get autoclean -y \ 34 | && apt-get clean -y \ 35 | && rm -rf /tmp/* /var/tmp/* \ 36 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 37 | && find /var/cache -type f -delete \ 38 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 39 | -------------------------------------------------------------------------------- /build/ubuntu-bionic-7.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-bionic 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 18.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.bionic-7.1" 7 | 8 | RUN apt-get update \ 9 | && apt-get install --no-install-recommends -yq \ 10 | php7.1-dev \ 11 | php7.1-common \ 12 | php7.1-cli \ 13 | && apt-get autoremove -y \ 14 | && apt-get autoclean -y \ 15 | && apt-get clean -y \ 16 | && rm -rf /tmp/* /var/tmp/* \ 17 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 18 | && find /var/cache -type f -delete \ 19 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 20 | -------------------------------------------------------------------------------- /build/ubuntu-bionic-7.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-bionic 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 18.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.bionic-7.2" 7 | 8 | RUN apt-get update \ 9 | && apt-get install --no-install-recommends -yq \ 10 | php7.2-dev \ 11 | php7.2-common \ 12 | php7.2-cli \ 13 | && apt-get autoremove -y \ 14 | && apt-get autoclean -y \ 15 | && apt-get clean -y \ 16 | && rm -rf /tmp/* /var/tmp/* \ 17 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 18 | && find /var/cache -type f -delete \ 19 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 20 | -------------------------------------------------------------------------------- /build/ubuntu-bionic-7.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-bionic 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 18.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.bionic-7.3" 7 | 8 | RUN apt-get update \ 9 | && apt-get install --no-install-recommends -yq \ 10 | php7.3-dev \ 11 | php7.3-common \ 12 | php7.3-cli \ 13 | && apt-get autoremove -y \ 14 | && apt-get autoclean -y \ 15 | && apt-get clean -y \ 16 | && rm -rf /tmp/* /var/tmp/* \ 17 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 18 | && find /var/cache -type f -delete \ 19 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 20 | -------------------------------------------------------------------------------- /build/ubuntu-bionic-7.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-bionic 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 18.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.bionic-7.4" 7 | 8 | RUN apt-get update \ 9 | && apt-get install --no-install-recommends -yq \ 10 | php7.4-dev \ 11 | php7.4-common \ 12 | php7.4-cli \ 13 | && apt-get autoremove -y \ 14 | && apt-get autoclean -y \ 15 | && apt-get clean -y \ 16 | && rm -rf /tmp/* /var/tmp/* \ 17 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 18 | && find /var/cache -type f -delete \ 19 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 20 | -------------------------------------------------------------------------------- /build/ubuntu-bionic/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/bootstrap:ubuntu-18.04 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 18.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.bionic" 7 | 8 | RUN LC_ALL=en_US.UTF-8 apt-add-repository -y ppa:ondrej/php \ 9 | && apt clean -y \ 10 | && apt update -y \ 11 | && echo "LC_ALL=en_US.UTF-8" >> /etc/environment \ 12 | && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ 13 | && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ 14 | && locale-gen en_US.UTF-8 \ 15 | && apt upgrade -y \ 16 | && apt install --no-install-recommends -yq \ 17 | build-essential \ 18 | curl \ 19 | gdb \ 20 | gnupg \ 21 | wget \ 22 | git \ 23 | ccache \ 24 | devscripts \ 25 | debhelper \ 26 | fakeroot \ 27 | cdbs \ 28 | equivs \ 29 | rpm \ 30 | alien \ 31 | sudo \ 32 | cmake \ 33 | libreadline-dev \ 34 | libyaml-dev \ 35 | binutils-dev \ 36 | zlib1g-dev \ 37 | doxygen \ 38 | && echo '%adm ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \ 39 | && apt-get autoremove -y \ 40 | && apt-get autoclean -y \ 41 | && apt-get clean -y \ 42 | && rm -rf /tmp/* /var/tmp/* \ 43 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 44 | && find /var/cache -type f -delete \ 45 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 46 | -------------------------------------------------------------------------------- /build/ubuntu-focal-7.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-focal 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 20.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.focal-7.2" 7 | 8 | RUN apt-get update \ 9 | && apt-get install --no-install-recommends -yq \ 10 | php7.2-dev \ 11 | php7.2-common \ 12 | php7.2-cli \ 13 | && apt-get autoremove -y \ 14 | && apt-get autoclean -y \ 15 | && apt-get clean -y \ 16 | && rm -rf /tmp/* /var/tmp/* \ 17 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 18 | && find /var/cache -type f -delete \ 19 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 20 | -------------------------------------------------------------------------------- /build/ubuntu-focal-7.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-focal 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 20.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.focal-7.3" 7 | 8 | RUN apt-get update \ 9 | && apt-get install --no-install-recommends -yq \ 10 | php7.3-dev \ 11 | php7.3-common \ 12 | php7.3-cli \ 13 | && apt-get autoremove -y \ 14 | && apt-get autoclean -y \ 15 | && apt-get clean -y \ 16 | && rm -rf /tmp/* /var/tmp/* \ 17 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 18 | && find /var/cache -type f -delete \ 19 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 20 | -------------------------------------------------------------------------------- /build/ubuntu-focal-7.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-focal 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 20.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.focal-7.4" 7 | 8 | RUN apt-get update \ 9 | && apt-get install --no-install-recommends -yq \ 10 | php7.4-dev \ 11 | php7.4-common \ 12 | php7.4-cli \ 13 | && apt-get autoremove -y \ 14 | && apt-get autoclean -y \ 15 | && apt-get clean -y \ 16 | && rm -rf /tmp/* /var/tmp/* \ 17 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 18 | && find /var/cache -type f -delete \ 19 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 20 | -------------------------------------------------------------------------------- /build/ubuntu-focal-8.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-focal 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 20.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.focal-8.0" 7 | 8 | RUN apt-get update \ 9 | && apt-get install --no-install-recommends -yq \ 10 | php8.0-dev \ 11 | php8.0-common \ 12 | php8.0-cli \ 13 | && apt-get autoremove -y \ 14 | && apt-get autoclean -y \ 15 | && apt-get clean -y \ 16 | && rm -rf /tmp/* /var/tmp/* \ 17 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 18 | && find /var/cache -type f -delete \ 19 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 20 | -------------------------------------------------------------------------------- /build/ubuntu-focal/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/bootstrap:ubuntu-20.04 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 20.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.focal" 7 | 8 | RUN LC_ALL=en_US.UTF-8 apt-add-repository -y ppa:ondrej/php \ 9 | && apt clean -y \ 10 | && apt update -y \ 11 | && echo "LC_ALL=en_US.UTF-8" >> /etc/environment \ 12 | && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ 13 | && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ 14 | && locale-gen en_US.UTF-8 \ 15 | && apt upgrade -y \ 16 | && apt install --no-install-recommends -yq \ 17 | build-essential \ 18 | curl \ 19 | gdb \ 20 | gnupg \ 21 | wget \ 22 | git \ 23 | ccache \ 24 | devscripts \ 25 | debhelper \ 26 | fakeroot \ 27 | cdbs \ 28 | equivs \ 29 | rpm \ 30 | alien \ 31 | sudo \ 32 | cmake \ 33 | libreadline-dev \ 34 | libyaml-dev \ 35 | binutils-dev \ 36 | zlib1g-dev \ 37 | doxygen \ 38 | && echo '%adm ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \ 39 | && apt-get autoremove -y \ 40 | && apt-get autoclean -y \ 41 | && apt-get clean -y \ 42 | && rm -rf /tmp/* /var/tmp/* \ 43 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 44 | && find /var/cache -type f -delete \ 45 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 46 | -------------------------------------------------------------------------------- /build/ubuntu-groovy-7.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-groovy 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 20.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.groovy-7.3" 7 | 8 | RUN apt-get update \ 9 | && apt-get install --no-install-recommends -yq \ 10 | php7.3-dev \ 11 | php7.3-common \ 12 | php7.3-cli \ 13 | && apt-get autoremove -y \ 14 | && apt-get autoclean -y \ 15 | && apt-get clean -y \ 16 | && rm -rf /tmp/* /var/tmp/* \ 17 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 18 | && find /var/cache -type f -delete \ 19 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 20 | -------------------------------------------------------------------------------- /build/ubuntu-groovy-7.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-groovy 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 20.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.groovy-7.4" 7 | 8 | RUN apt-get update \ 9 | && apt-get install --no-install-recommends -yq \ 10 | php7.4-dev \ 11 | php7.4-common \ 12 | php7.4-cli \ 13 | && apt-get autoremove -y \ 14 | && apt-get autoclean -y \ 15 | && apt-get clean -y \ 16 | && rm -rf /tmp/* /var/tmp/* \ 17 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 18 | && find /var/cache -type f -delete \ 19 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 20 | -------------------------------------------------------------------------------- /build/ubuntu-groovy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/bootstrap:ubuntu-20.10 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 20.10" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.groovy" 7 | 8 | RUN apt update -y && apt install -yq gpg-agent && \ 9 | LC_ALL=en_US.UTF-8 apt-add-repository -y ppa:ondrej/php \ 10 | && apt clean -y \ 11 | && apt update -y \ 12 | && echo "LC_ALL=en_US.UTF-8" >> /etc/environment \ 13 | && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ 14 | && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ 15 | && locale-gen en_US.UTF-8 \ 16 | && apt upgrade -y \ 17 | && apt install --no-install-recommends -yq \ 18 | build-essential \ 19 | curl \ 20 | gdb \ 21 | gnupg \ 22 | wget \ 23 | git \ 24 | ccache \ 25 | devscripts \ 26 | debhelper \ 27 | fakeroot \ 28 | cdbs \ 29 | equivs \ 30 | rpm \ 31 | alien \ 32 | sudo \ 33 | cmake \ 34 | libreadline-dev \ 35 | libyaml-dev \ 36 | binutils-dev \ 37 | zlib1g-dev \ 38 | doxygen \ 39 | && echo '%adm ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \ 40 | && apt-get autoremove -y \ 41 | && apt-get autoclean -y \ 42 | && apt-get clean -y \ 43 | && rm -rf /tmp/* /var/tmp/* \ 44 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 45 | && find /var/cache -type f -delete \ 46 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 47 | -------------------------------------------------------------------------------- /build/ubuntu-trusty-7.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-trusty 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 14.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.trusty-7.0" 7 | 8 | ONBUILD RUN echo "Ubuntu 14.04 is no longer supported by ppa:ondrej/php maintainers" 9 | 10 | RUN LC_ALL=en_US.UTF-8 apt-add-repository -y ppa:ondrej/php \ 11 | && apt-get clean -y \ 12 | && apt-get update -y \ 13 | && apt-get upgrade -y \ 14 | && apt-get install --no-install-recommends -yq \ 15 | php7.0-dev \ 16 | php7.0-common \ 17 | php7.0-cli \ 18 | && apt-get autoremove -y \ 19 | && apt-get clean -y \ 20 | && rm -rf /tmp/* /var/tmp/* \ 21 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 22 | && find /var/cache -type f -delete \ 23 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 24 | -------------------------------------------------------------------------------- /build/ubuntu-trusty-7.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-trusty 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 14.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.trusty-7.1" 7 | 8 | ONBUILD RUN echo "Ubuntu 14.04 is no longer supported by ppa:ondrej/php maintainers" 9 | 10 | RUN LC_ALL=en_US.UTF-8 apt-add-repository -y ppa:ondrej/php \ 11 | && apt-get clean -y \ 12 | && apt-get update -y \ 13 | && apt-get upgrade -y \ 14 | && apt-get install --no-install-recommends -yq \ 15 | php7.1-dev \ 16 | php7.1-common \ 17 | php7.1-cli \ 18 | && apt-get autoremove -y \ 19 | && apt-get clean -y \ 20 | && rm -rf /tmp/* /var/tmp/* \ 21 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 22 | && find /var/cache -type f -delete \ 23 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 24 | -------------------------------------------------------------------------------- /build/ubuntu-trusty-7.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-trusty 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 14.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.trusty-7.2" 7 | 8 | ONBUILD RUN echo "Ubuntu 14.04 is no longer supported by ppa:ondrej/php maintainers" 9 | 10 | RUN LC_ALL=en_US.UTF-8 apt-add-repository -y ppa:ondrej/php \ 11 | && apt-get clean -y \ 12 | && apt-get update -y \ 13 | && apt-get upgrade -y \ 14 | && apt-get install --no-install-recommends -yq \ 15 | php7.2-dev \ 16 | php7.2-common \ 17 | php7.2-cli \ 18 | && apt-get autoremove -y \ 19 | && apt-get clean -y \ 20 | && rm -rf /tmp/* /var/tmp/* \ 21 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 22 | && find /var/cache -type f -delete \ 23 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 24 | -------------------------------------------------------------------------------- /build/ubuntu-trusty-7.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-trusty 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 14.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.trusty-7.3" 7 | 8 | ONBUILD RUN echo "Ubuntu 14.04 is no longer supported by ppa:ondrej/php maintainers" 9 | 10 | RUN LC_ALL=en_US.UTF-8 apt-add-repository -y ppa:ondrej/php \ 11 | && apt-get clean -y \ 12 | && apt-get update -y \ 13 | && apt-get upgrade -y \ 14 | && apt-get install --no-install-recommends -yq \ 15 | php7.3-dev \ 16 | php7.3-common \ 17 | php7.3-cli \ 18 | && apt-get autoremove -y \ 19 | && apt-get clean -y \ 20 | && rm -rf /tmp/* /var/tmp/* \ 21 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 22 | && find /var/cache -type f -delete \ 23 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 24 | -------------------------------------------------------------------------------- /build/ubuntu-trusty/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/bootstrap:ubuntu-14.04 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 14.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.trusty" 7 | 8 | # A hack to prevent running udev triggers 9 | COPY ./provision.d / 10 | RUN chmod +x /usr/sbin/policy-rc.d \ 11 | && dpkg-divert --local --rename --add /sbin/initctl \ 12 | && ln -sf /bin/true /sbin/initctl 13 | 14 | RUN apt-get clean -y \ 15 | && apt-get update -y \ 16 | && apt-get upgrade -y \ 17 | && apt-get install --no-install-recommends -yq \ 18 | alien \ 19 | binutils-dev \ 20 | ccache \ 21 | cdbs \ 22 | cmake \ 23 | curl \ 24 | debhelper \ 25 | devscripts \ 26 | doxygen \ 27 | equivs \ 28 | fakeroot \ 29 | gdb \ 30 | gdebi-core \ 31 | git \ 32 | gnupg \ 33 | libpcre3-dev \ 34 | libreadline-dev \ 35 | libyaml-dev \ 36 | re2c \ 37 | rpm \ 38 | sudo \ 39 | wget \ 40 | zlib1g-dev \ 41 | && echo '%adm ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \ 42 | && wget -qO - https://packagecloud.io/phalcon/stable/gpgkey | apt-key add - \ 43 | && apt-get autoremove -y \ 44 | && apt-get clean -y \ 45 | && rm -rf /tmp/* /var/tmp/* \ 46 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 47 | && find /var/cache -type f -delete \ 48 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 49 | -------------------------------------------------------------------------------- /build/ubuntu-trusty/provision.d/usr/sbin/policy-rc.d: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exit 101 3 | -------------------------------------------------------------------------------- /build/ubuntu-xenial-7.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-xenial 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 16.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.xenial-7.1" 7 | 8 | RUN LC_ALL=en_US.UTF-8 apt-add-repository -y ppa:ondrej/php \ 9 | && apt-get update \ 10 | && apt-get install --no-install-recommends -yq \ 11 | php7.1-dev \ 12 | php7.1-common \ 13 | php7.1-cli \ 14 | && apt-get autoremove -y \ 15 | && apt-get autoclean -y \ 16 | && apt-get clean -y \ 17 | && rm -rf /tmp/* /var/tmp/* \ 18 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 19 | && find /var/cache -type f -delete \ 20 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 21 | -------------------------------------------------------------------------------- /build/ubuntu-xenial-7.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-xenial 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 16.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.xenial-7.2" 7 | 8 | RUN LC_ALL=en_US.UTF-8 apt-add-repository -y ppa:ondrej/php \ 9 | && apt-get update \ 10 | && apt-get install --no-install-recommends -yq \ 11 | php7.2-dev \ 12 | php7.2-common \ 13 | php7.2-cli \ 14 | && apt-get autoremove -y \ 15 | && apt-get autoclean -y \ 16 | && apt-get clean -y \ 17 | && rm -rf /tmp/* /var/tmp/* \ 18 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 19 | && find /var/cache -type f -delete \ 20 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 21 | -------------------------------------------------------------------------------- /build/ubuntu-xenial-7.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-xenial 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 16.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.xenial-7.3" 7 | 8 | RUN LC_ALL=en_US.UTF-8 apt-add-repository -y ppa:ondrej/php \ 9 | && apt-get update \ 10 | && apt-get install --no-install-recommends -yq \ 11 | php7.3-dev \ 12 | php7.3-common \ 13 | php7.3-cli \ 14 | && apt-get autoremove -y \ 15 | && apt-get autoclean -y \ 16 | && apt-get clean -y \ 17 | && rm -rf /tmp/* /var/tmp/* \ 18 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 19 | && find /var/cache -type f -delete \ 20 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 21 | -------------------------------------------------------------------------------- /build/ubuntu-xenial-7.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/build:ubuntu-xenial 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 16.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.xenial-7.4" 7 | 8 | RUN LC_ALL=en_US.UTF-8 apt-add-repository -y ppa:ondrej/php \ 9 | && apt-get update \ 10 | && apt-get install --no-install-recommends -yq \ 11 | php7.4-dev \ 12 | php7.4-common \ 13 | php7.4-cli \ 14 | && apt-get autoremove -y \ 15 | && apt-get autoclean -y \ 16 | && apt-get clean -y \ 17 | && rm -rf /tmp/* /var/tmp/* \ 18 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 19 | && find /var/cache -type f -delete \ 20 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 21 | -------------------------------------------------------------------------------- /build/ubuntu-xenial/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM phalconphp/bootstrap:ubuntu-16.04 2 | 3 | LABEL description="Docker images to build Phalcon on Ubuntu 16.04" \ 4 | maintainer="Serghei Iakovlev " \ 5 | vendor=Phalcon \ 6 | name="com.phalconphp.images.build.xenial" 7 | 8 | RUN LC_ALL=en_US.UTF-8 apt-add-repository -y ppa:ondrej/php \ 9 | && apt clean -y \ 10 | && apt update -y \ 11 | && echo "LC_ALL=en_US.UTF-8" >> /etc/environment \ 12 | && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ 13 | && echo "LANG=en_US.UTF-8" > /etc/locale.conf \ 14 | && locale-gen en_US.UTF-8 \ 15 | && apt upgrade -y \ 16 | && apt install --no-install-recommends -yq \ 17 | build-essential \ 18 | gdb \ 19 | gnupg \ 20 | wget \ 21 | git \ 22 | ccache \ 23 | curl \ 24 | devscripts \ 25 | debhelper \ 26 | fakeroot \ 27 | cdbs \ 28 | equivs \ 29 | rpm \ 30 | alien \ 31 | sudo \ 32 | cmake \ 33 | libreadline-dev \ 34 | libyaml-dev \ 35 | binutils-dev \ 36 | zlib1g-dev \ 37 | doxygen \ 38 | && echo '%adm ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \ 39 | && apt-get autoremove -y \ 40 | && apt-get autoclean -y \ 41 | && apt-get clean -y \ 42 | && rm -rf /tmp/* /var/tmp/* \ 43 | && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ 44 | && find /var/cache -type f -delete \ 45 | && find /var/log -type f | while read f; do echo -n '' > ${f}; done 46 | --------------------------------------------------------------------------------