Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker images with php 8.1 #4

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions circleci/8.1.16-browsers/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
FROM cimg/php:8.1.16-browsers

USER root

RUN apt-get update

RUN apt-get install -y gdal-bin libmagickwand-dev

RUN pecl install imagick

RUN cd /tmp \
&& sudo wget "https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz" \
&& sudo tar xvf /tmp/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz \
&& sudo mv /tmp/wkhtmltox/bin/* /usr/local/bin \
&& sudo mv /tmp/wkhtmltox/include/* /usr/local/include \
&& sudo mv /tmp/wkhtmltox/lib/* /usr/local/lib \
&& sudo mkdir -p /usr/local/share/man/man1 \
&& sudo mv /tmp/wkhtmltox/share/man/man1/* /usr/local/share/man/man1 \
&& sudo rm -rf /usr/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz \
&& sudo rm -rf /usr/wkhtmltox

ADD php.ini /usr/local/etc/php/

RUN mkdir /app \
&& mkdir /var/jwt \
&& chown -R circleci /app \
&& chown -R circleci /var/jwt

USER circleci

RUN openssl genrsa -out /var/jwt/private_test.pem -aes256 -passout pass:wgp5foo 4096
RUN openssl rsa -passin pass:wgp5foo -pubout -in /var/jwt/private_test.pem -out /var/jwt/public_test.pem
175 changes: 175 additions & 0 deletions circleci/8.1.16-browsers/php.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
[PHP]
engine = On
short_open_tag = Off
asp_tags = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
disable_classes =
realpath_cache_size = 16k
;realpath_cache_ttl = 120
zend.enable_gc = On
expose_php = On

max_execution_time = 300
max_input_time = 60
;max_input_nesting_level = 64
max_input_vars = 5000
memory_limit = 512M

error_reporting = E_ALL & E_DEPRECATED & E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = On

variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 100M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
;default_charset = "UTF-8"

doc_root =
user_dir =
enable_dl = Off

file_uploads = On
;upload_tmp_dir =
upload_max_filesize = 100M
max_file_uploads = 20

allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60

opcache.revalidate_freq = 0

[CLI Server]
cli_server.color = On

[Date]
date.timezone = Europe/Amsterdam

[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock

[mail function]
SMTP = localhost
smtp_port = 25
;sendmail_path =
mail.add_x_header = On
;mail.log =

[SQL]
sql.safe_mode = Off

[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1

[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"

[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port = 3306
mysql.default_socket = /var/run/mysqld/mysqld.sock
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off

[MySQLi]
mysqli.max_persistent = -1
;mysqli.allow_local_infile = On
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket = /var/run/mysqld/mysqld.sock
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off

[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
;mysqlnd.net_cmd_buffer_size = 2048
;mysqlnd.net_read_buffer_size = 32768

[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0

[bcmath]
bcmath.scale = 0

[Session]
session.save_handler = files
;session.save_path = "/var/lib/php5"
session.use_cookies = 1
;session.cookie_secure =
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 604800
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
;session.entropy_length = 32
;session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
;session.upload_progress.enabled = On
;session.upload_progress.cleanup = On
;session.upload_progress.prefix = "upload_progress_"
;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"
;session.upload_progress.freq = "1%"
;session.upload_progress.min_freq = "1"

[ldap]
ldap.max_links = -1
39 changes: 39 additions & 0 deletions php-node/8.1/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
FROM php:8.1-fpm-buster

RUN apt-get update \
&& apt-get install -y gnupg

RUN curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list

RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - \
&& apt-get install -y nodejs

RUN apt-get update \
&& apt-get install -y postgresql-client-9.6 libjpeg62-turbo-dev libpng-dev libzip-dev \
libbz2-dev libfreetype6-dev libpq-dev libicu-dev unzip git wget gdal-bin \
libmagickwand-dev

RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) \
gd \
pdo_pgsql \
zip \
bcmath \
bz2 \
gettext \
intl \
sockets \
&& pecl install apcu \
&& docker-php-ext-enable apcu \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& pecl install redis-5.3.7 \
&& docker-php-ext-enable redis

RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
&& php -r "copy('https://composer.github.io/installer.sig', 'composer-setup.sig');" \
&& php -r "if (hash_file('SHA384', 'composer-setup.php') === trim(file_get_contents('composer-setup.sig'))) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \
&& php composer-setup.php --install-dir=/usr/local/bin --filename=composer \
&& php -r "unlink('composer-setup.php');"

13 changes: 13 additions & 0 deletions php-node/8.1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Wgp5 base image

Feel free to use for other symfony projects.


```
docker build -t nieuwlandgeo/wgp-base:latest .
# test
docker run -it nieuwlandgeo/wgp-base:latest bash
# publish
docker login
docker push nieuwlandgeo/wgp-base:latest
```