paheko_docker_image_builder/README.md

121 lines
3.2 KiB
Markdown
Raw Normal View History

2023-01-28 15:28:34 +01:00
# Paheko docker image builder
Unofficial [Paheko](https://paheko.cloud/) docker image with plugins based on php official image with apache.
## How to build image
If you choose to use image from [*Docker Hub*](https://hub.docker.com/r/libretic/paheko), you can skip to next section.
If you prefer to build your own image with Dockerfile in [*Git repository*](https://git.libretic.fr/olivier.navas/paheko_docker_image_builder), you can do the following.
* Clone the repository
```
git clone https://git.libretic.fr/olivier.navas/paheko_docker_image_builder
cd paheko_docker_image_builder
```
* Edit version file to choose your version of paheko
Content of version file for paheko version 1.2.4:
```
PAHEKO_VERSION=1.2.4
```
* Build and tag the image
```
./build.sh
```
At the end of the build process you can check that you have a docker image for paheko tagged with chosen version:
```
docker image ls | grep paheko
```
## Adapt docker-compose.yml to fit your needs
For an example of custom paheko config see [git repository](https://git.libretic.fr/libretic/paheko_docker_image_builder).
For an example of custom php.ini, see [php docker image](https://hub.docker.com/_/php). You may have to adjust `post_max_size` and `upload_max_filesize` to fit your needs.
* Example with traefik routing by fqdn:
2023-01-28 15:28:34 +01:00
This example assumes that my.paheko.fqdn is resolved to the address of a reverse proxy that serves https and forwards requests to
traefik container on port named "web" (see: [traefik](https://github.com/traefik/traefik) and [traefik configuration](https://git.libretic.fr/libretic/ansible-role-docker_host))
```
version: '3.1'
services:
paheko:
image: libretic/paheko:1.2.4
restart: always
volumes:
- ./config.local.php:/var/www/paheko/config.local.php
- ./php.ini:/usr/local/etc/php/php.ini
- pahekodata:/var/www/paheko/data
- /var/www/paheko/data/plugins
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik"
- "traefik.http.routers.demogarradin.entrypoints=web"
- "traefik.http.routers.demogarradin.rule=Host(`my.paheko.fqdn`)"
- "traefik.http.services.demogarradin.loadbalancer.server.port=80"
networks:
- traefik
networks:
traefik:
external: true
```
* Example with paheko container listening on port 8080:
This example assumes that my.paheko.fqdn is resolved to the address of a reverse proxy that serves https and forwards requests to port 8080 on
the host running paheko container.
```
version: '3.1'
services:
paheko:
image: libretic/paheko:1.2.4
restart: always
volumes:
- ./config.local.php:/var/www/paheko/config.local.php
- ./php.ini:/usr/local/etc/php/php.ini
2023-01-28 15:28:34 +01:00
- pahekodata:/var/www/paheko/data
- /var/www/paheko/data/plugins
ports:
- 8080:80
```
## Run the container
* To start the container
```
docker-compose up -d
```
Then open `https://my.paheko.fqdn` in your browser.
* To stop the container
```
docker-compose down
```
## Acknowledgements
[Paheko](https://paheko.cloud/) is free (FOSS) software. Thanks to Paheko team!
This builder relies on resources hosted on Paheko's fossil server :
* [general installation page](https://fossil.kd2.org/paheko/wiki?name=Installation) in French