feat: add initial fileset for 2.24.1
This commit is contained in:
parent
e82159cf86
commit
32579a5ed3
5
.dockerignore
Normal file
5
.dockerignore
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Use .dockerignore as whitelist
|
||||||
|
*
|
||||||
|
|
||||||
|
!mantis-entrypoint*
|
||||||
|
!config_inc.php
|
53
Dockerfile
Normal file
53
Dockerfile
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
FROM php:7.4-apache
|
||||||
|
|
||||||
|
RUN a2enmod rewrite
|
||||||
|
|
||||||
|
RUN set -xe \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get install -y \
|
||||||
|
# PHP dependencies
|
||||||
|
libfreetype6-dev libpng-dev libjpeg-dev libpq-dev libxml2-dev \
|
||||||
|
# New in PHP 7.4, required for mbstring, see https://github.com/docker-library/php/issues/880
|
||||||
|
libonig-dev \
|
||||||
|
# To clone plugins
|
||||||
|
git \
|
||||||
|
&& docker-php-ext-configure gd --with-jpeg --with-freetype \
|
||||||
|
&& docker-php-ext-install gd mbstring mysqli soap \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
ENV MANTIS_VER 2.24.1
|
||||||
|
ENV MANTIS_MD5 a5a001ffa5a9c9a55848de1fbf7fae95
|
||||||
|
ENV MANTIS_URL https://sourceforge.net/projects/mantisbt/files/mantis-stable/${MANTIS_VER}/mantisbt-${MANTIS_VER}.tar.gz
|
||||||
|
ENV MANTIS_FILE mantisbt.tar.gz
|
||||||
|
|
||||||
|
# Install MantisBT itself
|
||||||
|
RUN set -xe \
|
||||||
|
&& curl -fSL ${MANTIS_URL} -o ${MANTIS_FILE} \
|
||||||
|
&& md5sum ${MANTIS_FILE} \
|
||||||
|
&& echo "${MANTIS_MD5} ${MANTIS_FILE}" | md5sum -c \
|
||||||
|
&& tar -xz --strip-components=1 -f ${MANTIS_FILE} \
|
||||||
|
&& rm ${MANTIS_FILE} \
|
||||||
|
&& rm -r doc \
|
||||||
|
&& chown -R www-data:www-data . \
|
||||||
|
# Apply PHP and config fixes
|
||||||
|
# Use the default production configuration
|
||||||
|
&& mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" \
|
||||||
|
&& echo 'mysqli.allow_local_infile = Off' >> $PHP_INI_DIR/conf.d/mantis.php.ini \
|
||||||
|
&& echo 'display_errors = Off ' >> $PHP_INI_DIR/conf.d/mantis.php.ini \
|
||||||
|
&& echo 'log_errors = On ' >> $PHP_INI_DIR/conf.d/mantis.php.ini \
|
||||||
|
&& echo 'error_log = /dev/stderr' >> $PHP_INI_DIR/conf.d/mantis.php.ini \
|
||||||
|
&& echo 'register_argc_argv = Off' >> $PHP_INI_DIR/conf.d/mantis.php.ini
|
||||||
|
|
||||||
|
COPY config_inc.php /var/www/html/config/config_inc.php
|
||||||
|
|
||||||
|
# Install additional plugins
|
||||||
|
# TODO: copy from multi-stage to remove git dependency
|
||||||
|
ENV SOURCE_TAG v2.3.1
|
||||||
|
RUN set -xe && \
|
||||||
|
git clone --branch $SOURCE_TAG --depth 1 https://github.com/mantisbt-plugins/source-integration.git /tmp/source && \
|
||||||
|
cp -r /tmp/source/Source /tmp/source/SourceGitlab /tmp/source/SourceGithub /var/www/html/plugins/ && \
|
||||||
|
rm -r /tmp/source
|
||||||
|
|
||||||
|
ADD ./mantis-entrypoint /usr/local/bin/mantis-entrypoint
|
||||||
|
|
||||||
|
CMD ["mantis-entrypoint"]
|
23
config_inc.php
Normal file
23
config_inc.php
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$g_db_type = 'mysqli';
|
||||||
|
|
||||||
|
$g_hostname = getenv('MYSQL_HOST') !== false ? getenv('MYSQL_HOST') : 'db';
|
||||||
|
$g_database_name = getenv('MYSQL_DATABASE') !== false ? getenv('MYSQL_DATABASE') : 'bugtracker';
|
||||||
|
$g_db_username = getenv('MYSQL_USER') !== false ? getenv('MYSQL_USER') : 'mantis';
|
||||||
|
$g_db_password = getenv('MYSQL_PASSWORD') !== false ? getenv('MYSQL_PASSWORD') : 'mantis';
|
||||||
|
|
||||||
|
|
||||||
|
$g_crypto_master_salt = getenv('MASTER_SALT');
|
||||||
|
|
||||||
|
# To fix the warning
|
||||||
|
# max_file_size MantisBT option is less than or equal to the upload_max_filesize directive in php.ini
|
||||||
|
$g_max_file_size = ini_get("upload_max_filesize");
|
||||||
|
|
||||||
|
|
||||||
|
# Configure email
|
||||||
|
$g_webmaster_email = getenv('EMAIL_WEBMASTER') !== false ? getenv('EMAIL_WEBMASTER') : null;
|
||||||
|
$g_from_email = getenv('EMAIL_FROM') !== false ? getenv('EMAIL_FROM') : null;
|
||||||
|
$g_return_path_email = getenv('EMAIL_RETURN_PATH') !== false ? getenv('EMAIL_RETURN_PATH') : null;
|
||||||
|
|
||||||
|
include 'config_inc_addon.php';
|
41
docker-compose.yaml
Normal file
41
docker-compose.yaml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
# Pin the version for production usage!
|
||||||
|
#image: okainov/mantisbt:latest
|
||||||
|
build: .
|
||||||
|
container_name: mantis_web
|
||||||
|
ports:
|
||||||
|
- "8989:80"
|
||||||
|
environment:
|
||||||
|
# Comment or set to 0 in production!
|
||||||
|
- MANTIS_ENABLE_ADMIN=1
|
||||||
|
# Set master salt, typically can be generated by `cat /dev/urandom | head -c 64 | base64`
|
||||||
|
#- MASTER_SALT=
|
||||||
|
# Uncomment only if modified from default values
|
||||||
|
#- MYSQL_HOST=db
|
||||||
|
#- MYSQL_DATABASE=bugtracker
|
||||||
|
#- MYSQL_USER=mantis
|
||||||
|
#- MYSQL_PASSWORD=mantis
|
||||||
|
# If you need to customize more options in config, create `config_inc_addon.php` and uncomment lines below
|
||||||
|
# This file will be included from the main config.
|
||||||
|
#volumes:
|
||||||
|
# - ./config_inc_addon.php:/var/www/html/config/config_inc_addon.php
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: mysql:5.7
|
||||||
|
container_name: mantis_db
|
||||||
|
volumes:
|
||||||
|
- ./db_data:/var/lib/mysql
|
||||||
|
environment:
|
||||||
|
# You might want to change root password before first run
|
||||||
|
- MYSQL_ROOT_PASSWORD=root
|
||||||
|
- MYSQL_DATABASE=bugtracker
|
||||||
|
- MYSQL_USER=mantis
|
||||||
|
- MYSQL_PASSWORD=mantis
|
||||||
|
# Set default collation so Mantis does not complain about latin1
|
||||||
|
command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
|
12
mantis-entrypoint
Executable file
12
mantis-entrypoint
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
test -d admin && chmod -rx admin && mv admin .admin
|
||||||
|
|
||||||
|
# If MANTIS_ENABLE_ADMIN is set to , then enable 'admin' folder
|
||||||
|
if [ ! -z "$MANTIS_ENABLE_ADMIN" ] && [ "$MANTIS_ENABLE_ADMIN" -ne "0" ]; then
|
||||||
|
test -d .admin && mv .admin admin && chmod +rx admin
|
||||||
|
fi
|
||||||
|
|
||||||
|
apache2-foreground
|
Loading…
x
Reference in New Issue
Block a user