Docker image with Caddy + PHP-FPM + phpBB forum engine preinstalled for convenient use.
Go to file
Vladimir Hodakov d63cd998c6
All checks were successful
ci/woodpecker/push/build/2 Pipeline was successful
ci/woodpecker/tag/build/2 Pipeline was successful
ci/woodpecker/push/build/1 Pipeline was successful
ci/woodpecker/tag/build/1 Pipeline was successful
ci/woodpecker/push/tag Pipeline was successful
ci/woodpecker/tag/tag Pipeline was successful
Fix tag manifest creation
2025-01-14 03:47:50 +04:00
.woodpecker Fix tag manifest creation 2025-01-14 03:47:50 +04:00
config Pass REMOTE_ADDR from upstream proxy 2025-01-08 21:23:05 +04:00
examples Initial commit 2025-01-06 23:08:30 +04:00
phpbb Initial commit 2025-01-06 23:08:30 +04:00
scripts Add experimental registry cleanup 2025-01-14 02:57:33 +04:00
src/public Initial commit 2025-01-06 23:08:30 +04:00
.dockerignore Update .dockerignore 2025-01-08 06:47:09 +04:00
.gitignore Add basic Woodpecker CI configuration 2025-01-07 03:28:00 +04:00
docker-compose.test.yml Initial commit 2025-01-06 23:08:30 +04:00
Dockerfile Update package name 2025-01-08 06:42:39 +04:00
LICENSE Initial commit 2025-01-06 23:08:30 +04:00
README.md Update README 2025-01-14 03:07:37 +04:00
run_tests.sh Initial commit 2025-01-06 23:08:30 +04:00
start.sh Initial commit 2025-01-06 23:08:30 +04:00
update.sh Initial commit 2025-01-06 23:08:30 +04:00

phpBB3 docker image

status-badge

Lightweight, Alpine based phpBB docker image.

This is a heavily modified fork of selim13's docker-phpbb image. Now it even bundles caddy instead of apache2. Thanks ParaParty/docker-php-caddy for the inspiration.

You can find an example of forum running using this image at ks.fhs.sh.

Note: this image expects that you run it behind another reverse proxy and does not handle HTTPS automatically. Use it behind another instance of caddy, for example.

Supported tags and respective Dockerfile links

How to use this image

Initial installation

If you don't have a prepared phpBB database, you can use a standard phpBB installer script, just run a temporary container with PHPBB_INSTALL=true environment variable:

$ docker run -p 8080:8080 --name phpbb-install -e PHPBB_INSTALL=true -d source.hodakov.me/hdkv/phpbb

Point your browser to the http://localhost:8080 to begin the installation process.

This image is bundled with SQLite3, MySQL and PostgresSQL database engines support. Others can be added by creating custom Dockerfile. For MySQL and PostgresSQL you can use standard container linking or use SQLite if you want a self sufficient container.

For SQLite3 set Database server hostname or DSN field to /phpbb/sqlite/sqlite.db. This file will be created on a docker volume and outside of the webserver's document root for security. Leave user name, password and database name fields blank.

After the installation process is complete you can safely stop this container:

$ docker stop phpbb-install

Starting

You can start a container as follows:

$ docker run --name phpbb -d source.hodakov.me/hdkv/phpbb

By default, it uses SQLite3 as a database backend, so you will need to supply it with a database file. It's default path is /phpbb/sqlite/sqlite.db.

You can import it from the temporary installation container above:

$ docker run --volumes-from phpbb-install --name phpbb -d source.hodakov.me/hdkv/phpbb

Or just copy it inside container if you have one from previous phpBB installations:

$ docker cp /path/at/host/sqlite.db phpbb:/www/sqlite/sqlite.db

For other database engines you will need to pass credentials and driver type using environment variables:

$ docker run --name phpbb     \
    -e PHPBB_DB_DRIVER=mysqli \
    -e PHPBB_DB_HOST=dbmysql  \
    -e PHPBB_DB_PORT=3306     \
    -e PHPBB_DB_NAME=phpbb    \
    -e PHPBB_DB_USER=phpbb    \
    -e PHPBB_DB_PASSWD=pass -d source.hodakov.me/hdkv/phpbb

Environment variables

This image utilises environment variables for basic configuration. Most of them are passed directly to phpBB's config.php or to the startup script.

PHPBB_INSTALL

If set to true, container will start with an empty config.php file and phpBB /install/ directory intact. This will allow you to initilalize a forum database upon fresh installation.

PHPBB_DB_DRIVER

Selects a database driver. phpBB3 ships with following drivers:

  • mssql - MS SQL Server
  • mysql - MySQL via outdated php extension
  • mysqli - MySQL via newer php extension
  • oracle - Oracle
  • postgres - PostgreSQL
  • sqlite - SQLite 2
  • sqlite3 - SQLite 3

This image is bundled with support of sqlite3, mysqli and postgres drivers.

Default value: sqlite3

PHPBB_DB_HOST

Database hostname or ip address.

For the SQLite3 driver sets database file path.

Default value: /phpbb/sqlite/sqlite.db

PHPBB_DB_PORT

Database port.

PHPBB_DB_NAME

Supplies database name for phpBB3.

PHPBB_DB_USER

Supplies a user name for phpBB3 database.

PHPBB_DB_PASSWD

Supplies a user password for phpBB3 database.

If you feel paranoid about providing your database password in an environment variable, you can always ship it with a custom config.php file using volumes or by extending this image.

PHPBB_DB_TABLE_PREFIX

Table prefix for phpBB3 database.

Default value: phpbb_

PHPBB_DB_AUTOMIGRATE

If set to true, instructs a container to run database migrations by executing bin/phpbbcli.php db:migrate on every startup.

If migrations fail, container will refuse to start.

PHPBB_DB_WAIT

If set to true, container will wait for database service to become available. You will need to explicitly set PHPBB_DB_HOST and PHPBB_DB_PORT for this to work.

Use in conjunction with PHPBB_DB_AUTOMIGRATE to prevent running migrations before database is ready.

Won't work for SQLite database engine as it is always available.

PHPBB_DISPLAY_LOAD_TIME

If set to true, phpBB will display page loading time, queries count and peak memory usage at the bottom of the page.

PHPBB_DEBUG

If set to true, enables phpBB debug mode.

PHPBB_DEBUG_CONTAINER

Volumes

There are predefined volumes in the image:

  • /phpbb/sqlite
  • /phpbb/www/files
  • /phpbb/www/store
  • /phpbb/www/images/avatars/upload

This list of volumes should be good enough for a forum that starts from scratch.