diff --git a/Dockerfile b/Dockerfile index 659031cf..55e9160f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,50 +1,61 @@ # Nextcloud - passman - custom dev container -FROM ubuntu:20.04 +FROM ubuntu:22.04 + RUN /bin/bash -c "export DEBIAN_FRONTEND=noninteractive" && \ - /bin/bash -c "debconf-set-selections <<< 'mariadb-server mysql-server/root_password password PASS'" && \ - /bin/bash -c "debconf-set-selections <<< 'mariadb-server mysql-server/root_password_again password PASS'" && \ /bin/bash -c "debconf-set-selections <<< 'tzdata tzdata/Zones/Europe select Madrid'" && \ - /bin/bash -c "echo \"Europe/Zurich\" > /etc/timezone " && \ - /bin/bash -c "ln -fs /usr/share/zoneinfo/`cat /etc/timezone` /etc/localtime" && \ + /bin/bash -c "echo \"Europe/Zurich\" > /etc/timezone " && \ + /bin/bash -c "ln -fs /usr/share/zoneinfo/`cat /etc/timezone` /etc/localtime" && \ apt-get -y update && apt-get install -y \ + npm \ + ruby-dev + +RUN /bin/bash -c "export DEBIAN_FRONTEND=noninteractive" && \ + /bin/bash -c "debconf-set-selections <<< 'mariadb-server mysql-server/root_password password PASS'" && \ + /bin/bash -c "debconf-set-selections <<< 'mariadb-server mysql-server/root_password_again password PASS'" && \ + apt-get install -y \ apache2 \ cowsay \ cowsay-off \ git \ curl \ - libapache2-mod-php7.4 \ mariadb-server \ - php7.4 \ - php7.4-mysql \ - php7.4-curl \ - php-dompdf \ - php7.4-gd \ - php7.4-mbstring \ - php7.4-xml \ - php7.4-zip \ - php7.4-intl \ - php7.4-bcmath \ - php7.4-gmp \ - php7.4-imagick \ - phpunit \ + software-properties-common \ wget \ openssh-server \ - npm \ - ruby-dev \ - composer \ sudo -RUN gem install sass && \ - a2enmod ssl && \ - ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled && \ - git clone https://github.com/nextcloud/passman /var/www/passman && \ - cd /var/www/passman && npm install && \ - npm install -g grunt-cli +RUN /bin/bash -c "export DEBIAN_FRONTEND=noninteractive" && add-apt-repository -y ppa:ondrej/php + +RUN /bin/bash -c "export DEBIAN_FRONTEND=noninteractive" && \ + apt-get install -y \ + libapache2-mod-php8.1 \ + php8.1 \ + php8.1-mysql \ + php8.1-curl \ + php-dompdf \ + php8.1-gd \ + php8.1-mbstring \ + php8.1-xml \ + php8.1-zip \ + php8.1-intl \ + php8.1-bcmath \ + php8.1-gmp \ + php8.1-imagick + +RUN /bin/bash -c "export DEBIAN_FRONTEND=noninteractive" && \ + wget -O /usr/local/bin/phpunit https://phar.phpunit.de/phpunit-9.phar && \ + wget -O /usr/local/bin/composer https://getcomposer.org/download/latest-stable/composer.phar && \ + chmod +x /usr/local/bin/phpunit /usr/local/bin/composer +RUN gem install sass +RUN a2enmod ssl +RUN ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled +RUN git clone https://github.com/nextcloud/passman /var/www/passman +RUN cd /var/www/passman && npm install && npm install -g grunt-cli ADD https://raw.githubusercontent.com/nextcloud/travis_ci/master/before_install.sh /var/www/passman -RUN service mysql restart && \ +RUN service mariadb restart && \ mysql -uroot -pPASS -e "SET PASSWORD = PASSWORD('');" && \ sed -i '0,/.*SSLCertificateChainFile.*/s/.*SSLCertificateChainFile.*/SSLCertificateChainFile \/etc\/ssl\/private\/fullchain.pem/' /etc/apache2/sites-enabled/default-ssl.conf && \ sed -i '0,/.*ssl-cert-snakeoil.pem.*/s/.*ssl-cert-snakeoil.pem.*/SSLCertificateFile \/etc\/ssl\/private\/cert.pem/' /etc/apache2/sites-enabled/default-ssl.conf && \ @@ -53,25 +64,25 @@ RUN service mysql restart && \ cd /var/www/passman && \ chmod +x before_install.sh && \ sleep 1 && \ - /bin/bash -c "./before_install.sh passman stable21 mysql; exit 0" && \ + /bin/bash -c "./before_install.sh passman stable26 mysql; exit 0" && \ rm /var/www/server/apps/passman/before_install.sh && \ mv /var/www/server/* /var/www/html/ && \ cd /var/www/html/ && \ chmod +x occ && \ - service mysql restart && \ - ./occ maintenance:install --database-name oc_autotest --database-user oc_autotest --admin-user admin --admin-pass admin --database mysql --database-pass 'owncloud' && \ + service mariadb restart && \ sed -i 's/\/var\/www\/server/\/var\/www\/html/g' /var/www/html/config/config.php && \ - cat /var/www/html/config/config.php && \ ./occ check && \ ./occ status && \ ./occ app:list && \ - ./occ app:enable passman && \ ./occ upgrade && \ ./occ config:system:set defaultapp --value=passman && \ ./occ config:system:set appstoreenabled --value=false && \ + ./occ config:system:set log_type --value=file && \ + ./occ config:system:set loglevel --value=1 && \ ./occ config:system:set trusted_domains 2 --value=172.17.0.2 && \ ./occ config:system:set trusted_domains 3 --value=passman.cc && \ ./occ config:system:set trusted_domains 4 --value=demo.passman.cc && \ + ./occ config:system:set trusted_domains 5 --value=10.0.2.2 && \ chown -R www-data /var/www EXPOSE 80 EXPOSE 443 @@ -82,4 +93,4 @@ RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] CMD [] -#/usr/games/cowsay -f dragon.cow "you might now login using username:admin password:admin" && \ +#/usr/games/cowsay -f dragon.cow "you might now login using username:admin password:admin" && \ diff --git a/entrypoint.sh b/entrypoint.sh index 9aa9d190..43909e6a 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -2,24 +2,42 @@ # SIGTERM-handler term_handler() { - service apache2 stop - service mysql stop - exit 0 + service apache2 stop + + if [ -f /etc/init.d/mariadb ]; then + service mariadb stop + else + service mysql stop + fi + + exit 0 } set -x service ssh start -service mysql start + +if [ -f /etc/init.d/mariadb ]; then + service mariadb start +else + service mysql start +fi + service apache2 start +sudo -u www-data php /var/www/html/occ app:disable passman +sudo -u www-data php /var/www/html/occ app:enable passman trap 'kill ${!}; term_handler' SIGTERM -/usr/games/cowsay -f dragon.cow "you might now login using username:admin password:admin" - # wait forever while true do - tail -f /var/www/html/data/nextcloud.log & wait ${!} + if [ -f /var/www/html/data/nextcloud.log ]; then + tail -f /var/www/html/data/nextcloud.log & wait ${!} + fi + + if [ -f /var/www/html/data-autotest/nextcloud.log ]; then + tail -f /var/www/html/data-autotest/nextcloud.log & wait ${!} + fi done