Use PHP7 for Docker image
This commit is contained in:
@@ -1 +0,0 @@
|
||||
1 0 * * * cd /var/www/kanboard && ./kanboard cronjob >/dev/null 2>&1
|
||||
@@ -1 +0,0 @@
|
||||
@daily www-data cd /var/www/html/kanboard && ./kanboard cronjob >/dev/null 2>&1
|
||||
@@ -1,3 +0,0 @@
|
||||
<?php
|
||||
|
||||
define('ENABLE_URL_REWRITE', true);
|
||||
@@ -1,72 +0,0 @@
|
||||
user nginx;
|
||||
worker_processes 1;
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
include mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
keepalive_timeout 65;
|
||||
server_tokens off;
|
||||
access_log off;
|
||||
error_log /dev/stderr;
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name localhost;
|
||||
index index.php;
|
||||
root /var/www/kanboard;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php$is_args$args;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
try_files $uri =404;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass unix:/var/run/php-fpm.sock;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_index index.php;
|
||||
include fastcgi_params;
|
||||
}
|
||||
|
||||
location /data {
|
||||
return 404;
|
||||
}
|
||||
|
||||
location ~* ^.+\.(log|sqlite)$ {
|
||||
return 404;
|
||||
}
|
||||
|
||||
location ~ /\.ht {
|
||||
return 404;
|
||||
}
|
||||
|
||||
location ~* ^.+\.(ico|jpg|gif|png|css|js|svg|eot|ttf|woff|woff2|otf)$ {
|
||||
expires 7d;
|
||||
etag on;
|
||||
}
|
||||
|
||||
client_max_body_size 32M;
|
||||
gzip on;
|
||||
gzip_comp_level 3;
|
||||
gzip_disable "msie6";
|
||||
gzip_vary on;
|
||||
gzip_types
|
||||
text/javascript
|
||||
application/javascript
|
||||
application/json
|
||||
text/xml
|
||||
application/xml
|
||||
application/rss+xml
|
||||
text/css
|
||||
text/plain;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
expose_php = Off
|
||||
error_reporting = E_ALL
|
||||
display_errors = Off
|
||||
log_errors = On
|
||||
error_log = /dev/stderr
|
||||
date.timezone = UTC
|
||||
allow_url_fopen = On
|
||||
post_max_size = 30M
|
||||
upload_max_filesize = 30M
|
||||
opcache.max_accelerated_files = 7963
|
||||
opcache.validate_timestamps = Off
|
||||
opcache.save_comments = 0
|
||||
opcache.load_comments = 0
|
||||
opcache.fast_shutdown = 1
|
||||
opcache.enable_file_override = On
|
||||
always_populate_raw_post_data = -1
|
||||
@@ -1,22 +0,0 @@
|
||||
[global]
|
||||
error_log = /dev/stderr
|
||||
log_level = error
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
env[DATABASE_URL] = $DATABASE_URL
|
||||
env[DEBUG] = $DEBUG
|
||||
env[LOG_DRIVER] = stderr
|
||||
|
||||
catch_workers_output = yes
|
||||
user = nginx
|
||||
group = nginx
|
||||
listen.owner = nginx
|
||||
listen.group = nginx
|
||||
listen = /var/run/php-fpm.sock
|
||||
pm = dynamic
|
||||
pm.max_children = 20
|
||||
pm.start_servers = 1
|
||||
pm.min_spare_servers = 1
|
||||
pm.max_spare_servers = 3
|
||||
pm.max_requests = 2048
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
/bin/true
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/execlineb -P
|
||||
nginx -g "daemon off;"
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/execlineb -P
|
||||
php-fpm -F
|
||||
@@ -1,6 +1,22 @@
|
||||
.git
|
||||
.git*
|
||||
.dockerignore
|
||||
.vagrant
|
||||
.idea
|
||||
data/*
|
||||
Makefile
|
||||
.*.yml
|
||||
*.json
|
||||
*.yml
|
||||
*.js
|
||||
*.md
|
||||
*.sh
|
||||
app.json
|
||||
bower.json
|
||||
nitrous.json
|
||||
package.json
|
||||
config.php
|
||||
Vagrantfile
|
||||
web.config
|
||||
Makefile
|
||||
bower_components
|
||||
node_modules
|
||||
|
||||
@@ -9,6 +9,7 @@ New features:
|
||||
|
||||
Improvements:
|
||||
|
||||
* Use PHP 7 for the Docker image
|
||||
* Preserve role for existing users when using ReverseProxy authentication
|
||||
* Handle priority for task and project duplication
|
||||
* Expose task reference field to the user interface
|
||||
|
||||
37
Dockerfile
37
Dockerfile
@@ -1,35 +1,12 @@
|
||||
FROM alpine:3.4
|
||||
MAINTAINER Frederic Guillot <fred@kanboard.net>
|
||||
FROM fguillot/alpine-nginx-php7
|
||||
|
||||
RUN apk update && \
|
||||
apk add nginx bash ca-certificates s6 curl \
|
||||
php5-fpm php5-json php5-zlib php5-xml php5-dom php5-ctype php5-opcache php5-zip \
|
||||
php5-pdo php5-pdo_mysql php5-pdo_sqlite php5-pdo_pgsql php5-ldap \
|
||||
php5-gd php5-mcrypt php5-openssl php5-phar && \
|
||||
rm -rf /var/cache/apk/*
|
||||
COPY . /var/www/app
|
||||
COPY docker/kanboard/config.php /var/www/app/config.php
|
||||
COPY docker/crontab/cronjob.alpine /var/spool/cron/crontabs/nginx
|
||||
COPY docker/services.d/cron /etc/services.d/cron
|
||||
|
||||
RUN curl -sS https://getcomposer.org/installer | php -- --filename=/usr/local/bin/composer
|
||||
|
||||
RUN cd /var/www \
|
||||
&& curl -LO https://github.com/fguillot/kanboard/archive/master.zip \
|
||||
&& unzip -qq master.zip \
|
||||
&& rm -f *.zip \
|
||||
&& mv kanboard-master kanboard \
|
||||
&& cd /var/www/kanboard && composer --prefer-dist --no-dev --optimize-autoloader --quiet install \
|
||||
&& chown -R nginx:nginx /var/www/kanboard \
|
||||
&& chown -R nginx:nginx /var/lib/nginx
|
||||
|
||||
COPY .docker/services.d /etc/services.d
|
||||
COPY .docker/php/conf.d/local.ini /etc/php5/conf.d/
|
||||
COPY .docker/php/php-fpm.conf /etc/php5/
|
||||
COPY .docker/nginx/nginx.conf /etc/nginx/
|
||||
COPY .docker/kanboard/config.php /var/www/kanboard/
|
||||
COPY .docker/crontab/cronjob.alpine /var/spool/cron/crontabs/nginx
|
||||
|
||||
EXPOSE 80
|
||||
RUN cd /var/www/app && composer --prefer-dist --no-dev --optimize-autoloader --quiet install
|
||||
RUN chown -R nginx:nginx /var/www/app/data /var/www/app/plugins
|
||||
|
||||
VOLUME /var/www/kanboard/data
|
||||
VOLUME /var/www/kanboard/plugins
|
||||
|
||||
ENTRYPOINT ["/bin/s6-svscan", "/etc/services.d"]
|
||||
CMD []
|
||||
|
||||
3
Makefile
3
Makefile
@@ -26,7 +26,8 @@ archive:
|
||||
@ rm -rf ${BUILD_DIR}/kanboard/*.lock
|
||||
@ rm -rf ${BUILD_DIR}/kanboard/*.json
|
||||
@ rm -rf ${BUILD_DIR}/kanboard/*.js
|
||||
@ rm -rf ${BUILD_DIR}/kanboard/.docker
|
||||
@ rm -rf ${BUILD_DIR}/kanboard/.dockerignore
|
||||
@ rm -rf ${BUILD_DIR}/kanboard/docker
|
||||
@ rm -rf ${BUILD_DIR}/kanboard/nitrous*
|
||||
@ cd ${BUILD_DIR}/kanboard && find ./vendor -name doc -type d -exec rm -rf {} +;
|
||||
@ cd ${BUILD_DIR}/kanboard && find ./vendor -name notes -type d -exec rm -rf {} +;
|
||||
|
||||
@@ -21,7 +21,7 @@ defined('PLUGIN_INSTALLER') or define('PLUGIN_INSTALLER', true);
|
||||
defined('DEBUG') or define('DEBUG', strtolower(getenv('DEBUG')) === 'true');
|
||||
|
||||
// Logging drivers: syslog, stdout, stderr or file
|
||||
defined('LOG_DRIVER') or define('LOG_DRIVER', getenv('LOG_DRIVER'));
|
||||
defined('LOG_DRIVER') or define('LOG_DRIVER', '');
|
||||
|
||||
// Logging file
|
||||
defined('LOG_FILE') or define('LOG_FILE', DATA_DIR.DIRECTORY_SEPARATOR.'debug.log');
|
||||
|
||||
@@ -3,17 +3,17 @@ How to run Kanboard with Docker?
|
||||
|
||||
Kanboard can run easily with [Docker](https://www.docker.com).
|
||||
|
||||
The image size is approximately **50MB** and contains:
|
||||
The image size is approximately **70MB** and contains:
|
||||
|
||||
- [Alpine Linux](http://alpinelinux.org/)
|
||||
- The [process manager S6](http://skarnet.org/software/s6/)
|
||||
- Nginx
|
||||
- PHP-FPM
|
||||
- PHP 7
|
||||
|
||||
The Kanboard cronjob is also running everyday at midnight.
|
||||
URL rewriting is enabled in the included config file.
|
||||
|
||||
When the container is running, the memory utilization is around **20MB**.
|
||||
When the container is running, the memory utilization is around **30MB**.
|
||||
|
||||
Use the stable version
|
||||
----------------------
|
||||
|
||||
@@ -7,4 +7,3 @@ Environment variables maybe useful when Kanboard is deployed as container (Docke
|
||||
|---------------|---------------------------------------------------------------------------------------------------------------------------------|
|
||||
| DATABASE_URL | `[database type]://[username]:[password]@[host]:[port]/[database name]`, example: `postgres://foo:foo@myserver:5432/kanboard` |
|
||||
| DEBUG | Enable/Disable debug mode: "true" or "false" |
|
||||
| LOG_DRIVER | Logging driver: stdout, stderr, file or syslog |
|
||||
|
||||
1
docker/crontab/cronjob.alpine
Normal file
1
docker/crontab/cronjob.alpine
Normal file
@@ -0,0 +1 @@
|
||||
1 0 * * * cd /var/www/app && ./kanboard cronjob
|
||||
2
docker/php/env.conf
Normal file
2
docker/php/env.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
env[DATABASE_URL] = $DATABASE_URL
|
||||
env[DEBUG] = $DEBUG
|
||||
Reference in New Issue
Block a user