feat(1.0-rc10): add new latest version
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.env
|
||||||
27
1.0-rc10/mysqli/Dockerfile
Normal file
27
1.0-rc10/mysqli/Dockerfile
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
FROM php:8.0-apache
|
||||||
|
|
||||||
|
ENV FLYSPRAY /var/www/flyspray
|
||||||
|
ENV FLYSPRAY_SRC https://github.com/flyspray/flyspray/releases/download/v1.0-rc10/flyspray-1.0-rc10.tgz
|
||||||
|
|
||||||
|
WORKDIR $FLYSPRAY
|
||||||
|
|
||||||
|
RUN apt-get update -y && \
|
||||||
|
apt-get upgrade -y && \
|
||||||
|
apt-get install -y graphviz libfreetype6-dev libjpeg-dev zlib1g-dev && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN docker-php-ext-configure gd --with-freetype --with-jpeg && \
|
||||||
|
docker-php-ext-install -j$(nproc) exif gd mysqli
|
||||||
|
|
||||||
|
ENV APACHE_DOCUMENT_ROOT $FLYSPRAY
|
||||||
|
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf && \
|
||||||
|
sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
|
||||||
|
|
||||||
|
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
|
||||||
|
|
||||||
|
RUN curl -L "$FLYSPRAY_SRC" | tar zxf - --strip-components=1
|
||||||
|
RUN chown www-data:www-data -R "$FLYSPRAY"
|
||||||
|
|
||||||
|
VOLUME $FLYSPRAY/attachments, $FLYSPRAY/avatars
|
||||||
|
EXPOSE 80 443
|
||||||
27
1.0-rc10/pgsql/Dockerfile
Normal file
27
1.0-rc10/pgsql/Dockerfile
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
FROM php:8.0-apache
|
||||||
|
|
||||||
|
ENV FLYSPRAY /var/www/flyspray
|
||||||
|
ENV FLYSPRAY_SRC https://github.com/flyspray/flyspray/releases/download/v1.0-rc10/flyspray-1.0-rc10.tgz
|
||||||
|
|
||||||
|
WORKDIR $FLYSPRAY
|
||||||
|
|
||||||
|
RUN apt-get update -y && \
|
||||||
|
apt-get upgrade -y && \
|
||||||
|
apt-get install -y graphviz libpq-dev libfreetype6-dev libjpeg-dev zlib1g-dev && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN docker-php-ext-configure gd --with-freetype --with-jpeg && \
|
||||||
|
docker-php-ext-install -j$(nproc) exif gd pgsql
|
||||||
|
|
||||||
|
ENV APACHE_DOCUMENT_ROOT $FLYSPRAY
|
||||||
|
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf && \
|
||||||
|
sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
|
||||||
|
|
||||||
|
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
|
||||||
|
|
||||||
|
RUN curl -L "$FLYSPRAY_SRC" | tar zxf - --strip-components=1
|
||||||
|
RUN chown www-data:www-data -R "$FLYSPRAY"
|
||||||
|
|
||||||
|
VOLUME $FLYSPRAY/attachments, $FLYSPRAY/avatars
|
||||||
|
EXPOSE 80 443
|
||||||
100
README.md
100
README.md
@@ -1 +1,99 @@
|
|||||||
# Flyspray docker
|
# flyspray-docker
|
||||||
|
|
||||||
|
This repository contains build files for [Flyspray] docker images. The images
|
||||||
|
extend the official `php:apache` image. If you would like to use another
|
||||||
|
webserver, you must create them yourself.
|
||||||
|
|
||||||
|
Images are available for [PostgreSQL] (`*/pgsql`) and [MySQL]/[MariaDB]
|
||||||
|
(`*/mysqli`).
|
||||||
|
|
||||||
|
# Prerequesits
|
||||||
|
|
||||||
|
Install [Docker].
|
||||||
|
|
||||||
|
## Building the image
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker build \
|
||||||
|
--tag flyspray:1.0-rc10-mysqli \
|
||||||
|
./1.0-rc10/mysqli
|
||||||
|
```
|
||||||
|
|
||||||
|
If you would like to build all images, use the `build-all.sh` script.
|
||||||
|
|
||||||
|
## Running the container
|
||||||
|
|
||||||
|
Create and run the container with the following command (mounts are optional
|
||||||
|
and depend on your usecase):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker volume create flyspray_attachments
|
||||||
|
docker volume create flyspray_avatars
|
||||||
|
docker run --name flyspray \
|
||||||
|
--volume flyspray_attachments:/var/www/flyspray/attachments:rw \
|
||||||
|
--volume flyspray_avatars:/var/www/flyspray/avatars:rw \
|
||||||
|
--volume /path/to/flyspray.conf.php:/var/www/flyspray/flyspray.conf.php:rw \
|
||||||
|
--volume /path/to/flyspray.ini:/usr/local/etc/php/conf.d/flyspray.ini:ro \
|
||||||
|
flyspray:1.0-rc10-mysqli
|
||||||
|
```
|
||||||
|
|
||||||
|
## Using docker compose
|
||||||
|
|
||||||
|
1. Run `docker compose up -d`
|
||||||
|
2. Open <http://localhost:8081> in your Browser
|
||||||
|
3. Install flyspray. Use the database credentials you defined below and `"db"`
|
||||||
|
for the database hostname.
|
||||||
|
4. Optional: Mount the config file.
|
||||||
|
1. While the container is running, copy the generated config:
|
||||||
|
```bash
|
||||||
|
docker cp flyspray:/var/www/flyspray/flyspray.conf.php /path/to/flyspray.conf.php
|
||||||
|
```
|
||||||
|
2. Add the `flyspray.conf.php` file to the `volumes` of `web`
|
||||||
|
3. Recreate the container by running `docker compose up -d`
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
container_name: flyspray
|
||||||
|
image: flyspray:1.0-rc10-mysqli
|
||||||
|
ports:
|
||||||
|
- 8081:80
|
||||||
|
volumes:
|
||||||
|
# Keep attachments and avatars between containers
|
||||||
|
- flyspray_attachments:/var/www/flyspray/attachments:rw
|
||||||
|
- flyspray_avatars:/var/www/flyspray/avatars:rw
|
||||||
|
# Recommended: Mount a custom flyspray config file
|
||||||
|
# NOTE: Do not mount an empty file!
|
||||||
|
- ./flyspray.conf.php:/var/www/flyspray/flyspray.conf.php:rw
|
||||||
|
# Optional: Mount additional php options (max upload size, etc.)
|
||||||
|
- ./flyspray.ini:/usr/local/etc/php/conf.d/flyspray.ini:ro
|
||||||
|
db:
|
||||||
|
container_name: flyspray_db
|
||||||
|
image: mariadb:10.3.2
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: flyspray
|
||||||
|
MYSQL_USER: flyspray
|
||||||
|
MYSQL_PASSWORD: ${DB_PASSWORD}
|
||||||
|
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
|
||||||
|
volumes:
|
||||||
|
- flyspray_dbdata:/var/lib/mysql
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
flyspray_attachements: {}
|
||||||
|
flyspray_avatars: {}
|
||||||
|
flyspray_dbdata: {}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Adding a new version
|
||||||
|
|
||||||
|
1. Copy the last version directory
|
||||||
|
2. Change the `FLYSPRAY_SRC` url
|
||||||
|
3. Make necessary changes
|
||||||
|
|
||||||
|
[Flyspray]: <http://www.flyspray.org>
|
||||||
|
[Docker]: <https://docs.docker.com/engine/install/>
|
||||||
|
[PostgreSQL]: <https://www.postgresql.org/>
|
||||||
|
[MySQL]: <https://www.mysql.com/>
|
||||||
|
[MariaDB]: <https://mariadb.com/>
|
||||||
|
|||||||
4
TODO.md
Normal file
4
TODO.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
- Is there a low effort way to automate the setup?
|
||||||
|
- Do we need the `graphviz` dependency?
|
||||||
|
- Build an image of master/1.0-rc11-dev
|
||||||
|
- Distribute the images
|
||||||
7
build-all.sh
Executable file
7
build-all.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Usage: ./build-all.sh [image-name]
|
||||||
|
|
||||||
|
name="${1:-flyspray}"
|
||||||
|
|
||||||
|
docker build -t "$name:1.0-rc10-mysqli" -t "$name:1.0-rc10" -t "$name:latest" ./1.0-rc10/mysqli
|
||||||
|
docker build -t "$name:1.0-rc10-pgsql" ./1.0-rc10/pgsql
|
||||||
47
docker-compose.yml
Normal file
47
docker-compose.yml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
container_name: flyspray
|
||||||
|
image: flyspray:1.0-rc10
|
||||||
|
build: 1.0-rc10/mysqli
|
||||||
|
environment:
|
||||||
|
FLYSPRAY_DATABASE_DBHOST: db
|
||||||
|
FLYSPRAY_DATABASE_DBNAME: flyspray
|
||||||
|
FLYSPRAY_DATABASE_DBUSER: flyspray
|
||||||
|
FLYSPRAY_DATABASE_DBPASS: ${DB_PASSWORD}
|
||||||
|
ports:
|
||||||
|
- 8081:80
|
||||||
|
volumes:
|
||||||
|
# Keep attachments and avatars between containers
|
||||||
|
- flyspray_attachments:/var/www/flyspray/attachments:rw
|
||||||
|
- flyspray_avatars:/var/www/flyspray/avatars:rw
|
||||||
|
# Mount a custom flyspray config file
|
||||||
|
# NOTE: Do not mount an empty file!
|
||||||
|
# - ./flyspray.conf.php:/var/www/flyspray/flyspray.conf.php:rw
|
||||||
|
# Mount additional php options (max upload size, etc.)
|
||||||
|
- ./flyspray.ini:/usr/local/etc/php/conf.d/flyspray.ini:ro
|
||||||
|
|
||||||
|
db:
|
||||||
|
container_name: flyspray_db
|
||||||
|
image: mariadb:10.3.2
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: flyspray
|
||||||
|
MYSQL_USER: flyspray
|
||||||
|
MYSQL_PASSWORD: ${DB_PASSWORD}
|
||||||
|
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
|
||||||
|
ports:
|
||||||
|
- 33061:3306
|
||||||
|
volumes:
|
||||||
|
- flyspray_dbdata:/var/lib/mysql
|
||||||
|
|
||||||
|
# FIXME: Remove this from the example
|
||||||
|
phpmyadmin:
|
||||||
|
image: phpmyadmin/phpmyadmin
|
||||||
|
ports:
|
||||||
|
- 8082:80
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
flyspray_attachments: {}
|
||||||
|
flyspray_avatars: {}
|
||||||
|
flyspray_dbdata: {}
|
||||||
4
flyspray.ini
Normal file
4
flyspray.ini
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
; Overwrite php ini options using this file
|
||||||
|
[PATH=/var/www/flyspray]
|
||||||
|
upload_max_filesize = 50M
|
||||||
|
post_max_size = 50M
|
||||||
2
sample.env
Normal file
2
sample.env
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
DB_PASSWORD=secret
|
||||||
|
DB_ROOT_PASSWORD=secret
|
||||||
Reference in New Issue
Block a user