Initial commit.
This commit is contained in:
commit
9113611283
10 changed files with 168 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
docker-compose.yml
|
5
db/Dockerfile
Normal file
5
db/Dockerfile
Normal file
|
@ -0,0 +1,5 @@
|
|||
FROM mariadb:latest
|
||||
|
||||
ADD innodb.cnf /etc/mysql/mariadb.conf.d/innodb.cnf
|
||||
|
||||
|
4
db/innodb.cnf
Normal file
4
db/innodb.cnf
Normal 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
33
docker-compose.yml.dist
Normal 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
BIN
webservice/.Dockerfile.swp
Normal file
Binary file not shown.
93
webservice/Dockerfile
Normal file
93
webservice/Dockerfile
Normal 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
5
webservice/crontab
Normal 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
|
8
webservice/nextcloud_php.ini
Normal file
8
webservice/nextcloud_php.ini
Normal 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
|
13
webservice/supervisord.conf
Normal file
13
webservice/supervisord.conf
Normal 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
|
6
webservice/update-htaccess.sh
Normal file
6
webservice/update-htaccess.sh
Normal 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
|
Loading…
Reference in a new issue