Univention Bugzilla – Bug 42793
Provide egroupware App as Docker App
Last modified: 2017-05-02 06:25:17 CEST
The egroupware App should be provided as Docker App.
Created attachment 8178 [details] egroupware-epl.patch
first docker version online on appcenter.test -> univention-install univention-appcenter-dev -> univention-app dev-use-test-appcenter -> univention-app install egroupware=1 egroupware-epl.patch: * disable egroupware initialization in UCS docker container app.ini: * added DockerImage = docker.software-univention.de/ucs-appbox-amd64:4.1-3 Database = mysql DatabaseName = egroupware DatabaseUser = egroupware RequiredUCSVersion = 4.1-3 errata312 DockerVolumes = /var/lib/egroupware/:/var/lib/egroupware/ added appcenter join script: * add service EGroupware to docker host * enable ssl in container * create /Microsoft-Server-ActiveSync proxy config on docker host * cp /etc/ldap.secret to container * call /usr/share/egroupware/doc/rpm-build/post_install.php with docker host as db_host in container added appcenter unjoin script: * remove service EGroupware from docker host * remove /Microsoft-Server-ActiveSync proxy config from docker host Persisent data: * docker host database is used in egroupware docker app * /var/lib/egroupware is mapped Questions/Problems: * Besides database and filestore, is there more user data/configs that should be stored persistently? * app uses cn=admin and ldap.secret, is this really necessary (maybe a member of Domain Admins is sufficient)? * App wants root access to the mysql database to create app database and user. Therefor the join script temporarily creates a 'root'@'$appcenter_apps_egroupware_ip' mysql privilege. But as the appcenter creates the database and user, this is not necessary. Egroupware does not need to create a database/user in this scenario. Can this be turn off? Migration: (1) remove egroupware app -> univention-app remove egroupware -> apt-get remove egroupware-epl-core -> ucr unset appcenter/prudence/docker/egroupware -> apt-mark manual mysql-server (2) configure egroupware database connection db_pass from /var/lib/egroupware/header.inc.php to /etc/mysql-egroupware.secret -> grep db_pass /var/lib/egroupware/header.inc.php | awk -F "'" '{print $4}' > /etc/mysql-egroupware.secret Edit db_host in /var/lib/egroupware/header.inc.php to docker0 ip. -> mysql --no-defaults -u root -h localhost --password="$(< /etc/mysql.secret)"<<EOF GRANT ALL PRIVILEGES ON egroupware.* TO 'egroupware'@'%%' IDENTIFIED BY '$(</etc/mysql-egroupware.secret)'; FLUSH PRIVILEGES; EOF -> echo "egroupware v1 successful" >> /usr/lib/univention-install/.index.txt (2b) switch to appcenter.test -> univention-install univention-appcenter-dev -> univention-app dev-use-test-appcenter (3) install egroupware docker app univention-app install egroupware=1
Docker App liegt im Testappcenter 4.1 4.2 http://wiki.univention.de/index.php?title=Egroupware_App_Migration#Install_EGroupware_Docker_App ISV hat Freigabe erteilt, meine Tests waren OK, geht morgen raus.
No QA required.
Done