Initial commit
This commit is contained in:
		
							
								
								
									
										3
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.dockerignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| .secrets | ||||
| .act | ||||
| examples | ||||
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| pkg | ||||
| .secrets | ||||
| .idea | ||||
| .vscode | ||||
							
								
								
									
										95
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,95 @@ | ||||
| # Install Caddy | ||||
| FROM docker.io/caddy:builder-alpine AS caddy-builder | ||||
| RUN xcaddy build | ||||
|  | ||||
|  | ||||
| # Install PHP | ||||
| FROM docker.io/alpine | ||||
|  | ||||
| LABEL maintainer="vladimir@hodakov.me" | ||||
|  | ||||
| # Setup document root | ||||
| WORKDIR /var/www/html | ||||
|  | ||||
| # Get caddy | ||||
| COPY --from=caddy-builder /usr/bin/caddy /usr/bin/caddy | ||||
|  | ||||
| # Install packages and remove default server definition | ||||
| RUN apk add --no-cache curl \ | ||||
|     imagemagick \ | ||||
|     php84 \ | ||||
|     php84-fpm \ | ||||
|     php84-apache2 \ | ||||
|     php84-ctype \ | ||||
|     php84-curl \ | ||||
|     php84-dom \ | ||||
|     php84-ftp \ | ||||
|     php84-gd \ | ||||
|     php84-iconv \ | ||||
|     php84-json \ | ||||
|     php84-mbstring \ | ||||
|     php84-mysqli \ | ||||
|     php84-opcache \ | ||||
|     php84-openssl \ | ||||
|     php84-pgsql \ | ||||
|     php84-sqlite3 \ | ||||
|     php84-tokenizer \ | ||||
|     php84-xml \ | ||||
|     php84-zlib \ | ||||
|     php84-zip \ | ||||
|     supervisor | ||||
|  | ||||
| # Configure Caddy | ||||
| COPY config/Caddyfile /etc/caddy/Caddyfile | ||||
|  | ||||
| # Configure PHP-FPM | ||||
| COPY config/fpm-pool.conf /etc/php84/php-fpm.d/www.conf | ||||
| COPY config/php.ini /etc/php84/conf.d/custom.ini | ||||
|  | ||||
| # Configure supervisord | ||||
| COPY config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf | ||||
|  | ||||
| RUN mkdir /.config /phpbb | ||||
|  | ||||
| # Add tests app installation | ||||
| COPY src/ /var/www/html/ | ||||
|  | ||||
| # Add phpBB installation | ||||
| ENV PHPBB_VERSION=3.3.14 | ||||
| ENV PHPBB_SHA256=68cd6cf3faefa175ea3892ba02c6b112e8967ed33703521c79820e35bd15ec9a | ||||
|  | ||||
| WORKDIR /tmp | ||||
|  | ||||
| RUN curl -SL https://download.phpbb.com/pub/release/3.3/${PHPBB_VERSION}/phpBB-${PHPBB_VERSION}.tar.bz2 -o phpbb.tar.bz2 \ | ||||
|     && echo "${PHPBB_SHA256}  phpbb.tar.bz2" | sha256sum -c - \ | ||||
|     && tar -xjf phpbb.tar.bz2 \ | ||||
|     && mkdir /phpbb/sqlite \ | ||||
|     && mv phpBB3 /phpbb/www \ | ||||
|     && rm -f phpbb.tar.bz2 | ||||
|  | ||||
| COPY phpbb/config.php /phpbb/www | ||||
|  | ||||
| # Expose the ports Caddy is reachable on | ||||
| EXPOSE 8080 | ||||
| EXPOSE 8181 | ||||
|  | ||||
| WORKDIR /phpbb/www | ||||
|  | ||||
| ENV PHPBB_INSTALL= \ | ||||
|     PHPBB_DB_DRIVER=sqlite3 \ | ||||
|     PHPBB_DB_HOST=/phpbb/sqlite/sqlite.db \ | ||||
|     PHPBB_DB_PORT= \ | ||||
|     PHPBB_DB_NAME= \ | ||||
|     PHPBB_DB_USER= \ | ||||
|     PHPBB_DB_PASSWD= \ | ||||
|     PHPBB_DB_TABLE_PREFIX=phpbb_ \ | ||||
|     PHPBB_DB_AUTOMIGRATE= \ | ||||
|     PHPBB_DISPLAY_LOAD_TIME= \ | ||||
|     PHPBB_DEBUG= \ | ||||
|     PHPBB_DEBUG_CONTAINER= | ||||
|  | ||||
| COPY start.sh /usr/local/bin/ | ||||
| CMD ["start.sh"] | ||||
|  | ||||
| # Configure a healthcheck to validate that everything is up and running | ||||
| HEALTHCHECK --timeout=10s CMD curl --silent --fail http://127.0.0.1:8080/fpm-ping | ||||
							
								
								
									
										22
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| MIT License | ||||
|  | ||||
| Copyright (c) 2016 Seleznyov Dmitry | ||||
| Copyright (c) 2023-2025 Vladimir Hodakov | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
|  | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
							
								
								
									
										210
									
								
								README.MD
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								README.MD
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,210 @@ | ||||
| # phpBB3 docker image | ||||
|  | ||||
| This is updated fork of [selim13's docker-phpbb image](https://github.com/selim13/docker-phpbb). | ||||
|  | ||||
| Now it even bundles caddy instead of apache2. Thanks | ||||
| [ParaParty/docker-php-caddy](https://github.com/ParaParty/docker-php-caddy) for the inspiration. | ||||
|  | ||||
| Lightweight, Alpine based [phpBB](https://www.phpbb.com/) docker image. | ||||
|  | ||||
| # Supported tags and respective `Dockerfile` links | ||||
|  | ||||
| - [`3.3`, `3.3.11`, `latest`](https://github.com/fat0troll/docker-phpbb/blob/master/Dockerfile) bundled with PHP 8 | ||||
|  | ||||
| # 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: | ||||
|  | ||||
| ```console | ||||
| $ docker run -p 8000:8181 --name phpbb-install -e PHPBB_INSTALL=true -d fat0troll/phpbb:3.3 | ||||
| ``` | ||||
|  | ||||
| Point your browser to the http://localhost:8000 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: | ||||
|  | ||||
| ```console | ||||
| $ docker stop phpbb-install | ||||
| ``` | ||||
|  | ||||
| ## Starting | ||||
|  | ||||
| You can start a container as follows: | ||||
|  | ||||
| ```console | ||||
| $ docker run --name phpbb -d fat0troll/phpbb:3.3 | ||||
| ``` | ||||
|  | ||||
| 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: | ||||
|  | ||||
| ```console | ||||
| $ docker run --volumes-from phpbb-install --name phpbb -d fat0troll/phpbb:3.3 | ||||
| ``` | ||||
|  | ||||
| Or just copy it inside container if you have one from previous phpBB | ||||
| installations: | ||||
|  | ||||
| ```console | ||||
| $ 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: | ||||
|  | ||||
| ```console | ||||
| $ 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 selim13/phpbb:3.3 | ||||
| ``` | ||||
|  | ||||
| ## 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 | ||||
|  | ||||
| By default there are four volumes created for each container: | ||||
|  | ||||
| - /phpbb/sqlite | ||||
| - /phpbb/www/files | ||||
| - /phpbb/www/store | ||||
| - /phpbb/www/images/avatars/upload | ||||
|  | ||||
| # Additional configuration | ||||
|  | ||||
| This image is based on a stock official Alpine image with apache2 and php5 | ||||
| packages from the Alpine Linux repository, so you can drop their custom | ||||
| configuration files to `/etc/apache2/conf.d` and `/etc/php5/conf.d`. | ||||
|  | ||||
| ## Pass user's IP from proxy | ||||
|  | ||||
| If you are planning to start a container behind proxy | ||||
| (like [nginx-proxy](https://github.com/jwilder/nginx-proxy)), it will probably | ||||
| be a good idea to get user's real IP instead of proxy one. For this, you can use | ||||
| Apache RemoteIP module. Create a configuration file: | ||||
|  | ||||
| ```apache | ||||
| LoadModule remoteip_module modules/mod_remoteip.so | ||||
|  | ||||
| RemoteIPHeader X-Real-IP | ||||
| RemoteIPInternalProxy nginx-proxy | ||||
| ``` | ||||
|  | ||||
| Here `X-Real-IP` is a header name, where proxy passed user's real IP and | ||||
| `nginx-proxy` is proxy host name. | ||||
|  | ||||
| Then push it to `/etc/apache2/conf.d/` directory, for example, by extending this | ||||
| image: | ||||
|  | ||||
| ```dockerfile | ||||
| FROM selim13/phpbb:3.3 | ||||
|  | ||||
| COPY remoteip.conf /etc/apache2/conf.d | ||||
| ``` | ||||
							
								
								
									
										23
									
								
								config/Caddyfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								config/Caddyfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| :8080 { | ||||
|     root * /var/www/html/public | ||||
|  | ||||
|     php_fastcgi unix//run/php-fpm.sock { | ||||
|         trusted_proxies private_ranges | ||||
|     } | ||||
|  | ||||
|     file_server | ||||
|  | ||||
|     log stdout | ||||
| } | ||||
|  | ||||
| :8181 { | ||||
|     root * /phpbb/www | ||||
|  | ||||
|     php_fastcgi unix//run/php-fpm.sock { | ||||
|         trusted_proxies private_ranges | ||||
|     } | ||||
|  | ||||
|     file_server | ||||
|  | ||||
|     log stdout | ||||
| } | ||||
							
								
								
									
										56
									
								
								config/fpm-pool.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								config/fpm-pool.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| [global] | ||||
| ; Log to stderr | ||||
| error_log = /dev/stderr | ||||
|  | ||||
| [www] | ||||
| ; The address on which to accept FastCGI requests. | ||||
| ; Valid syntaxes are: | ||||
| ;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific IPv4 address on | ||||
| ;                            a specific port; | ||||
| ;   '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on | ||||
| ;                            a specific port; | ||||
| ;   'port'                 - to listen on a TCP socket to all addresses | ||||
| ;                            (IPv6 and IPv4-mapped) on a specific port; | ||||
| ;   '/path/to/unix/socket' - to listen on a unix socket. | ||||
| ; Note: This value is mandatory. | ||||
| listen = /run/php-fpm.sock | ||||
|  | ||||
| ; Enable status page | ||||
| pm.status_path = /fpm-status | ||||
|  | ||||
| ; Ondemand process manager | ||||
| pm = ondemand | ||||
|  | ||||
| ; The number of child processes to be created when pm is set to 'static' and the | ||||
| ; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. | ||||
| ; This value sets the limit on the number of simultaneous requests that will be | ||||
| ; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. | ||||
| ; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP | ||||
| ; CGI. The below defaults are based on a server without much resources. Don't | ||||
| ; forget to tweak pm.* to fit your needs. | ||||
| ; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' | ||||
| ; Note: This value is mandatory. | ||||
| pm.max_children = 100 | ||||
|  | ||||
| ; The number of seconds after which an idle process will be killed. | ||||
| ; Note: Used only when pm is set to 'ondemand' | ||||
| ; Default Value: 10s | ||||
| pm.process_idle_timeout = 10s; | ||||
|  | ||||
| ; The number of requests each child process should execute before respawning. | ||||
| ; This can be useful to work around memory leaks in 3rd party libraries. For | ||||
| ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. | ||||
| ; Default Value: 0 | ||||
| pm.max_requests = 1000 | ||||
|  | ||||
| ; Make sure the FPM workers can reach the environment variables for configuration | ||||
| clear_env = no | ||||
|  | ||||
| ; Catch output from PHP | ||||
| catch_workers_output = yes | ||||
|  | ||||
| ; Remove the 'child 10 said into stderr' prefix in the log and only show the actual message | ||||
| decorate_workers_output = no | ||||
|  | ||||
| ; Enable ping page to use in healthcheck | ||||
| ping.path = /fpm-ping | ||||
							
								
								
									
										2
									
								
								config/php.ini
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								config/php.ini
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| [Date] | ||||
| date.timezone="UTC" | ||||
							
								
								
									
										24
									
								
								config/supervisord.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								config/supervisord.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| [supervisord] | ||||
| nodaemon=true | ||||
| user=root | ||||
| logfile=/dev/null | ||||
| logfile_maxbytes=0 | ||||
| pidfile=/run/supervisord.pid | ||||
|  | ||||
| [program:php-fpm] | ||||
| command=php-fpm84 -F -R | ||||
| stdout_logfile=/dev/stdout | ||||
| stdout_logfile_maxbytes=0 | ||||
| stderr_logfile=/dev/stderr | ||||
| stderr_logfile_maxbytes=0 | ||||
| autorestart=false | ||||
| startretries=0 | ||||
|  | ||||
| [program:caddy] | ||||
| command=caddy run --config /etc/caddy/Caddyfile | ||||
| stdout_logfile=/dev/stdout | ||||
| stdout_logfile_maxbytes=0 | ||||
| stderr_logfile=/dev/stderr | ||||
| stderr_logfile_maxbytes=0 | ||||
| autorestart=false | ||||
| startretries=0 | ||||
							
								
								
									
										12
									
								
								docker-compose.test.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								docker-compose.test.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| version: '3.5' | ||||
| services: | ||||
|   app: | ||||
|     image: ${IMAGE_NAME}:${IMAGE_TAG} | ||||
|     build: . | ||||
|   sut: | ||||
|     image: alpine:3.13 | ||||
|     depends_on: | ||||
|       - app | ||||
|     command: /tmp/run_tests.sh | ||||
|     volumes: | ||||
|       - "./run_tests.sh:/tmp/run_tests.sh:ro" | ||||
							
								
								
									
										18
									
								
								examples/docker-compose.build.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								examples/docker-compose.build.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| volumes: | ||||
|   phpbb-sqlite: {} | ||||
|   phpbb-files: {} | ||||
|   phpbb-store: {} | ||||
|   phpbb-avatars: {} | ||||
|  | ||||
| services: | ||||
|   phpbb: | ||||
|     build: . | ||||
|     ports: | ||||
|       - '127.0.0.1:8000:80' | ||||
|     volumes: | ||||
|       - 'phpbb-sqlite:/phpbb/sqlite' | ||||
|       - 'phpbb-files:/phpbb/www/files' | ||||
|       - 'phpbb-store:/phpbb/www/store' | ||||
|       - 'phpbb-avatars:/phpbb/www/images/avatars/upload' | ||||
|     environment: | ||||
|       PHPBB_INSTALL: 'true' | ||||
							
								
								
									
										19
									
								
								examples/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								examples/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| volumes: | ||||
|   phpbb-sqlite: {} | ||||
|   phpbb-files: {} | ||||
|   phpbb-store: {} | ||||
|   phpbb-avatars: {} | ||||
|  | ||||
| services: | ||||
|   phpbb: | ||||
|     image: selim13/phpbb:3.3 | ||||
|     ports: | ||||
|       - '127.0.0.1:8000:80' | ||||
|     volumes: | ||||
|       - 'phpbb-sqlite:/phpbb/sqlite' | ||||
|       - 'phpbb-files:/phpbb/www/files' | ||||
|       - 'phpbb-store:/phpbb/www/store' | ||||
|       - 'phpbb-avatars:/phpbb/www/images/avatars/upload' | ||||
|     environment: | ||||
|       #PHPBB_INSTALL: 'true' | ||||
|       PHPBB_DB_AUTOMIGRATE: 'true' | ||||
							
								
								
									
										25
									
								
								phpbb/config.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								phpbb/config.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| <?php | ||||
|  | ||||
| $dbms = 'phpbb\\db\\driver\\' . getenv('PHPBB_DB_DRIVER'); | ||||
| $dbhost = getenv('PHPBB_DB_HOST'); | ||||
| $dbport = getenv('PHPBB_DB_PORT'); | ||||
| $dbname = getenv('PHPBB_DB_NAME'); | ||||
| $dbuser = getenv('PHPBB_DB_USER'); | ||||
| $dbpasswd = getenv('PHPBB_DB_PASSWD'); | ||||
| $table_prefix = getenv('PHPBB_DB_TABLE_PREFIX'); | ||||
| $phpbb_adm_relative_path = 'adm/'; | ||||
| $acm_type = 'phpbb\\cache\\driver\\file'; | ||||
|  | ||||
| @define('PHPBB_INSTALLED', true); | ||||
|  | ||||
| if (getenv('PHPBB_DISPLAY_LOAD_TIME') === 'true') { | ||||
| 	@define('PHPBB_DISPLAY_LOAD_TIME', true); | ||||
| } | ||||
|  | ||||
| if (getenv('PHPBB_DEBUG') === 'true') { | ||||
| 	@define('DEBUG', true); | ||||
| } | ||||
|  | ||||
| if (getenv('PHPBB_DEBUG_CONTAINER') === 'true') { | ||||
| 	@define('DEBUG_CONTAINER', true); | ||||
| } | ||||
							
								
								
									
										3
									
								
								run_tests.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								run_tests.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| #!/usr/bin/env sh | ||||
| apk --no-cache add curl | ||||
| curl --silent --fail http://app:8080 | grep 'PHP 8.1' | ||||
							
								
								
									
										2
									
								
								src/public/index.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								src/public/index.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| <?php | ||||
| phpinfo(); | ||||
							
								
								
									
										1
									
								
								src/public/test.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/public/test.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| This static HTML file is served by Caddy | ||||
							
								
								
									
										24
									
								
								start.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										24
									
								
								start.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| set -e | ||||
|  | ||||
| [[ "${PHPBB_INSTALL}" = "true" ]] && rm config.php | ||||
| [[ "${PHPBB_INSTALL}" != "true" ]] && rm -rf install | ||||
|  | ||||
| db_wait() { | ||||
|         if [[ "${PHPBB_DB_WAIT}" = "true" &&  "${PHPBB_DB_DRIVER}" != "sqlite3" && "${PHPBB_DB_DRIVER}" != "sqlite" ]]; then | ||||
|             until nc -z ${PHPBB_DB_HOST} ${PHPBB_DB_PORT}; do | ||||
|                 echo "$(date) - waiting for database on ${PHPBB_DB_HOST}:${PHPBB_DB_PORT} to start before applying migrations" | ||||
|                 sleep 3 | ||||
|             done | ||||
|         fi | ||||
| } | ||||
|  | ||||
| db_migrate() { | ||||
|     if [[ "${PHPBB_DB_AUTOMIGRATE}" = "true" && "${PHPBB_INSTALL}" != "true" ]]; then | ||||
|         echo "$(date) - applying migrations" | ||||
|         php84 bin/phpbbcli.php db:migrate | ||||
|     fi | ||||
| } | ||||
|  | ||||
| db_wait && db_migrate && exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf | ||||
							
								
								
									
										31
									
								
								update.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										31
									
								
								update.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
|  | ||||
| VERSION="$1" | ||||
|  | ||||
| if [ ! -n "$VERSION" ]; then | ||||
|     echo "Usage: $0 phpbb_minor_version" | ||||
|     echo | ||||
|     echo "Example: $0 3.3" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| VERSIONS_URL="http://version.phpbb.com/phpbb/versions.json" | ||||
| LATEST_VERSION=$(curl --silent --location $VERSIONS_URL | jq --raw-output ".stable[\"$VERSION\"].current") | ||||
| if [ "$LATEST_VERSION" == "null" ]; then | ||||
|     echo "PHPBB version not found" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| SHA_URL="https://download.phpbb.com/pub/release/3.3/$LATEST_VERSION/phpBB-$LATEST_VERSION.tar.bz2.sha256" | ||||
| SHA=$(curl --silent --location $SHA_URL | cut -d ' ' -f 1) | ||||
| if [ "${#SHA}" != "64" ]; then | ||||
|     echo "Failed to fetch SHA256 of an archive" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| sed -i "s/^ENV PHPBB_VERSION .*$/ENV PHPBB_VERSION $LATEST_VERSION/" Dockerfile | ||||
| sed -i "s/^ENV PHPBB_SHA256 .*$/ENV PHPBB_SHA256 $SHA/" Dockerfile | ||||
|  | ||||
| echo "OK" | ||||
		Verwijs in nieuw issue
	
	Block a user