mirror of
https://codeberg.org/icewind/haze.git
synced 2026-06-03 17:14:08 +02:00
cleanup submodule
This commit is contained in:
parent
f02d970503
commit
677383ab5a
28 changed files with 574 additions and 1 deletions
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 2f75a115ed8964225cb158ce43474ee270bf1b27
|
|
||||||
1
images/haze/.dockerignore
Normal file
1
images/haze/.dockerignore
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
.git
|
||||||
3
images/haze/.gitignore
vendored
Normal file
3
images/haze/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
*.tar.bz2
|
||||||
|
*.tar.bz2.asc
|
||||||
|
.vagrant/
|
||||||
33
images/haze/Dockerfile
Normal file
33
images/haze/Dockerfile
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
FROM icewind1991/haze-php:7.4
|
||||||
|
MAINTAINER Robin Appelman <robin@icewind.nl>
|
||||||
|
# MAINTAINER Robin Schneider <ypid@riseup.net>
|
||||||
|
# MAINTAINER silvio <silvio@port1024.net>
|
||||||
|
# MAINTAINER Josh Chaney <josh@chaney.io>
|
||||||
|
|
||||||
|
RUN DEBIAN_FRONTEND=noninteractive ;\
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install --assume-yes \
|
||||||
|
cron \
|
||||||
|
redis-server \
|
||||||
|
smbclient \
|
||||||
|
sudo \
|
||||||
|
wget \
|
||||||
|
attr \
|
||||||
|
git \
|
||||||
|
neovim \
|
||||||
|
nano
|
||||||
|
|
||||||
|
RUN wget https://phar.phpunit.de/phpunit-8.phar -O /usr/local/bin/phpunit.phar
|
||||||
|
|
||||||
|
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/s3.php configs/swift.php configs/swiftv3.php configs/azure.php configs/config.php /root/
|
||||||
|
ADD configs/nginx-app.conf /etc/nginx/
|
||||||
|
|
||||||
|
RUN mkdir --parent /var/log/cron
|
||||||
|
ADD configs/cron.conf /etc/oc-cron.conf
|
||||||
|
RUN crontab /etc/oc-cron.conf
|
||||||
|
|
||||||
|
ADD misc/bootstrap.sh misc/occ misc/tests misc/phpunit misc/install misc/occ misc/integration /usr/local/bin/
|
||||||
|
|
||||||
|
ENV WEBROOT /var/www/html
|
||||||
|
|
||||||
|
ENTRYPOINT ["bootstrap.sh"]
|
||||||
9
images/haze/configs/autoconfig_ldap.php
Normal file
9
images/haze/configs/autoconfig_ldap.php
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$AUTOCONFIG = [
|
||||||
|
'dbname' => 'haze',
|
||||||
|
'dbhost' => 'pgsql',
|
||||||
|
'dbuser' => 'haze',
|
||||||
|
'dbpass' => 'haze',
|
||||||
|
'dbtype' => 'pgsql'
|
||||||
|
];
|
||||||
9
images/haze/configs/autoconfig_mysql.php
Normal file
9
images/haze/configs/autoconfig_mysql.php
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$AUTOCONFIG = [
|
||||||
|
'dbname' => 'haze',
|
||||||
|
'dbhost' => 'mysql',
|
||||||
|
'dbuser' => 'haze',
|
||||||
|
'dbpass' => 'haze',
|
||||||
|
'dbtype' => 'mysql'
|
||||||
|
];
|
||||||
9
images/haze/configs/autoconfig_oci.php
Normal file
9
images/haze/configs/autoconfig_oci.php
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$AUTOCONFIG = [
|
||||||
|
'dbname' => 'xe',
|
||||||
|
'dbhost' => 'oci',
|
||||||
|
'dbuser' => 'system',
|
||||||
|
'dbpass' => 'oracle',
|
||||||
|
'dbtype' => 'oci'
|
||||||
|
];
|
||||||
9
images/haze/configs/autoconfig_pgsql.php
Normal file
9
images/haze/configs/autoconfig_pgsql.php
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$AUTOCONFIG = [
|
||||||
|
'dbname' => 'haze',
|
||||||
|
'dbhost' => 'pgsql',
|
||||||
|
'dbuser' => 'haze',
|
||||||
|
'dbpass' => 'haze',
|
||||||
|
'dbtype' => 'pgsql'
|
||||||
|
];
|
||||||
10
images/haze/configs/azure.php
Normal file
10
images/haze/configs/azure.php
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
'objectstore' => [
|
||||||
|
'class' => 'OC\\Files\\ObjectStore\\Azure',
|
||||||
|
'arguments' => array(
|
||||||
|
'container' => 'test',
|
||||||
|
'account_name' => 'devstoreaccount1',
|
||||||
|
'account_key' => 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==',
|
||||||
|
'endpoint' => 'http://azure:10000/devstoreaccount1',
|
||||||
|
'autocreate' => true
|
||||||
|
)
|
||||||
|
],
|
||||||
8
images/haze/configs/config.php
Normal file
8
images/haze/configs/config.php
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?php $CONFIG=[
|
||||||
|
'appstoreenabled' => false,
|
||||||
|
'memcache.local' => '\\OC\\Memcache\\APCu',
|
||||||
|
'memcache.distributed' => '\\OC\\Memcache\\APCu',
|
||||||
|
'memcache.locking' => '\\OC\\Memcache\\APCu',
|
||||||
|
'allow_local_remote_servers' => true,
|
||||||
|
//PLACEHOLDER
|
||||||
|
];
|
||||||
2
images/haze/configs/cron.conf
Normal file
2
images/haze/configs/cron.conf
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
# m h dom mon dow command
|
||||||
|
*/15 * * * * sudo -u www-data php -f /var/www/owncloud/cron.php >> /var/log/cron/owncloud.log 2>&1
|
||||||
10
images/haze/configs/ldap.php
Normal file
10
images/haze/configs/ldap.php
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
'objectstore' => [
|
||||||
|
'class' => 'OC\\Files\\ObjectStore\\Azure',
|
||||||
|
'arguments' => array(
|
||||||
|
'container' => 'test',
|
||||||
|
'account_name' => 'devstoreaccount1',
|
||||||
|
'account_key' => 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==',
|
||||||
|
'endpoint' => 'http://azure:10000/devstoreaccount1',
|
||||||
|
'autocreate' => true
|
||||||
|
)
|
||||||
|
],
|
||||||
22
images/haze/configs/ldap/seed.ldif
Normal file
22
images/haze/configs/ldap/seed.ldif
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Entry 3: cn=ldaptest,dc=example,dc=org
|
||||||
|
dn: cn=ldaptest,dc=example,dc=org
|
||||||
|
cn: ldaptest
|
||||||
|
gidnumber: 500
|
||||||
|
givenname: ldap
|
||||||
|
homedirectory: /home/users/ldaptest
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
objectclass: posixAccount
|
||||||
|
objectclass: top
|
||||||
|
objectclass: organizationalPerson
|
||||||
|
sn: test
|
||||||
|
uid: ldaptest
|
||||||
|
uidnumber: 1000
|
||||||
|
# userpassword = test
|
||||||
|
userpassword: {MD5}CY9rzUYh03PK3k6DJie09g==
|
||||||
|
|
||||||
|
# Entry 4: cn=test,dc=example,dc=org
|
||||||
|
dn: cn=test,dc=example,dc=org
|
||||||
|
cn: test
|
||||||
|
gidnumber: 500
|
||||||
|
objectclass: posixGroup
|
||||||
|
objectclass: top
|
||||||
19
images/haze/configs/nginx-app.conf
Normal file
19
images/haze/configs/nginx-app.conf
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
error_page 403 /core/templates/403.php;
|
||||||
|
error_page 404 /core/templates/404.php;
|
||||||
|
|
||||||
|
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
## The following 2 rules are only needed with webfinger
|
||||||
|
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
|
||||||
|
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
|
||||||
|
|
||||||
|
rewrite ^/.well-known/carddav /remote.php/dav/ permanent;
|
||||||
|
rewrite ^/.well-known/caldav /remote.php/dav/ permanent;
|
||||||
|
|
||||||
|
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
|
||||||
|
|
||||||
|
try_files $uri $uri/ index.php;
|
||||||
|
}
|
||||||
14
images/haze/configs/s3.php
Normal file
14
images/haze/configs/s3.php
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
'objectstore' => [
|
||||||
|
'class' => 'OC\Files\ObjectStore\S3',
|
||||||
|
'arguments' => [
|
||||||
|
// replace with your bucket
|
||||||
|
'bucket' => 'nextcloud',
|
||||||
|
'autocreate' => true,
|
||||||
|
'key' => 'dummy',
|
||||||
|
'secret' => 'dummyj',
|
||||||
|
'hostname' => 's3',
|
||||||
|
'port' => 4569,
|
||||||
|
'use_ssl' => false,
|
||||||
|
'use_path_style'=>true
|
||||||
|
],
|
||||||
|
],
|
||||||
14
images/haze/configs/swift.php
Normal file
14
images/haze/configs/swift.php
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
'objectstore' => [
|
||||||
|
'class' => 'OC\Files\ObjectStore\Swift',
|
||||||
|
'arguments' => [
|
||||||
|
// replace with your bucket
|
||||||
|
'bucket' => 'nextcloud',
|
||||||
|
'autocreate' => true,
|
||||||
|
'username' => 'swift',
|
||||||
|
'password' => 'swift',
|
||||||
|
'tenantName' => 'service',
|
||||||
|
'region' => 'regionOne',
|
||||||
|
'url' => 'http://keystone:5000/v2.0',
|
||||||
|
'serviceName' => 'swift',
|
||||||
|
],
|
||||||
|
],
|
||||||
27
images/haze/configs/swiftv3.php
Normal file
27
images/haze/configs/swiftv3.php
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
'objectstore' => [
|
||||||
|
'class' => 'OC\Files\ObjectStore\Swift',
|
||||||
|
'arguments' => [
|
||||||
|
// replace with your bucket
|
||||||
|
'bucket' => 'nextcloud',
|
||||||
|
'autocreate' => true,
|
||||||
|
'user' => [
|
||||||
|
'name' => 'swift',
|
||||||
|
'password' => 'swift',
|
||||||
|
'domain' => [
|
||||||
|
'name' => 'default',
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'scope' => [
|
||||||
|
'project' => [
|
||||||
|
'name' => 'service',
|
||||||
|
'domain' => [
|
||||||
|
'name' => 'default',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'tenantName' => 'service',
|
||||||
|
'region' => 'regionOne',
|
||||||
|
'url' => 'http://keystone:5000/v3',
|
||||||
|
'serviceName' => 'swift',
|
||||||
|
],
|
||||||
|
],
|
||||||
60
images/haze/misc/bootstrap.sh
Executable file
60
images/haze/misc/bootstrap.sh
Executable file
|
|
@ -0,0 +1,60 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
touch /var/log/nginx/access.log
|
||||||
|
touch /var/log/nginx/error.log
|
||||||
|
touch /var/log/cron/owncloud.log
|
||||||
|
|
||||||
|
cp /root/config.php /var/www/html/config/config.php
|
||||||
|
|
||||||
|
if [ "$SQL" = "mysql" ]
|
||||||
|
then
|
||||||
|
cp /root/autoconfig_mysql.php /var/www/html/config/autoconfig.php
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$SQL" = "pgsql" ]
|
||||||
|
then
|
||||||
|
cp /root/autoconfig_pgsql.php /var/www/html/config/autoconfig.php
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$SQL" = "oci" ]
|
||||||
|
then
|
||||||
|
cp /root/autoconfig_oci.php /var/www/html/config/autoconfig.php
|
||||||
|
fi
|
||||||
|
|
||||||
|
UID=${UID:-www-data}
|
||||||
|
GID=${GID:-www-data}
|
||||||
|
|
||||||
|
echo "Running as $UID:$GID"
|
||||||
|
|
||||||
|
chown -R $UID:$GID /var/www/html/data /var/www/html/config
|
||||||
|
chown $UID:$GID /var/www/html/core/skeleton /var/www/html/build/integration/vendor /var/www/html/build/integration/composer.lock /var/www/html/build/integration/output /var/www/html/build/integration/work /var/www/html/core/skeleton /var/www/.composer/cache /var/www/html/apps/spreed/tests/integration/vendor/composer
|
||||||
|
|
||||||
|
echo "{}" > /var/www/html/build/integration/composer.lock
|
||||||
|
|
||||||
|
echo "Starting server using $SQL database…"
|
||||||
|
|
||||||
|
tail --follow --retry /var/log/nginx/*.log /var/log/cron/owncloud.log &
|
||||||
|
|
||||||
|
if [ -n "$S3" ]
|
||||||
|
then
|
||||||
|
sed -i '/\/\/PLACEHOLDER/ r /root/s3.php' /var/www/html/config/config.php
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$SWIFT" ]
|
||||||
|
then
|
||||||
|
sed -i '/\/\/PLACEHOLDER/ r /root/swift.php' /var/www/html/config/config.php
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$SWIFTV3" ]
|
||||||
|
then
|
||||||
|
sed -i '/\/\/PLACEHOLDER/ r /root/swiftv3.php' /var/www/html/config/config.php
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$AZURE" ]
|
||||||
|
then
|
||||||
|
sed -i '/\/\/PLACEHOLDER/ r /root/azure.php' /var/www/html/config/config.php
|
||||||
|
fi
|
||||||
|
|
||||||
|
/usr/sbin/cron -f &
|
||||||
|
/usr/bin/redis-server &
|
||||||
|
/usr/local/bin/bootstrap-nginx.sh
|
||||||
18
images/haze/misc/install
Executable file
18
images/haze/misc/install
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
USER=$1
|
||||||
|
PASSWORD=$2
|
||||||
|
|
||||||
|
if [ -z "$USER" ] || [ -z "$PASSWORD" ]; then
|
||||||
|
echo "Usage: install \$USER \$PASSWORD"
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd $WEBROOT
|
||||||
|
|
||||||
|
if [ "$SQL" = "oci" ]; then
|
||||||
|
# oracle is a special snowflake
|
||||||
|
occ maintenance:install --admin-user=$USER --admin-pass=$PASSWORD --database=$SQL --database-name=xe --database-host=$SQL --database-user=system --database-pass=oracle
|
||||||
|
else
|
||||||
|
occ maintenance:install --admin-user=$USER --admin-pass=$PASSWORD --database=$SQL --database-name=haze --database-host=$SQL --database-user=haze --database-pass=haze
|
||||||
|
fi;
|
||||||
4
images/haze/misc/integration
Executable file
4
images/haze/misc/integration
Executable file
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cd $WEBROOT/build/integration
|
||||||
|
sudo -u www-data ./run.sh "$@"
|
||||||
23
images/haze/misc/nccomposer
Executable file
23
images/haze/misc/nccomposer
Executable file
|
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SQL=sqlite
|
||||||
|
PHP_VERSION=7
|
||||||
|
EXTRA_ARG=""
|
||||||
|
WORKDIR="/tmp/oc-docker"
|
||||||
|
|
||||||
|
echo "Starting servers"
|
||||||
|
CONTAINERS=`ncserver $SQL $PHP_VERSION $EXTRA_ARG | tail -2 | head -1`
|
||||||
|
|
||||||
|
IFS=',' read -a CONTAINERS <<< "$CONTAINERS"
|
||||||
|
|
||||||
|
echo "Composer install"
|
||||||
|
docker exec ${CONTAINERS[0]} composer install
|
||||||
|
|
||||||
|
docker exec ${CONTAINERS[0]} composer run $@
|
||||||
|
|
||||||
|
docker exec ${CONTAINERS[0]} git clean -fd lib/composer > /dev/null
|
||||||
|
docker exec ${CONTAINERS[0]} git checkout lib/composer > /dev/null
|
||||||
|
|
||||||
|
docker rm -f ${CONTAINERS[0]}
|
||||||
|
|
||||||
|
sudo rm -rf $WORKDIR/${CONTAINERS[0]}
|
||||||
24
images/haze/misc/ncfmt
Executable file
24
images/haze/misc/ncfmt
Executable file
|
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SQL=sqlite
|
||||||
|
PHP_VERSION=7
|
||||||
|
EXTRA_ARG=""
|
||||||
|
WORKDIR="/tmp/oc-docker"
|
||||||
|
|
||||||
|
echo "Starting servers"
|
||||||
|
CONTAINERS=`ncserver $SQL $PHP_VERSION $EXTRA_ARG | tail -2 | head -1`
|
||||||
|
|
||||||
|
IFS=',' read -a CONTAINERS <<< "$CONTAINERS"
|
||||||
|
|
||||||
|
echo "Composer install"
|
||||||
|
docker exec ${CONTAINERS[0]} composer install
|
||||||
|
|
||||||
|
echo "Format"
|
||||||
|
docker exec ${CONTAINERS[0]} composer run cs:fix $@
|
||||||
|
|
||||||
|
docker exec ${CONTAINERS[0]} git clean -fd lib/composer
|
||||||
|
docker exec ${CONTAINERS[0]} git checkout lib/composer
|
||||||
|
|
||||||
|
docker rm -f ${CONTAINERS[0]}
|
||||||
|
|
||||||
|
sudo rm -rf $WORKDIR/${CONTAINERS[0]}
|
||||||
32
images/haze/misc/ncintegration
Executable file
32
images/haze/misc/ncintegration
Executable file
|
|
@ -0,0 +1,32 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SQL=$1
|
||||||
|
PHP_VERSION=$2
|
||||||
|
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
|
||||||
|
echo "Starting servers"
|
||||||
|
CONTAINERS=`ncserver $SQL $PHP_VERSION | tail -2 | head -1`
|
||||||
|
|
||||||
|
IFS=',' read -a CONTAINERS <<< "$CONTAINERS"
|
||||||
|
|
||||||
|
echo "Waiting for things to settle"
|
||||||
|
if [ "$SQL" = "" ] || [ "$SQL" = "sqlite" ]; then
|
||||||
|
sleep 2 # less servers to wait for
|
||||||
|
elif [ "$SQL" = "oci" ]; then
|
||||||
|
sleep 30 # oracle is always a bit lazy
|
||||||
|
else
|
||||||
|
sleep 15
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Installing"
|
||||||
|
docker exec ${CONTAINERS[0]} install admin admin
|
||||||
|
|
||||||
|
echo "Starting tests"
|
||||||
|
docker exec -t ${CONTAINERS[0]} integration $@
|
||||||
|
|
||||||
|
echo "Cleaning up"
|
||||||
|
|
||||||
|
docker kill ${CONTAINERS[0]} ${CONTAINERS[1]}
|
||||||
|
docker rm ${CONTAINERS[0]} ${CONTAINERS[1]}
|
||||||
132
images/haze/misc/ncserver
Executable file
132
images/haze/misc/ncserver
Executable file
|
|
@ -0,0 +1,132 @@
|
||||||
|
#!/bin/bash
|
||||||
|
OC_SOURCE="/srv/http/owncloud"
|
||||||
|
WORKDIR="/tmp/oc-docker"
|
||||||
|
HOST_IP=$(ip -4 route get 8.8.8.8 | awk {'print $7'} | tr -d '\n')
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname $( dirname $( realpath "${BASH_SOURCE[0]}" ) ) )" && pwd )"
|
||||||
|
if [ -f "$DIR/.env" ]; then
|
||||||
|
export $(cat "$DIR/.env" | grep -v ^# | xargs)
|
||||||
|
fi
|
||||||
|
SQL=$1
|
||||||
|
PORT=`python -c 'import socket; s=socket.socket(); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'`
|
||||||
|
NAME="oc-$PORT";
|
||||||
|
SQL_PASS=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c32;echo;`
|
||||||
|
|
||||||
|
mkdir -p "$WORKDIR/$NAME/data"
|
||||||
|
mkdir -p "$WORKDIR/$NAME/config"
|
||||||
|
mkdir -p "$WORKDIR/$NAME/data-autotest"
|
||||||
|
mkdir -p "$WORKDIR/$NAME/skeleton"
|
||||||
|
mkdir -p "$WORKDIR/$NAME/integration"
|
||||||
|
mkdir -p "$WORKDIR/$NAME/integration/output"
|
||||||
|
mkdir -p "$WORKDIR/$NAME/integration/work"
|
||||||
|
mkdir -p "$WORKDIR/$NAME/integration/vendor"
|
||||||
|
mkdir -p "$WORKDIR/$NAME/spreed/integration/vendor"
|
||||||
|
touch "$WORKDIR/$NAME/integration/composer.lock"
|
||||||
|
touch "$WORKDIR/$NAME/config/CAN_INSTALL"
|
||||||
|
touch "$WORKDIR/$NAME/phpunit-cache"
|
||||||
|
|
||||||
|
mkdir -p "$WORKDIR/composer/cache"
|
||||||
|
|
||||||
|
PHP_VERSION=$2
|
||||||
|
PHP_VERSION=${PHP_VERSION:-5}
|
||||||
|
|
||||||
|
if [ "$PHP_VERSION" != "5" ] && [ "$PHP_VERSION" != "7" ]; then
|
||||||
|
echo "invalid php version"
|
||||||
|
exit
|
||||||
|
fi;
|
||||||
|
|
||||||
|
|
||||||
|
# remove sql and php version from args
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
|
||||||
|
LINK=""
|
||||||
|
EXTRA_ENV="-e XDEBUG_CONFIG=client_host=$HOST_IP -e PHP_IDE_CONFIG=serverName=docker"
|
||||||
|
EXTRA_CONTAINERS=""
|
||||||
|
|
||||||
|
LINK_BLACKFIRE=""
|
||||||
|
|
||||||
|
for arg in "$@"
|
||||||
|
do
|
||||||
|
if [ "$arg" = "s3" ]; then
|
||||||
|
docker run -d --name "$NAME-s3" -e DEBUG=1 -e SERVICES=s3:4569 localstack/localstack:0.10.9
|
||||||
|
LINK="$LINK --link $NAME-s3:s3"
|
||||||
|
EXTRA_CONTAINERS="$EXTRA_CONTAINERS,$NAME-s3"
|
||||||
|
EXTRA_ENV="$EXTRA_ENV -e S3=1"
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
if [ "$arg" = "swift" ] || [ "$arg" = "swiftv2" ]; then
|
||||||
|
docker run --name "$NAME-swift" -d icewind1991/dockswift:nextcloud-ci
|
||||||
|
LINK="$LINK --link $NAME-swift:swift --link $NAME-swift:keystone --link $NAME-swift:dockswift"
|
||||||
|
EXTRA_CONTAINERS="$EXTRA_CONTAINERS,$NAME-swift"
|
||||||
|
EXTRA_ENV="$EXTRA_ENV -e SWIFT=1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$arg" = "swiftv3" ]; then
|
||||||
|
docker run --name "$NAME-swift" -d icewind1991/dockswift:nextcloud-ci
|
||||||
|
LINK="$LINK --link $NAME-swift:swift --link $NAME-swift:keystone --link $NAME-swift:dockswift"
|
||||||
|
EXTRA_CONTAINERS="$EXTRA_CONTAINERS,$NAME-swift"
|
||||||
|
EXTRA_ENV="$EXTRA_ENV -e SWIFTV3=1"
|
||||||
|
fi
|
||||||
|
if [ "$arg" = "azure" ]; then
|
||||||
|
docker run --name "$NAME-azure" -d arafato/azurite
|
||||||
|
LINK="$LINK --link $NAME-azure:azure"
|
||||||
|
EXTRA_CONTAINERS="$EXTRA_CONTAINERS,$NAME-azure"
|
||||||
|
EXTRA_ENV="$EXTRA_ENV -e AZURE=1"
|
||||||
|
fi
|
||||||
|
if [ "$arg" = "blackfire" ]; then
|
||||||
|
BLACKFIRE_RUNNING=$(docker inspect --format="{{ .State.Running }}" blackfire 2> /dev/null)
|
||||||
|
BLACKFIRE_EXIT_CODE=$?
|
||||||
|
if [ -z "$BLACKFIRE_SERVER_TOKEN" ] && [ $BLACKFIRE_EXIT_CODE -eq 1 ]; then # we either need the blackfire config or already have an existing container
|
||||||
|
echo "Set \$BLACKFIRE_SERVER_TOKEN and \$BLACKFIRE_SERVER_ID to enable blackfire integration (https://blackfire.io/docs/integrations/docker)"
|
||||||
|
else
|
||||||
|
# ensure blackfire agent is running
|
||||||
|
if [ $BLACKFIRE_EXIT_CODE -eq 1 ]; then
|
||||||
|
docker run --name="blackfire" -d -e BLACKFIRE_SERVER_ID=$BLACKFIRE_SERVER_ID -e BLACKFIRE_SERVER_TOKEN=$BLACKFIRE_SERVER_TOKEN blackfire/blackfire
|
||||||
|
elif [ "$BLACKFIRE_RUNNING" == "false" ]; then
|
||||||
|
docker start blackfire
|
||||||
|
fi;
|
||||||
|
sleep 5
|
||||||
|
BLACKFIRE_RUNNING=$(docker inspect --format="{{ .State.Running }}" blackfire 2> /dev/null)
|
||||||
|
if [ "$BLACKFIRE_RUNNING" == "true" ]; then
|
||||||
|
LINK="$LINK --link blackfire:blackfire"
|
||||||
|
fi;
|
||||||
|
fi;
|
||||||
|
fi
|
||||||
|
if [ "$arg" = "ldap" ]; then
|
||||||
|
ADMIN_PORT=$((PORT + 1))
|
||||||
|
docker run --name $NAME-ldap -e LDAP_ADMIN_PASSWORD="admin" -v $DIR/configs/ldap:/container/service/slapd/assets/config/bootstrap/ldif/custom -d osixia/openldap:1.4.0 --copy-service
|
||||||
|
docker run --name $NAME-ldapadmin --link $NAME-ldap:ldap -p $ADMIN_PORT:443 -e PHPLDAPADMIN_LDAP_HOSTS=ldap -d osixia/phpldapadmin:0.9.0
|
||||||
|
LINK="$LINK --link $NAME-ldap:ldap"
|
||||||
|
EXTRA_CONTAINERS="$EXTRA_CONTAINERS,$NAME-ldap,$NAME-ldapadmin"
|
||||||
|
EXTRA_ENV="$EXTRA_ENV -e LDAP=1"
|
||||||
|
echo "ldapadmin: https://localhost:${ADMIN_PORT}/"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
WEBROOT="/var/www/html"
|
||||||
|
DATAROOT="$WORKDIR/$NAME"
|
||||||
|
VOLUMES="-v $OC_SOURCE:$WEBROOT -v $DATAROOT/data:$WEBROOT/data -v $DATAROOT/config:$WEBROOT/config -v $DATAROOT/data-autotest:$WEBROOT/data-autotest -v $DATAROOT/skeleton:$WEBROOT/core/skeleton/ -v $OC_SOURCE/core/skeleton/welcome.txt:$WEBROOT/core/skeleton/welcome.txt:ro -v $DATAROOT/integration/vendor:$WEBROOT/build/integration/vendor -v $DATAROOT/integration/work:$WEBROOT/build/integration/work -v $DATAROOT/integration/output:$WEBROOT/build/integration/output -v $DATAROOT/integration/composer.lock:$WEBROOT/build/integration/composer.lock -v $WORKDIR/composer/cache:/var/www/.composer/cache -v $DATAROOT/phpunit-cache:$WEBROOT/tests/.phpunit.result.cache -v $WORKDIR/$NAME/spreed/integration/vendor:/var/www/html/apps/spreed/tests/integration/vendor"
|
||||||
|
DOCKER_IMAGE="icewind1991/nextcloud-dev:$PHP_VERSION"
|
||||||
|
#DOCKER_IMAGE="nc"
|
||||||
|
|
||||||
|
VOLUMES="$VOLUMES -v /home/robin/Pictures:/Pictures"
|
||||||
|
|
||||||
|
if [ "$SQL" = "mysql" ]; then
|
||||||
|
docker run --name "$NAME-mysql" -e MYSQL_ROOT_PASSWORD=$SQL_PASS -e MYSQL_PASSWORD=owncloud -e MYSQL_USER=owncloud -e MYSQL_DATABASE=owncloud -d mariadb:10
|
||||||
|
docker run --name $NAME -d -p $PORT:80 --link "$NAME-mysql:mysql" $LINK $EXTRA_ENV -e SQL=mysql $VOLUMES $DOCKER_IMAGE
|
||||||
|
echo "$NAME,$NAME-mysql$EXTRA_CONTAINERS"
|
||||||
|
elif [ "$SQL" = "pgsql" ]; then
|
||||||
|
docker run --name "$NAME-pgsql" -e POSTGRES_PASSWORD=owncloud -e POSTGRES_USER=owncloud -e POSTGRES_DATABASE=owncloud -d postgres:latest
|
||||||
|
docker run --name $NAME -d -p $PORT:80 --link "$NAME-pgsql:pgsql" $LINK $EXTRA_ENV -e SQL=pgsql $VOLUMES $DOCKER_IMAGE
|
||||||
|
echo "$NAME,$NAME-pgsql$EXTRA_CONTAINERSl"
|
||||||
|
elif [ "$SQL" = "oci" ]; then
|
||||||
|
docker run --name "$NAME-oci" -d wnameless/oracle-xe-11g
|
||||||
|
docker run --name $NAME -d -p $PORT:80 --link "$NAME-oci:oci" $LINK $EXTRA_ENV -e SQL=oci $VOLUMES $DOCKER_IMAGE
|
||||||
|
echo "$NAME,$NAME-oci$EXTRA_CONTAINERS"
|
||||||
|
else
|
||||||
|
docker run --name $NAME -d -p $PORT:80 $LINK $EXTRA_ENV -e SQL=sqlite $VOLUMES $DOCKER_IMAGE
|
||||||
|
echo "$NAME$EXTRA_CONTAINERS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Running on http://localhost:$PORT"
|
||||||
62
images/haze/misc/nctests
Executable file
62
images/haze/misc/nctests
Executable file
|
|
@ -0,0 +1,62 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SQL=$1
|
||||||
|
PHP_VERSION=$2
|
||||||
|
EXTRA=$3
|
||||||
|
EXTRA_ARG=""
|
||||||
|
WORKDIR="/tmp/oc-docker"
|
||||||
|
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
|
||||||
|
if [ "$EXTRA" = "s3" ] || [ "$EXTRA" = "swift" ] || [ "$EXTRA" = "swiftv2" ] || [ "$EXTRA" = "swiftv3" ] || [ "$EXTRA" = "azure" ]; then
|
||||||
|
shift
|
||||||
|
EXTRA_ARG=$EXTRA
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Starting servers"
|
||||||
|
CONTAINERS=`ncserver $SQL $PHP_VERSION $EXTRA_ARG | tail -2 | head -1`
|
||||||
|
|
||||||
|
if [ -n "$EXTRA_ARG" ]; then
|
||||||
|
sleep 3;
|
||||||
|
fi
|
||||||
|
|
||||||
|
IFS=',' read -a CONTAINERS <<< "$CONTAINERS"
|
||||||
|
|
||||||
|
echo "Waiting for things to settle"
|
||||||
|
if [ "$SQL" = "" ] || [ "$SQL" = "sqlite" ]; then
|
||||||
|
sleep 2 # less servers to wait for
|
||||||
|
elif [ "$SQL" = "oci" ]; then
|
||||||
|
sleep 30 # oracle is always a bit lazy
|
||||||
|
else
|
||||||
|
sleep 15
|
||||||
|
fi
|
||||||
|
|
||||||
|
TEST_PATH=$1
|
||||||
|
|
||||||
|
if [[ "$TEST_PATH" =~ apps/([a-zA-Z_0-9]+)/? ]]; then
|
||||||
|
APP=${BASH_REMATCH[1]};
|
||||||
|
else
|
||||||
|
APP=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Starting tests"
|
||||||
|
docker exec ${CONTAINERS[0]} install admin admin
|
||||||
|
|
||||||
|
if [[ "$TEST_PATH" =~ apps/files_([a-zA-Z_0-9]+)/ ]]; then
|
||||||
|
echo "Enabling app files_external"
|
||||||
|
docker exec ${CONTAINERS[0]} occ app:enable files_external --force
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$APP" ]; then
|
||||||
|
echo "Enabling app $APP"
|
||||||
|
docker exec ${CONTAINERS[0]} occ app:enable $APP --force
|
||||||
|
fi
|
||||||
|
docker exec ${CONTAINERS[0]} tests $@
|
||||||
|
|
||||||
|
echo "Cleaning up"
|
||||||
|
|
||||||
|
docker kill ${CONTAINERS[0]} ${CONTAINERS[1]}
|
||||||
|
docker rm ${CONTAINERS[0]} ${CONTAINERS[1]}
|
||||||
|
|
||||||
|
sudo rm -rf $WORKDIR/${CONTAINERS[0]}
|
||||||
3
images/haze/misc/occ
Executable file
3
images/haze/misc/occ
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
php $WEBROOT/occ "$@"
|
||||||
3
images/haze/misc/phpunit
Executable file
3
images/haze/misc/phpunit
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
/usr/local/bin/php -d memory_limit=512M /usr/local/bin/phpunit.phar $@
|
||||||
14
images/haze/misc/tests
Executable file
14
images/haze/misc/tests
Executable file
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cd $WEBROOT
|
||||||
|
|
||||||
|
# we need write permissions for these
|
||||||
|
chmod 0777 tests/apps
|
||||||
|
mkdir -p $WEBROOT/apps/namespacetestapp
|
||||||
|
chmod 0777 $WEBROOT/apps/namespacetestapp
|
||||||
|
chmod 0777 tests/data
|
||||||
|
chown www-data /var/www/html/tests/.phpunit.result.cache
|
||||||
|
|
||||||
|
command="cd $WEBROOT; phpunit --configuration $WEBROOT/tests/phpunit-autotest.xml $@"
|
||||||
|
|
||||||
|
su - www-data -s /bin/sh -c "$command"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue