Sign inSign up

cmer81/ipboard

By cmer81

•Updated over 1 year ago

Docker nginx image for ipboard

Image
1

3.2K

cmer81/ipboard repository overview

⁠Docker Nginx image for Ipboard Invision Community

Ipboard

This container image includes PHP 8.1 and Nginx⁠ for Invision Community

⁠Description

PHP 8.1 available as container is a base platform for building and running various PHP 8.1 applications and frameworks.

ipboard Invision Community is not included in the container, for more information go to the website for download files Invision Community⁠.

⁠Usage


Example with local storage:

$ docker run -d --name ipboard -v "{your-ipboard-installation-files}":/app -e WEB_ALIAS_DOMAIN=mydomain.com cmer81/ipboard:latest

⁠Using an external database

By default this container does not contain the database for Ipboard. You need to use either an existing database or a database container.

The IPboard setup wizard (should appear on first run) allows connecting to an existing MySQL/MariaDB. You can also link a database container, e. g. --link my-mysql:mysql, and then use mysql as the database host on setup. More info is in the docker-compose section.

⁠Persistent data

The Ipboard installation and all data beyond what lives in the database (file uploads, etc) are stored in the unnamed docker volume⁠ volume /app. The docker daemon will store that data within the docker directory /var/lib/docker/volumes/.... That means your data is saved even if the container crashes, is stopped or deleted.

To make your data persistent to upgrading and get access for backups is using named docker volume or mount a host folder. To achieve this you need one volume for your database container and IPboard.

IPboard:

  • /app folder where all IPboard data lives
$ docker run -d \
    -p 443:443 -p 80:80 \
    -v ipboard_html:/app \
    cmer81/ipboard:latest

Database:

  • /var/lib/mysql MySQL / MariaDB Data
$ docker run -d \
    -v db:/var/lib/mysql \
    mariadb

⁠Build Your custom Usage

docker build --pull -t "ipboard" .

Accessing the application:

$ curl 127.0.0.1

⁠Environment variables

⁠PHP modules

As we build our images containing almost every PHP module and having it activated by default, you might want to deactivate some.

You can specify a comma-separated list of unwanted modules as dynamic env variable PHP_DISMOD, e.g. PHP_DISMOD=ioncube,redis.

⁠PHP.ini variables

You can specify eg. php.memory_limit=256M as dynamic env variable which will set memory_limit = 256M as php setting.

Environment variableDescriptionDefault
php.{setting-key}Sets the {setting-key} as php setting
PHP_DATE_TIMEZONEdate.timezoneUTC
PHP_DISPLAY_ERRORSdisplay_errors0
PHP_MEMORY_LIMITmemory_limit512M
PHP_MAX_EXECUTION_TIMEmax_execution_time300
PHP_POST_MAX_SIZEpost_max_size50M
PHP_UPLOAD_MAX_FILESIZEupload_max_filesize50M
PHP_OPCACHE_MEMORY_CONSUMPTIONopcache.memory_consumption256
PHP_OPCACHE_MAX_ACCELERATED_FILESopcache.max_accelerated_files7963
PHP_OPCACHE_VALIDATE_TIMESTAMPSopcache.validate_timestampsdefault
PHP_OPCACHE_REVALIDATE_FREQopcache.revalidate_freqdefault
PHP_OPCACHE_INTERNED_STRINGS_BUFFERopcache.interned_strings_buffer16
⁠PHP FPM variables

You can specify eg. fpm.pool.pm.max_requests=1000 as dyanmic env variable which will sets pm.max_requests = 1000 as fpm pool setting. The prefix fpm.pool is for pool settings and fpm.global for global master process settings.

Environment variableDescriptionDefault
fpm.global.{setting-key}Sets the {setting-key} as fpm global setting for the master process
fpm.pool.{setting-key}Sets the {setting-key} as fpm pool setting
FPM_PROCESS_MAXprocess.maxdistribution default
FPM_PM_MAX_CHILDRENpm.max_childrendistribution default
FPM_PM_START_SERVERSpm.start_serversdistribution default
FPM_PM_MIN_SPARE_SERVERSpm.min_spare_serversdistribution default
FPM_PM_MAX_SPARE_SERVERSpm.max_spare_serversdistribution default
FPM_PROCESS_IDLE_TIMEOUTpm.process_idle_timeoutdistribution default
FPM_MAX_REQUESTSpm.max_requestsdistribution default
FPM_REQUEST_TERMINATE_TIMEOUTrequest_terminate_timeoutdistribution default
FPM_RLIMIT_FILESrlimit_filesdistribution default
FPM_RLIMIT_CORErlimit_coredistribution default
⁠Web environment variables
Environment variableDescriptionDefault
WEB_DOCUMENT_ROOTDocument root for webserver/app
WEB_DOCUMENT_INDEXIndex documentindex.php
WEB_ALIAS_DOMAINDomain aliases*.vm
WEB_PHP_SOCKETPHP-FPM socket address127.0.0.1:9000
SERVICE_PHPFPM_OPTSPHP-FPM command argumentsempty
WEB_PHP_TIMEOUTWebserver PHP request600
SERVICE_NGINX_OPTSNginx command argumentsempty
SERVICE_NGINX_CLIENT_MAX_BODY_SIZENginx client_max_body_size50m

⁠Filesystem layout

DirectoryDescription
/opt/docker/etc/nginxNginx configuration
/opt/docker/etc/nginx/sslNginx ssl configuration with example server.crt, server.csr, server.key
FileDescription
/opt/docker/etc/nginx/main.confMain include file (will include global.conf, php.conf and vhost.conf)
/opt/docker/etc/nginx/global.confGlobal nginx configuration options
/opt/docker/etc/nginx/php.confPHP configuration (connection to FPM)
/opt/docker/etc/nginx/vhost.common.confVhost common stuff (placeholder)
/opt/docker/etc/nginx/vhost.confDefault vhost
/opt/docker/etc/nginx/vhost.ssl.confDefault ssl configuration for vhost
/opt/docker/etc/php/fpm/php-fpm.confPHP FPM daemon configuration
/opt/docker/etc/php/fpm/pool.d/application.confPHP FPM pool configuration
/opt/docker/etc/php/fpm/php-fpm.confFPM daemon configuration
/opt/docker/etc/php/fpm/pool.d/application.confFPM pool configuration

Tag summary

Content type

Image

Digest

sha256:27841d5ef…

Size

127.6 MB

Last updated

over 1 year ago

docker pull cmer81/ipboard