Initial commit.

This commit is contained in:
madmaurice 2017-09-07 17:43:00 +02:00 committed by Hive
commit 9113611283
10 changed files with 168 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
docker-compose.yml

5
db/Dockerfile Normal file
View file

@ -0,0 +1,5 @@
FROM mariadb:latest
ADD innodb.cnf /etc/mysql/mariadb.conf.d/innodb.cnf

4
db/innodb.cnf Normal file
View file

@ -0,0 +1,4 @@
[mysqld]
innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=1

33
docker-compose.yml.dist Normal file
View file

@ -0,0 +1,33 @@
version: "2"
services:
webservice:
build: ./webservice
volumes:
- "/nextcloud/config:/var/www/html/config"
- "/nextcloud/data:/var/www/html/data"
ports:
- "8000:80"
networks:
- web
- internal
db:
build: ./db
volumes:
- "/nextcloud/db:/var/lib/mysql"
environment:
- MYSQL_ROOT_PASSWORD=toor
networks:
- internal
redis:
image: redis
networks:
- internal
networks:
web:
external:
name: proxy_web
internal:

BIN
webservice/.Dockerfile.swp Normal file

Binary file not shown.

93
webservice/Dockerfile Normal file
View file

@ -0,0 +1,93 @@
FROM php:apache
ENV NEXTCLOUD_VERSION 12.0.2
RUN \
apt-get update && \
apt-get install -y --no-install-recommends \
supervisor \
cron \
sudo \
libav-tools \
libldap2-dev \
libxml2-dev \
libpng-dev \
libcurl4-openssl-dev \
libmagickwand-dev \
libbz2-dev \
icu-devtools \
libicu-dev \
libmcrypt-dev \
libfreetype6-dev \
libssl-dev \
libjpeg-dev \
curl \
cron && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
#Dirty hack to circumvent bug in phpize which is open since May 2016
#Basically the "missing" config.m4 is named "config0.m4"
#This tries to install zlib and if it doesn't work then rename the file and try again"
RUN \
docker-php-ext-install zlib || \
( mv /usr/src/php/ext/zlib/config0.m4 /usr/src/php/ext/zlib/config.m4 && \
docker-php-ext-install zlib )
# See above
RUN \
docker-php-ext-install openssl || \
( mv /usr/src/php/ext/openssl/config0.m4 /usr/src/php/ext/openssl/config.m4 && \
docker-php-ext-install openssl )
RUN \
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu && \
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \
docker-php-ext-install \
ldap \
ctype \
dom \
gd \
iconv \
json \
mbstring \
xmlwriter \
zip \
pdo_mysql \
curl \
bz2 \
intl \
opcache \
mcrypt && \
CFLAGS="-I/usr/src/php" docker-php-ext-install xmlreader
RUN \
pecl install -o -f redis imagick-beta && \
rm -rf /tmp/pear && \
docker-php-ext-enable redis imagick
# Activate user-defined .htaccess
RUN \
a2enmod rewrite env
# Add extra configuration to php.ini
ADD nextcloud_php.ini /usr/local/etc/php/conf.d/nextcloud_php.ini
RUN \
curl -o /tmp/nextcloud.tar.bz2 https://download.nextcloud.com/server/releases/nextcloud-${NEXTCLOUD_VERSION}.tar.bz2 && \
tar xvjf /tmp/nextcloud.tar.bz2 -C /tmp && \
rm -rf /var/www/html && \
mv /tmp/nextcloud /var/www/html && \
chown -R www-data:www-data /var/www/html && \
rm /tmp/nextcloud.tar.bz2
# Add supervisor and cron config
ADD crontab /etc/crontab
ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf
ADD update-htaccess.sh /update-htaccess.sh
RUN chmod +x /update-htaccess.sh
VOLUME ["/var/www/html/config","/var/www/html/data"]
ENTRYPOINT ["supervisord"]

5
webservice/crontab Normal file
View file

@ -0,0 +1,5 @@
# Running cron.php
SHELL=/bin/sh
# Run cron.php every 15 minutes
*/15 * * * * cd /var/www/html && sudo -u www-data php ./cron.php

View file

@ -0,0 +1,8 @@
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

View file

@ -0,0 +1,13 @@
[supervisord]
nodaemon=true
[program:htaccess-update]
command=/update-htaccess.sh
startsecs=0
[program:apache]
command=apache2-foreground
[program:crond]
command = cron -f
startsecs = 5

View file

@ -0,0 +1,6 @@
#!/bin/bash
[ -f "/var/www/html/config/config.php" ] || exit 0
cd /var/www/html
sudo -u www-data php occ maintenance:update:htaccess