updating developer install after experiences with Hadi's Ubuntu 22.04 update

This commit is contained in:
ralf 2023-01-27 20:57:49 +01:00
parent 5bab72b8be
commit a5739072e9
5 changed files with 17 additions and 25 deletions

View File

@ -48,8 +48,10 @@ RUN apt-get update \
&& mkdir -p /run/php \ && mkdir -p /run/php \
# send logs to stderr to be viewed by docker logs # send logs to stderr to be viewed by docker logs
&& ln -s /dev/stderr /var/log/php$PHP_VERSION-fpm.log \ && ln -s /dev/stderr /var/log/php$PHP_VERSION-fpm.log \
# install nodejs 16.x PPA (Shoelace requires >= 14.17, Ubuntu 22.04 only has 12.x)
&& curl -fsSL https://deb.nodesource.com/setup_16.x | bash - \
# install tools to build EGroupware # install tools to build EGroupware
&& apt-get install -y rsync npm zip curl sudo cron patch \ && apt-get install -y rsync nodejs zip curl sudo cron patch \
&& npm install -g grunt-cli \ && npm install -g grunt-cli \
&& bash -c \ && bash -c \
'EXPECTED_SIGNATURE=$(curl https://composer.github.io/installer.sig); \ 'EXPECTED_SIGNATURE=$(curl https://composer.github.io/installer.sig); \

View File

@ -1,13 +1,13 @@
# EGroupware development enviroment as Docker container # EGroupware development enviroment as Docker container
The container and docker-compose.yml file in this directory are the most easy way to get a full development enviroment for EGroupware. The container and docker-compose.yml file in this directory are the easiest way to get a full development enviroment for EGroupware.
### It defines and uses the following volumes: ### It defines and uses the following volumes:
* sources: document root of the webserver, by default $PWD/sources subdirectory, can also be your existing document root * sources: document root of the webserver, by default $PWD/sources subdirectory, can also be your existing document root
* data: EGroupware stores it's files here, by default $PWD/data subdirectory, can also be your existing /var/lib/egroupware * data: EGroupware stores its files here, by default $PWD/data subdirectory, can also be your existing /var/lib/egroupware
* db: volume for MariaDB (should be NOT a directory under Mac OS and Windows for performance reasons!) * db: volume for MariaDB (should be NOT a directory under macOS and Windows for performance reasons!)
* sessions: volume for sessions, internal no need to change * sessions: volume for sessions, internal no need to change
* sources-push: swoolpush sub-directory of sources * sources-push: swoolpush subdirectory of sources
* collabora-config: /etc/loolwsd for Collabora container, by default $PWD/data/default/loolwsd * collabora-config: /etc/loolwsd for Collabora container, by default $PWD/data/default/loolwsd
* rocketchat-uploads: Upload directory for Rocket.Chat, by default $PWD/data/default/rocketchat/uploads * rocketchat-uploads: Upload directory for Rocket.Chat, by default $PWD/data/default/rocketchat/uploads
* rocketchat-dumps: Dump directory for MongoDB, by default $PWD/data/default/rocketchat/dump * rocketchat-dumps: Dump directory for MongoDB, by default $PWD/data/default/rocketchat/dump
@ -18,6 +18,7 @@ The container and docker-compose.yml file in this directory are the most easy wa
* egroupware-db: MariaDB * egroupware-db: MariaDB
* egroupware-push: PHP Swoole based push server * egroupware-push: PHP Swoole based push server
* egroupware-watchtower: to automatic keeps the containers up to date * egroupware-watchtower: to automatic keeps the containers up to date
* phpmyadmin: phpMyAdmin to administrate your MariaDB
* collabora: Collabora Online Office * collabora: Collabora Online Office
* rocketchat: Rocket.Chat * rocketchat: Rocket.Chat
* rocketchat-mongo: MongoDB for Rocket.Chat * rocketchat-mongo: MongoDB for Rocket.Chat
@ -75,4 +76,10 @@ service:
* do not use ```http://localhost/egroupware/```, as push, Collabora and Rocket.Chat will not be able to communicate * do not use ```http://localhost/egroupware/```, as push, Collabora and Rocket.Chat will not be able to communicate
- localhost in each container is NOT the host system, but the container itself! - localhost in each container is NOT the host system, but the container itself!
- give you development system a name and add it to the hosts ```/etc/hosts``` as: ```127.0.0.1 devbox.egroupware.org``` - give you development system a name and add it to the hosts ```/etc/hosts``` as: ```127.0.0.1 devbox.egroupware.org```
- add it as ```extra_host: - "devbox.egroupware.org:172.17.0.1"``` to each service which as a commented out extra_host - add it as ```extra_host: - "devbox.egroupware.org:172.17.0.1"``` to each service which as a commented out extra_host
* Ubuntu 22.04 docker adds firewall rules disabling access to docker0 / 172.17.0.1 from within the containers.
Stopping eg. FPM to access IDE/PHPStorm debug port or a MariaDB running on the host bound to 172.17.0.1.
To fix that, you have to create an explicit firewall rule to allow containers to acces 172.17.0.1:
```bash
sudo ufw allow from 172.16.0.1/12 to 172.17.0.1/32 port 9001,3306
```

View File

@ -207,9 +207,6 @@ services:
- collabora-config:/etc/loolwsd - collabora-config:/etc/loolwsd
# support for Collabora/CODE 21.11+ # support for Collabora/CODE 21.11+
- collabora-config:/etc/coolwsd - collabora-config:/etc/coolwsd
# don't try to regenerate the (not used certificate) as volume is readonly
environment:
- DONT_GEN_SSL_CERT=1
restart: always restart: always
container_name: collabora-key container_name: collabora-key
# set the ip-address of your docker host AND your official DNS name so Collabora # set the ip-address of your docker host AND your official DNS name so Collabora

View File

@ -25,6 +25,7 @@ git config --global user.email || git config --global user.email "you@example.co
&& ln -sf egroupware/api/templates/default/images/favicon.ico \ && ln -sf egroupware/api/templates/default/images/favicon.ico \
&& composer.phar create-project --prefer-source --keep-vcs --no-scripts $COMPOSER_EXTRA egroupware/egroupware:$VERSION \ && composer.phar create-project --prefer-source --keep-vcs --no-scripts $COMPOSER_EXTRA egroupware/egroupware:$VERSION \
&& cd egroupware \ && cd egroupware \
&& mkdir chunks \
&& ./install-cli.php \ && ./install-cli.php \
&& ln -sf /var/lib/egroupware/header.inc.php \ && ln -sf /var/lib/egroupware/header.inc.php \
&& sed -e 's/apache/www-data/' -e 's|/usr/share|/var/www|g' doc/rpm-build/egroupware.cron > /etc/cron.d/egroupware && sed -e 's/apache/www-data/' -e 's|/usr/share|/var/www|g' doc/rpm-build/egroupware.cron > /etc/cron.d/egroupware
@ -44,21 +45,6 @@ do
} }
done done
# install phpMyAdmin sources, if not already there
[ -d /var/www/phpmyadmin ] || {
cd /var/www \
&& composer.phar create-project --prefer-source --keep-vcs --no-scripts phpmyadmin/phpmyadmin \
&& cd phpmyadmin \
&& yarn install || true
}
[ -f /var/www/phpmyadmin/config.inc.php ] || {
cd /var/www/phpmyadmin \
&& blowfish_secret=$(php -r "echo base64_encode(random_bytes(24));") \
&& sed -e "s/localhost/db/g" \
-e "s/cfg\['blowfish_secret'\] = '';/cfg['blowfish_secret'] = '$blowfish_secret';/g" \
config.sample.inc.php > config.inc.php
}
# create data directory # create data directory
[ -d /var/lib/egroupware/default ] || { [ -d /var/lib/egroupware/default ] || {
mkdir -p /var/lib/egroupware/default/files/sqlfs \ mkdir -p /var/lib/egroupware/default/files/sqlfs \

View File

@ -171,7 +171,7 @@ server {
} }
# phpMyAdmin # phpMyAdmin
location /phpmyadmin/ { location ^~ /phpmyadmin/ {
proxy_pass http://phpmyadmin/; proxy_pass http://phpmyadmin/;
#include proxy_params; #include proxy_params;
proxy_read_timeout 60m; proxy_read_timeout 60m;