Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
MetaGer
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
56
Issues
56
List
Boards
Labels
Service Desk
Milestones
Merge Requests
9
Merge Requests
9
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
open-source
MetaGer
Commits
cf3f59c5
Commit
cf3f59c5
authored
Feb 22, 2021
by
Dominik Hebeler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
replaced alpine containers
parent
9336e155
Changes
7
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
123 additions
and
181 deletions
+123
-181
Dockerfile
Dockerfile
+55
-58
DockerfileDev
DockerfileDev
+52
-55
chart/templates/deployment.yaml
chart/templates/deployment.yaml
+2
-2
config/nginx-default-dev.conf
config/nginx-default-dev.conf
+0
-26
config/nginx-default.conf
config/nginx-default.conf
+0
-28
config/nginx.conf
config/nginx.conf
+10
-8
docker-compose.yml
docker-compose.yml
+4
-4
No files found.
Dockerfile
View file @
cf3f59c5
FROM
alpine:3.11.3
FROM
debian:10
RUN
apk add
--update
\
# Install System Components
RUN
apt update
\
&&
apt
install
-y
\
nginx
\
tzdata
\
ca-certificates
\
dcron
\
zip
\
redis
\
libpng
\
php7
\
php7-fpm
\
php7-common
\
php7-curl
\
php7-mbstring
\
php7-sqlite3
\
php7-pdo_mysql
\
php7-pdo_sqlite
\
php7-dom
\
php7-simplexml
\
php7-tokenizer
\
php7-zip
\
php7-redis
\
php7-gd
\
php7-json
\
php7-pcntl
\
php7-opcache
\
php7-fileinfo
\
&&
rm
-rf
/var/cache/apk/
*
cron
\
lsb-release
\
apt-transport-https
\
curl
\
zip
RUN
curl
-o
/etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
\
&&
echo
"deb https://packages.sury.org/php/
$(
lsb_release
-sc
)
main"
|
tee
/etc/apt/sources.list.d/php.list
# Install PHP Components
RUN
apt update
\
&&
apt
install
-y
\
php7.4
\
php7.4-xml
\
php7.4-fpm
\
php7.4-common
\
php7.4-curl
\
php7.4-mbstring
\
php7.4-sqlite3
\
php7.4-mysql
\
php7.4-sqlite
\
php7.4-zip
\
php7.4-redis
\
php7.4-gd
\
php7.4-json
\
php7.4-opcache
WORKDIR
/html
RUN
sed
-i
's/;error_log = log\/php7\/error.log/error_log = \/dev\/stderr/g'
/etc/php7/php-fpm.conf
&&
\
sed
-i
's/;daemonize = yes/daemonize = no/g'
/etc/php7/php-fpm.conf
&&
\
sed
-i
's/listen = 127.0.0.1:9000/listen = 9000/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/;request_terminate_timeout = 0/request_terminate_timeout = 30/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/;request_terminate_timeout_track_finished = no/request_terminate_timeout_track_finished = yes/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/;decorate_workers_output = no/decorate_workers_output = no/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/;catch_workers_output = yes/catch_workers_output = yes/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/user = nobody/user = nginx/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/group = nobody/group = nginx/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/pm.max_children = 5/pm.max_children = 1024/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/pm.start_servers = 2/pm.start_servers = 50/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/pm.max_spare_servers = 3/pm.max_spare_servers = 50/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/user = www-data/user = nginx/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/group = www-data/group = nginx/g'
/etc/php7/php-fpm.d/www.conf
&&
\
sed
-i
's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g'
/etc/php7/php.ini
&&
\
sed
-i
's/expose_php = On/expose_php = Off/g'
/etc/php7/php.ini
&&
\
RUN
mkdir
-p
/run/php
&&
\
sed
-i
's/error_log = \/var\/log\/php7.4-fpm.log/error_log = \/dev\/stderr/g'
/etc/php/7.4/fpm/php-fpm.conf
&&
\
sed
-i
's/;daemonize = yes/daemonize = no/g'
/etc/php/7.4/fpm/php-fpm.conf
&&
\
sed
-i
's/listen = \/run\/php\/php7.4-fpm.sock/listen = 9000/g'
/etc/php/7.4/fpm/pool.d/www.conf
&&
\
sed
-i
's/;request_terminate_timeout = 0/request_terminate_timeout = 30/g'
/etc/php/7.4/fpm/pool.d/www.conf
&&
\
sed
-i
's/;request_terminate_timeout_track_finished = no/request_terminate_timeout_track_finished = yes/g'
/etc/php/7.4/fpm/pool.d/www.conf
&&
\
sed
-i
's/;decorate_workers_output = no/decorate_workers_output = no/g'
/etc/php/7.4/fpm/pool.d/www.conf
&&
\
sed
-i
's/;catch_workers_output = yes/catch_workers_output = yes/g'
/etc/php/7.4/fpm/pool.d/www.conf
&&
\
sed
-i
's/pm.max_children = 5/pm.max_children = 1024/g'
/etc/php/7.4/fpm/pool.d/www.conf
&&
\
sed
-i
's/pm.start_servers = 2/pm.start_servers = 50/g'
/etc/php/7.4/fpm/pool.d/www.conf
&&
\
sed
-i
's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g'
/etc/php/7.4/fpm/pool.d/www.conf
&&
\
sed
-i
's/pm.max_spare_servers = 3/pm.max_spare_servers = 50/g'
/etc/php/7.4/fpm/pool.d/www.conf
&&
\
sed
-i
's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g'
/etc/php/7.4/fpm/php.ini
&&
\
# Opcache configuration
sed -i 's/;opcache.enable=1/opcache.enable=1/g' /etc/php7/php.ini && \
sed -i 's/;opcache.memory_consumption=128/opcache.memory_consumption=128/g' /etc/php7/php.ini && \
sed -i 's/;opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=8/g' /etc/php7/php.ini && \
sed -i 's/;opcache.max_accelerated_files=10000/opcache.max_accelerated_files=10000/g' /etc/php7/php.ini && \
sed -i 's/;opcache.max_wasted_percentage=5/opcache.max_wasted_percentage=5/g' /etc/php7/php.ini && \
sed -i 's/;opcache.validate_timestamps=1/opcache.validate_timestamps=1/g' /etc/php7/php.ini && \
sed -i 's/;opcache.revalidate_freq=2/opcache.revalidate_freq=300/g' /etc/php7/php.ini && \
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 30M/g' /etc/php7/php.ini && \
sed -i 's/post_max_size = 8M/post_max_size = 30M/g' /etc/php7/php.ini && \
echo "daemonize yes" >> /etc/redis.conf && \
ln -s /dev/null /var/log/nginx/access.log && \
ln -s /dev/stdout /var/log/nginx/error.log && \
sed -i 's/;opcache.enable=1/opcache.enable=1/g' /etc/php/7.4/fpm/php.ini && \
sed -i 's/;opcache.memory_consumption=128/opcache.memory_consumption=128/g' /etc/php/7.4/fpm/php.ini && \
sed -i 's/;opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=8/g' /etc/php/7.4/fpm/php.ini && \
sed -i 's/;opcache.max_accelerated_files=10000/opcache.max_accelerated_files=10000/g' /etc/php/7.4/fpm/php.ini && \
sed -i 's/;opcache.max_wasted_percentage=5/opcache.max_wasted_percentage=5/g' /etc/php/7.4/fpm/php.ini && \
sed -i 's/;opcache.validate_timestamps=1/opcache.validate_timestamps=1/g' /etc/php/7.4/fpm/php.ini && \
sed -i 's/;opcache.revalidate_freq=2/opcache.revalidate_freq=300/g' /etc/php/7.4/fpm/php.ini && \
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 30M/g' /etc/php/7.4/fpm/php.ini && \
sed -i 's/post_max_size = 8M/post_max_size = 30M/g' /etc/php/7.4/fpm/php.ini && \
cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime && \
echo "Europe/Berlin" > /etc/timezone && \
(crontab -l ; echo "* * * * * php /html/artisan schedule:run >> /dev/null 2>&1") | crontab -
...
...
@@ -76,8 +73,8 @@ CMD cp /root/.env .env && \
sed -i 's/^REDIS_PASSWORD=.*/REDIS_PASSWORD=null/g' .env && \
if [ "$GITLAB_ENVIRONMENT_NAME" = "production" ]; then sed -i 's/^APP_ENV=.*/APP_ENV=production/g' .env; else sed -i 's/^APP_ENV=.*/APP_ENV=development/g' .env; fi && \
cp database/useragents.sqlite.example database/useragents.sqlite && \
chown -R root:
nginx
storage/logs/metager bootstrap/cache && \
chown -R root:
www-data
storage/logs/metager bootstrap/cache && \
chmod -R g+w storage/logs/metager bootstrap/cache && \
cron
d
-L /dev/stdout && \
cron -L /dev/stdout && \
php artisan spam:load && \
php-fpm7
php-fpm7
.4
DockerfileDev
View file @
cf3f59c5
FROM
alpine:3.11.3
FROM
debian:10
RUN apk add --update \
# Install System Components
RUN apt update \
&& apt install -y \
nginx \
tzdata \
ca-certificates \
dcron \
zip \
redis \
php7 \
php7-fpm \
php7-common \
php7-curl \
php7-mbstring \
php7-sqlite3 \
php7-pdo_mysql \
php7-pdo_sqlite \
php7-dom \
php7-simplexml \
php7-tokenizer \
php7-zip \
php7-redis \
php7-gd \
php7-json \
php7-pcntl \
php7-fileinfo \
php7-xdebug \
&& rm -rf /var/cache/apk/*
cron \
lsb-release \
apt-transport-https \
curl \
zip
RUN curl -o /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \
&& echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list
# Install PHP Components
RUN apt update \
&& apt install -y \
php7.4 \
php7.4-xml \
php7.4-fpm \
php7.4-common \
php7.4-curl \
php7.4-mbstring \
php7.4-sqlite3 \
php7.4-mysql \
php7.4-sqlite \
php7.4-zip \
php7.4-redis \
php7.4-gd \
php7.4-json \
php7.4-opcache
WORKDIR /html
RUN sed -i 's/;error_log = log\/php7\/error.log/error_log = \/dev\/stderr/g' /etc/php7/php-fpm.conf && \
sed -i 's/;daemonize = yes/daemonize = no/g' /etc/php7/php-fpm.conf && \
sed -i 's/listen = 127.0.0.1:9000/listen = 9000/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/;request_terminate_timeout = 0/request_terminate_timeout = 900/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/;request_terminate_timeout_track_finished = no/request_terminate_timeout_track_finished = yes/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/;decorate_workers_output = no/decorate_workers_output = no/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/;catch_workers_output = yes/catch_workers_output = yes/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/user = nobody/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/group = nobody/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/pm.max_children = 5/pm.max_children = 100/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 25/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/user = www-data/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/group = www-data/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php7/php.ini && \
sed -i 's/expose_php = On/expose_php = Off/g' /etc/php7/php.ini && \
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 30M/g' /etc/php7/php.ini && \
sed -i 's/post_max_size = 8M/post_max_size = 30M/g' /etc/php7/php.ini && \
sed -i 's/;zend_extension=xdebug.so/zend_extension=xdebug.so/g' /etc/php7/conf.d/xdebug.ini && \
echo "xdebug.remote_enable = 1" >> /etc/php7/conf.d/xdebug.ini && \
echo "xdebug.remote_autostart = 1" >> /etc/php7/conf.d/xdebug.ini && \
echo "xdebug.remote_connect_back = 1" >> /etc/php7/conf.d/xdebug.ini && \
echo "xdebug.idekey=VSCODE" >> /etc/php7/conf.d/xdebug.ini && \
echo "daemonize yes" >> /etc/redis.conf && \
ln -s /dev/null /var/log/nginx/access.log && \
ln -s /dev/stdout /var/log/nginx/error.log && \
RUN mkdir -p /run/php && \
sed -i 's/error_log = \/var\/log\/php7.4-fpm.log/error_log = \/dev\/stderr/g' /etc/php/7.4/fpm/php-fpm.conf && \
sed -i 's/;daemonize = yes/daemonize = no/g' /etc/php/7.4/fpm/php-fpm.conf && \
sed -i 's/listen = \/run\/php\/php7.4-fpm.sock/listen = 9000/g' /etc/php/7.4/fpm/pool.d/www.conf && \
sed -i 's/;request_terminate_timeout = 0/request_terminate_timeout = 30/g' /etc/php/7.4/fpm/pool.d/www.conf && \
sed -i 's/;request_terminate_timeout_track_finished = no/request_terminate_timeout_track_finished = yes/g' /etc/php/7.4/fpm/pool.d/www.conf && \
sed -i 's/;decorate_workers_output = no/decorate_workers_output = no/g' /etc/php/7.4/fpm/pool.d/www.conf && \
sed -i 's/;catch_workers_output = yes/catch_workers_output = yes/g' /etc/php/7.4/fpm/pool.d/www.conf && \
sed -i 's/pm.max_children = 5/pm.max_children = 1024/g' /etc/php/7.4/fpm/pool.d/www.conf && \
sed -i 's/pm.start_servers = 2/pm.start_servers = 50/g' /etc/php/7.4/fpm/pool.d/www.conf && \
sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /etc/php/7.4/fpm/pool.d/www.conf && \
sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 50/g' /etc/php/7.4/fpm/pool.d/www.conf && \
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/7.4/fpm/php.ini && \
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 30M/g' /etc/php/7.4/fpm/php.ini && \
sed -i 's/post_max_size = 8M/post_max_size = 30M/g' /etc/php/7.4/fpm/php.ini && \
echo "xdebug.remote_enable = 1" >> /etc/php/7.4/fpm/conf.d/20-xdebug.ini && \
echo "xdebug.remote_autostart = 1" >> /etc/php/7.4/fpm/conf.d/20-xdebug.ini && \
echo "xdebug.remote_connect_back = 1" >> /etc/php/7.4/fpm/conf.d/20-xdebug.ini && \
echo "xdebug.idekey=VSCODE" >> /etc/php/7.4/fpm/conf.d/20-xdebug.ini && \
cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime && \
echo "Europe/Berlin" > /etc/timezone && \
(crontab -l ; echo "* * * * * php /html/artisan schedule:run >> /dev/null 2>&1") | crontab -
...
...
@@ -63,7 +60,7 @@ RUN sed -i 's/;error_log = log\/php7\/error.log/error_log = \/dev\/stderr/g' /et
WORKDIR /html
EXPOSE 80
CMD chown -R root:
nginx
storage/logs/metager bootstrap/cache && \
CMD chown -R root:
www-data
storage/logs/metager bootstrap/cache && \
chmod -R g+w storage/logs/metager bootstrap/cache && \
cron
d
-L /dev/stdout && \
php-fpm7
cron -L /dev/stdout && \
php-fpm7
.4
chart/templates/deployment.yaml
View file @
cf3f59c5
...
...
@@ -179,7 +179,7 @@ spec:
{{
toYaml .Values.resourcesNginx | indent 12
}}
# Redis Container
-
name
:
{{
.Chart.Name
}}
-redis
image
:
"
redis:
5.0.3-alpine
"
image
:
"
redis:
6
"
imagePullPolicy
:
{{
.Values.image.pullPolicy
}}
command
:
[
"
redis-server"
,
"
/usr/local/etc/redis/redis.conf"
]
volumeMounts
:
...
...
@@ -206,7 +206,7 @@ spec:
-
name
:
{{
.Chart.Name
}}
-fetcher
image
:
"
{{
.Values.image.repository
}}:{{
.Values.image.tag
}}"
command
:
[
"
su"
]
args
:
[
"
-s"
,
"
/bin/sh"
,
"
-c"
,
"
php
artisan
requests:fetcher"
,
"
nginx
"
]
args
:
[
"
-s"
,
"
/bin/sh"
,
"
-c"
,
"
php
artisan
requests:fetcher"
,
"
www-data
"
]
volumeMounts
:
-
name
:
secrets
mountPath
:
/html/.env
...
...
config/nginx-default-dev.conf
View file @
cf3f59c5
...
...
@@ -6,9 +6,6 @@ server {
client_max_body_size
30
M
;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location
/ {
try_files
$
uri
$
uri
/ /
index
.
php
?$
query_string
;
}
...
...
@@ -31,27 +28,4 @@ server {
location
= /
50
x
.
html
{
root
/
usr
/
share
/
nginx
/
html
;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
\ No newline at end of file
config/nginx-default.conf
View file @
cf3f59c5
...
...
@@ -6,9 +6,6 @@ server {
client_max_body_size
30
M
;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location
/ {
try_files
$
uri
$
uri
/ /
index
.
php
?$
query_string
;
}
...
...
@@ -22,35 +19,10 @@ server {
include
fastcgi_params
;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page
500
502
503
504
/
50
x
.
html
;
location
= /
50
x
.
html
{
root
/
usr
/
share
/
nginx
/
html
;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
\ No newline at end of file
config/nginx.conf
View file @
cf3f59c5
user
www-data
;
worker_processes
auto
;
user
nginx
;
worker_processes
100
;
error_log
/var/log/nginx/error.log
warn
;
pid
/var/run/nginx.pid
;
error_log
/dev/stdout
warn
;
pid
/run/nginx.pid
;
daemon
off
;
...
...
@@ -20,15 +19,18 @@ http {
'
$status
$body_bytes_sent
"
$http_referer
"
'
'"
$http_user_agent
"
"
$http_x_forwarded_for
"'
;
access_log
/
var/log/nginx/access.log
main
;
access_log
/
dev/null
main
;
sendfile
on
;
#tcp_nopush on;
keepalive_timeout
65
;
client_max_body_size
30M
;
keepalive_timeout
65
;
keepalive_requests
50
;
gzip
on
;
include
/etc/nginx/conf.d/*.conf
;
}
\ No newline at end of file
include
/etc/nginx/sites-enabled/*
;
}
docker-compose.yml
View file @
cf3f59c5
...
...
@@ -14,11 +14,11 @@ services:
dependencies
:
depends_on
:
-
"
mgdb"
image
:
php:7.3-cli
-alpine
image
:
php:7.3-cli
volumes
:
-
.:/data
working_dir
:
/data
command
:
/bin/sh -c "
apk add --update dos2unix && dos2unix ./init.sh && ./init.sh && .
/init.sh"
command
:
/bin/sh -c "
/data
/init.sh"
mgdb
:
restart
:
on-failure
image
:
mariadb:latest
...
...
@@ -30,7 +30,7 @@ services:
-
MYSQL_DATABASE=metager
redis
:
restart
:
on-failure
image
:
redis:6
.0-rc1-alpine
image
:
redis:6
phpfpm
:
depends_on
:
-
"
mgdb"
...
...
@@ -67,7 +67,7 @@ services:
working_dir
:
/html
volumes
:
-
.:/html
command
:
"
su
-s
/bin/sh
-c
'php
artisan
requests:fetcher'
nginx
"
command
:
"
su
-s
/bin/sh
-c
'php
artisan
requests:fetcher'
www-data
"
test
:
depends_on
:
-
"
phpfpm"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment