Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 46 additions & 35 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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 && \
Expand All @@ -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
Expand All @@ -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" && \
32 changes: 25 additions & 7 deletions entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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