Improve docker build to use hooks
This commit is contained in:
@@ -17,3 +17,4 @@ Vagrantfile
|
|||||||
web.config
|
web.config
|
||||||
bower_components
|
bower_components
|
||||||
node_modules
|
node_modules
|
||||||
|
hooks
|
||||||
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -21,6 +21,7 @@ composer.json export-ignore
|
|||||||
composer.lock export-ignore
|
composer.lock export-ignore
|
||||||
gulpfile.js export-ignore
|
gulpfile.js export-ignore
|
||||||
package.json export-ignore
|
package.json export-ignore
|
||||||
|
hooks export-ignore
|
||||||
|
|
||||||
assets/sass export-ignore
|
assets/sass export-ignore
|
||||||
assets/js/components export-ignore
|
assets/js/components export-ignore
|
||||||
|
|||||||
36
Dockerfile
36
Dockerfile
@@ -1,12 +1,30 @@
|
|||||||
FROM fguillot/alpine-nginx-php7
|
FROM alpine:3.6
|
||||||
|
|
||||||
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
|
|
||||||
COPY docker/php/env.conf /etc/php7/php-fpm.d/env.conf
|
|
||||||
|
|
||||||
RUN chown -R nginx:nginx /var/www/app/data /var/www/app/plugins
|
|
||||||
|
|
||||||
VOLUME /var/www/app/data
|
VOLUME /var/www/app/data
|
||||||
VOLUME /var/www/app/plugins
|
VOLUME /var/www/app/plugins
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
ARG VERSION
|
||||||
|
|
||||||
|
RUN apk update && \
|
||||||
|
apk add unzip nginx bash ca-certificates s6 curl ssmtp mailx php7 php7-phar php7-curl \
|
||||||
|
php7-fpm php7-json php7-zlib php7-xml php7-dom php7-ctype php7-opcache php7-zip php7-iconv \
|
||||||
|
php7-pdo php7-pdo_mysql php7-pdo_sqlite php7-pdo_pgsql php7-mbstring php7-session \
|
||||||
|
php7-gd php7-mcrypt php7-openssl php7-sockets php7-posix php7-ldap php7-simplexml && \
|
||||||
|
rm -rf /var/cache/apk/* && \
|
||||||
|
rm -rf /var/www/localhost && \
|
||||||
|
rm -f /etc/php7/php-fpm.d/www.conf
|
||||||
|
|
||||||
|
RUN cd /tmp \
|
||||||
|
&& curl -sL -o kb.zip https://github.com/kanboard/kanboard/archive/$VERSION.zip \
|
||||||
|
&& unzip -qq kb.zip \
|
||||||
|
&& cd kanboard-* \
|
||||||
|
&& cp -R . /var/www/app \
|
||||||
|
&& cd /tmp \
|
||||||
|
&& rm -rf /tmp/kanboard-* /tmp/*.zip
|
||||||
|
|
||||||
|
ADD docker/ /
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
||||||
|
CMD []
|
||||||
|
|||||||
8
Makefile
8
Makefile
@@ -73,12 +73,6 @@ sql:
|
|||||||
@ grep -v "SET idle_in_transaction_session_timeout = 0;" app/Schema/Sql/postgres.sql > temp && mv temp app/Schema/Sql/postgres.sql
|
@ grep -v "SET idle_in_transaction_session_timeout = 0;" app/Schema/Sql/postgres.sql > temp && mv temp app/Schema/Sql/postgres.sql
|
||||||
|
|
||||||
docker-image:
|
docker-image:
|
||||||
@ docker build -t kanboard/kanboard:latest .
|
@ IMAGE_NAME=kanboard/kanboard:latest ./hooks/build
|
||||||
|
|
||||||
docker-push:
|
|
||||||
@ docker push kanboard/kanboard:latest
|
|
||||||
|
|
||||||
docker-run:
|
|
||||||
@ docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:latest
|
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
|
|||||||
69
docker/etc/nginx/nginx.conf
Normal file
69
docker/etc/nginx/nginx.conf
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
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/app;
|
||||||
|
client_max_body_size 32M;
|
||||||
|
|
||||||
|
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 ~* ^.+\.(log|sqlite)$ {
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ /\.ht {
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* ^.+\.(ico|jpg|gif|png|css|js|svg|eot|ttf|woff|woff2|otf)$ {
|
||||||
|
log_not_found off;
|
||||||
|
expires 7d;
|
||||||
|
etag on;
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
15
docker/etc/php7/conf.d/local.ini
Normal file
15
docker/etc/php7/conf.d/local.ini
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
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 = 32M
|
||||||
|
upload_max_filesize = 32M
|
||||||
|
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
|
||||||
19
docker/etc/php7/php-fpm.conf
Normal file
19
docker/etc/php7/php-fpm.conf
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
[global]
|
||||||
|
error_log = /proc/self/fd/2
|
||||||
|
log_level = error
|
||||||
|
daemonize = no
|
||||||
|
|
||||||
|
[www]
|
||||||
|
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
|
||||||
|
include = /etc/php7/php-fpm.d/env.conf
|
||||||
2
docker/etc/services.d/.s6-svscan/finish
Executable file
2
docker/etc/services.d/.s6-svscan/finish
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
/bin/true
|
||||||
3
docker/etc/services.d/nginx/run
Executable file
3
docker/etc/services.d/nginx/run
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/execlineb -P
|
||||||
|
|
||||||
|
nginx -g "daemon off;"
|
||||||
2
docker/etc/services.d/php/run
Executable file
2
docker/etc/services.d/php/run
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/execlineb -P
|
||||||
|
php-fpm7 -F
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
define('ENABLE_URL_REWRITE', true);
|
|
||||||
define('LOG_DRIVER', 'stderr');
|
|
||||||
6
docker/usr/local/bin/entrypoint.sh
Executable file
6
docker/usr/local/bin/entrypoint.sh
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
chown -R nginx:nginx /var/www/app/data
|
||||||
|
chown -R nginx:nginx /var/www/app/plugins
|
||||||
|
|
||||||
|
exec /bin/s6-svscan /etc/services.d
|
||||||
15
hooks/build
Executable file
15
hooks/build
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
VERSION=master
|
||||||
|
|
||||||
|
if [ "$SOURCE_BRANCH" != "" ]; then
|
||||||
|
VERSION=$SOURCE_BRANCH
|
||||||
|
|
||||||
|
if [ "$SOURCE_BRANCH" == "latest" ]; then
|
||||||
|
VERSION=master
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Building $VERSION"
|
||||||
|
|
||||||
|
docker build --build-arg VERSION=$VERSION -t $IMAGE_NAME .
|
||||||
Reference in New Issue
Block a user