3 Running own apps in standard Docker installation
Ralf Becker edited this page 2022-12-02 17:22:43 +01:00

Running own apps or the old depreacated ones in a standard Docker installation

Our Docker containers only contains the default apps maintained by EGroupware GmbH.

Other third-party apps or the old deprecated ones like Wiki and KnowledgeBase can be integrated in the container, without the need of a developer installation or sacrificing the automatic update of the container / standard installation.

This article explains how this works and what you have to do.

The /etc/egroupware-docker/docker-compose.yml passes /usr/share/egroupware from the host into the container as /usr/share/egroupware-extra. The container entrypoint script copies them into the volume shared between egroupware container and Nginx.

This mechanism can also be used to add arbitrary third-party apps to an EGroupware running in a container:

mkdir -p /usr/share/egroupware
cd /usr/share/egroupware
git clone <git-url>
docker restart egroupware # to run entry-point script and copy the app(s) into the container

Old deprecated apps: Wiki, KnowledgeBase, ...

EGroupware 21.1 packages/containers come by default with PHP 8.1 (since 21.1.20221202) and can NO longer use the old 14.3 egroupware-epl-{wiki,knowledgebase,sitemgr} packages, as they lack the necessary PHP 8.1 fixes we made for Wiki, KnowledgeBase and the old (phpgw)API, required eg. for updating from old installations.

SiteMgr, our old content-management-system, is no longer supported with PHP 8.1!

While EGroupware's next version packages will force the deinstallation of the old egroupware-epl-* packages, you can or even have to do that yourself for now:

apt|yum|zypper remove egroupware-epl-\*  # <-- you need the backslash before the asterisk!
cd /usr/share/egroupware
rm -rf phpgwapi etemplate sitemgr phpbrain wiki

Then you manually have to clone the apps you want or need (no need to do that for all of them!):

  • Wiki
mkdir -p /usr/share/egroupware
cd /usr/share/egroupware
git clone https://github.com/EGroupware/wiki.git
docker restart egroupware
  • KnowledgeBase
mkdir -p /usr/share/egroupware
cd /usr/share/egroupware
for app in phpgwapi etemplate phpbrain; do
   git clone https://github.com/EGroupware/$app.git
done
docker restart egroupware
  • old (phpgw)API required for updating from before latest 14.3 (should be removed again after the update, if not using the KnowledgeBase!)
mkdir -p /usr/share/egroupware
cd /usr/share/egroupware
git clone https://github.com/EGroupware/phpgwapi.git
docker restart egroupware

Using the cloned git repositories of the apps always has the benefit of contain the latest AND for PHP 8.1 necessary bug fixes.

To update / pull the latest bugfixes, step into the created directories and run git pull followed by docker restart egroupware

cd /usr/share/egroupware
for git in */.git; do
   (cd $(dirname $git); git pull)
done
docker restart egroupware
  • SiteMgr: if you require SiteMgr, you can only modify your /etc/egroupware-docker/docker-compose.override.yml to continue using PHP 7.4:

We still provide PHP 7.4 based container under the tag 21.1-7.4, but we do NOT recommend using them, as PHP project itself no longer provides security updates for PHP 7.4!

  egroupware:
    image: egroupware/egroupware:21.1-7.4
    # or for EPL
    # image: download.egroupware.org/egroupware/egroupware:21.1-7.4

To activate the above change, you have to:

cd /etc/egroupware-docker
docker-compose up -d