mirror of
https://github.com/zokradonh/kopano-docker
synced 2025-06-07 07:56:12 +00:00
add a common php image to base webapp, z-push and kdav on (#138)
* adapt webapp container for new php base image * clean out webapp dockerfile * complete switch of webapp to php-fpm * update config in web container * update readme * remove logging config from docker-compose.yml * add php container to tagging and publishing
This commit is contained in:
parent
c5756e30c9
commit
a65e684463
20
Makefile
20
Makefile
@ -28,7 +28,7 @@ export
|
|||||||
# convert lowercase componentname to uppercase
|
# convert lowercase componentname to uppercase
|
||||||
COMPONENT = $(shell echo $(component) | tr a-z A-Z)
|
COMPONENT = $(shell echo $(component) | tr a-z A-Z)
|
||||||
|
|
||||||
build-all: build-base build-core build-kdav build-konnect build-kwmserver build-ldap-demo build-meet build-playground build-scheduler build-ssl build-utils build-web build-webapp build-zpush
|
build-all: build-base build-core build-kdav build-konnect build-kwmserver build-ldap-demo build-meet build-php build-playground build-scheduler build-ssl build-utils build-web build-webapp build-zpush
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
build: component ?= base
|
build: component ?= base
|
||||||
@ -115,6 +115,9 @@ build-ldap-demo:
|
|||||||
build-meet: build-base
|
build-meet: build-base
|
||||||
component=meet make build
|
component=meet make build
|
||||||
|
|
||||||
|
build-php: build-base
|
||||||
|
component=php make build
|
||||||
|
|
||||||
build-playground:
|
build-playground:
|
||||||
component=playground make build-builder
|
component=playground make build-builder
|
||||||
component=playground make build-simple
|
component=playground make build-simple
|
||||||
@ -135,7 +138,7 @@ build-utils: build-core
|
|||||||
build-web:
|
build-web:
|
||||||
component=web make build-simple
|
component=web make build-simple
|
||||||
|
|
||||||
build-webapp: build-base
|
build-webapp: build-php
|
||||||
component=webapp make build
|
component=webapp make build
|
||||||
|
|
||||||
build-zpush:
|
build-zpush:
|
||||||
@ -175,6 +178,11 @@ tag-meet:
|
|||||||
$(shell docker run --rm $(docker_repo)/kopano_meet cat /kopano/buildversion | grep meet | cut -d- -f2 | cut -d+ -f1))
|
$(shell docker run --rm $(docker_repo)/kopano_meet cat /kopano/buildversion | grep meet | cut -d- -f2 | cut -d+ -f1))
|
||||||
component=meet make tag-container
|
component=meet make tag-container
|
||||||
|
|
||||||
|
tag-php:
|
||||||
|
$(eval php_version := \
|
||||||
|
$(shell docker run --rm $(docker_repo)/kopano_php cat /kopano/buildversion | cut -d- -f2))
|
||||||
|
component=php make tag-container
|
||||||
|
|
||||||
tag-scheduler:
|
tag-scheduler:
|
||||||
$(eval scheduler_version := \
|
$(eval scheduler_version := \
|
||||||
$(shell docker run --rm $(docker_repo)/kopano_scheduler env | grep SUPERCRONIC_VERSION | cut -d'=' -f2))
|
$(shell docker run --rm $(docker_repo)/kopano_scheduler env | grep SUPERCRONIC_VERSION | cut -d'=' -f2))
|
||||||
@ -204,7 +212,7 @@ tag-zpush:
|
|||||||
repo-login:
|
repo-login:
|
||||||
@docker login -u $(docker_login) -p $(docker_pwd)
|
@docker login -u $(docker_login) -p $(docker_pwd)
|
||||||
|
|
||||||
publish: repo-login publish-base publish-core publish-kdav publish-konnect publish-kwmserver publish-meet publish-playground publish-scheduler publish-ssl publish-utils publish-web publish-webapp publish-zpush
|
publish: repo-login publish-base publish-core publish-kdav publish-konnect publish-kwmserver publish-meet publish-php publish-playground publish-scheduler publish-ssl publish-utils publish-web publish-webapp publish-zpush
|
||||||
|
|
||||||
publish-container: component ?= base
|
publish-container: component ?= base
|
||||||
publish-container:
|
publish-container:
|
||||||
@ -227,12 +235,14 @@ publish-kwmserver: build-kwmserver tag-kwmserver
|
|||||||
publish-meet: build-meet tag-meet
|
publish-meet: build-meet tag-meet
|
||||||
component=meet make publish-container
|
component=meet make publish-container
|
||||||
|
|
||||||
|
publish-php: build-php tag-php
|
||||||
|
component=php make publish-container
|
||||||
|
|
||||||
publish-playground: build-playground
|
publish-playground: build-playground
|
||||||
docker push $(docker_repo)/kopano_playground:latest
|
docker push $(docker_repo)/kopano_playground:latest
|
||||||
docker push $(docker_repo)/kopano_playground:builder
|
docker push $(docker_repo)/kopano_playground:builder
|
||||||
|
|
||||||
publish-kdav: build-kdav #tag-kdav
|
publish-kdav: build-kdav #tag-kdav
|
||||||
#component=zpush make publish-container
|
|
||||||
docker push $(docker_repo)/kopano_kdav:latest
|
docker push $(docker_repo)/kopano_kdav:latest
|
||||||
docker push $(docker_repo)/kopano_kdav:builder
|
docker push $(docker_repo)/kopano_kdav:builder
|
||||||
|
|
||||||
@ -257,7 +267,7 @@ publish-zpush: build-zpush tag-zpush
|
|||||||
check-scripts:
|
check-scripts:
|
||||||
grep -rIl '^#![[:blank:]]*/bin/\(bash\|sh\|zsh\)' \
|
grep -rIl '^#![[:blank:]]*/bin/\(bash\|sh\|zsh\)' \
|
||||||
--exclude-dir=.git --exclude=*.sw? \
|
--exclude-dir=.git --exclude=*.sw? \
|
||||||
| xargs shellcheck
|
| xargs shellcheck -x
|
||||||
# List files which name starts with 'Dockerfile'
|
# List files which name starts with 'Dockerfile'
|
||||||
# eg. Dockerfile, Dockerfile.build, etc.
|
# eg. Dockerfile, Dockerfile.build, etc.
|
||||||
git ls-files --exclude='Dockerfile*' --ignored | xargs --max-lines=1 hadolint
|
git ls-files --exclude='Dockerfile*' --ignored | xargs --max-lines=1 hadolint
|
||||||
|
@ -133,8 +133,8 @@ The built image includes your subscription key! Do not push this image to any pu
|
|||||||
|
|
||||||
While using kweb is recommended, this is of course possible.
|
While using kweb is recommended, this is of course possible.
|
||||||
|
|
||||||
- The `kopano_webapp` image is accessible on port 80 and serves the WebApp both on `/` and `/webapp`.
|
- The `kopano_webapp` container is accessible on port 9080 and serves the WebApp on `/webapp`.
|
||||||
- The `kopano_zpush` image is accessible on port 80 and serves Z-Push on `/Microsoft-Server-ActiveSync` (additional urls may be needed in the future see #39).
|
- The `kopano_zpush` container is accessible on port 80 and serves Z-Push on `/Microsoft-Server-ActiveSync` ((additional urls are needed in case auto discover should be used).
|
||||||
|
|
||||||
### What are and how can I use the Kapi Playground and OIDC Playground?
|
### What are and how can I use the Kapi Playground and OIDC Playground?
|
||||||
|
|
||||||
|
@ -203,7 +203,6 @@ services:
|
|||||||
- SERVICE_TO_START=server
|
- SERVICE_TO_START=server
|
||||||
- TZ=${TZ}
|
- TZ=${TZ}
|
||||||
- KCCONF_SERVER_COREDUMP_ENABLED=no
|
- KCCONF_SERVER_COREDUMP_ENABLED=no
|
||||||
- KCCONF_SERVER_LOG_LEVEL=3
|
|
||||||
- KCCONF_SERVER_MYSQL_HOST=${MYSQL_HOST}
|
- KCCONF_SERVER_MYSQL_HOST=${MYSQL_HOST}
|
||||||
- KCCONF_SERVER_MYSQL_PORT=3306
|
- KCCONF_SERVER_MYSQL_PORT=3306
|
||||||
- KCCONF_SERVER_MYSQL_DATABASE=${MYSQL_DATABASE}
|
- KCCONF_SERVER_MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||||
|
79
php/Dockerfile
Normal file
79
php/Dockerfile
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
ARG docker_repo=zokradonh
|
||||||
|
FROM ${docker_repo}/kopano_base
|
||||||
|
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
ARG ADDITIONAL_KOPANO_PACKAGES=""
|
||||||
|
ENV ADDITIONAL_KOPANO_PACKAGES=$ADDITIONAL_KOPANO_PACKAGES
|
||||||
|
ARG ADDITIONAL_KOPANO_WEBAPP_PLUGINS=""
|
||||||
|
ENV ADDITIONAL_KOPANO_WEBAPP_PLUGINS=$ADDITIONAL_KOPANO_WEBAPP_PLUGINS
|
||||||
|
ARG DOWNLOAD_COMMUNITY_PACKAGES=1
|
||||||
|
ENV DOWNLOAD_COMMUNITY_PACKAGES=$DOWNLOAD_COMMUNITY_PACKAGES
|
||||||
|
ARG KOPANO_CORE_REPOSITORY_URL="file:/kopano/repo/core"
|
||||||
|
ENV KOPANO_CORE_REPOSITORY_URL=$KOPANO_CORE_REPOSITORY_URL
|
||||||
|
ARG KOPANO_REPOSITORY_FLAGS="trusted=yes"
|
||||||
|
ENV KOPANO_REPOSITORY_FLAGS=$KOPANO_REPOSITORY_FLAGS
|
||||||
|
ARG KOPANO_WEBAPP_REPOSITORY_URL="file:/kopano/repo/webapp"
|
||||||
|
ENV KOPANO_WEBAPP_REPOSITORY_URL=$KOPANO_WEBAPP_REPOSITORY_URL
|
||||||
|
ARG KOPANO_WEBAPP_SMIME_REPOSITORY_URL="file:/kopano/repo/smime"
|
||||||
|
ENV KOPANO_WEBAPP_SMIME_REPOSITORY_URL=$KOPANO_WEBAPP_SMIME_REPOSITORY_URL
|
||||||
|
ARG KOPANO_WEBAPP_MDM_REPOSITORY_URL="file:/kopano/repo/mdm"
|
||||||
|
ENV KOPANO_WEBAPP_MDM_REPOSITORY_URL=$KOPANO_WEBAPP_MDM_REPOSITORY_URL
|
||||||
|
ARG KOPANO_WEBAPP_FILES_REPOSITORY_URL="file:/kopano/repo/files"
|
||||||
|
ENV KOPANO_WEBAPP_FILES_REPOSITORY_URL=$KOPANO_WEBAPP_FILES_REPOSITORY_URL
|
||||||
|
ARG KOPANO_CORE_VERSION=newest
|
||||||
|
ENV KOPANO_CORE_VERSION=$KOPANO_CORE_VERSION
|
||||||
|
ARG KOPANO_WEBAPP_VERSION=newest
|
||||||
|
ENV KOPANO_WEBAPP_VERSION=$KOPANO_WEBAPP_VERSION
|
||||||
|
ARG KOPANO_WEBAPP_FILES_VERSION=newest
|
||||||
|
ENV KOPANO_WEBAPP_FILES_VERSION=$KOPANO_WEBAPP_FILES_VERSION
|
||||||
|
ARG KOPANO_WEBAPP_MDM_VERSION=newest
|
||||||
|
ENV KOPANO_WEBAPP_MDM_VERSION=$KOPANO_WEBAPP_MDM_VERSION
|
||||||
|
ARG KOPANO_WEBAPP_SMIME_VERSION=newest
|
||||||
|
ENV KOPANO_WEBAPP_SMIME_VERSION=$KOPANO_WEBAPP_SMIME_VERSION
|
||||||
|
ARG RELEASE_KEY_DOWNLOAD=0
|
||||||
|
ENV RELEASE_KEY_DOWNLOAD=$RELEASE_KEY_DOWNLOAD
|
||||||
|
|
||||||
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
|
||||||
|
# add install common php dependencies
|
||||||
|
# hadolint ignore=SC2129
|
||||||
|
RUN \
|
||||||
|
# community download and package as apt source repository
|
||||||
|
. /kopano/helper/create-kopano-repo.sh && \
|
||||||
|
if [ ${DOWNLOAD_COMMUNITY_PACKAGES} -eq 1 ]; then \
|
||||||
|
dl_and_package_community "core"; \
|
||||||
|
fi; \
|
||||||
|
echo "deb [${KOPANO_REPOSITORY_FLAGS}] ${KOPANO_CORE_REPOSITORY_URL} ./" > /etc/apt/sources.list.d/kopano.list; \
|
||||||
|
# save kopano version
|
||||||
|
echo "core-${KOPANO_CORE_VERSION}" > /kopano/buildversion; \
|
||||||
|
# install apt keys if supported kopano
|
||||||
|
if [ ${RELEASE_KEY_DOWNLOAD} -eq 1 ]; then \
|
||||||
|
curl -s -S -o - "${KOPANO_CORE_REPOSITORY_URL}/Release.key" | apt-key add -; \
|
||||||
|
fi; \
|
||||||
|
# install
|
||||||
|
set -x && \
|
||||||
|
apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
kopano-kwebd \
|
||||||
|
php-fpm \
|
||||||
|
crudini \
|
||||||
|
ca-certificates \
|
||||||
|
${ADDITIONAL_KOPANO_PACKAGES} \
|
||||||
|
&& rm -rf /var/cache/apt /var/lib/apt/lists
|
||||||
|
|
||||||
|
# configure basics
|
||||||
|
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||||
|
sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||||
|
dpkg-reconfigure --frontend=noninteractive locales && \
|
||||||
|
update-locale LANG=en_US.UTF-8 && \
|
||||||
|
# configure php-fpm
|
||||||
|
mkdir -p /run/php && chown www-data:www-data /run/php && \
|
||||||
|
crudini --set /etc/php/7.0/fpm/php.ini PHP upload_max_filesize 500M && \
|
||||||
|
crudini --set /etc/php/7.0/fpm/php.ini PHP post_max_size 500M && \
|
||||||
|
crudini --set /etc/php/7.0/fpm/php.ini PHP max_input_vars 1800 && \
|
||||||
|
crudini --set /etc/php/7.0/fpm/php.ini Session session.save_path /run/sessions
|
||||||
|
|
||||||
|
EXPOSE 9080/tcp
|
||||||
|
|
||||||
|
COPY start-helper.sh /kopano/start-helper.sh
|
||||||
|
COPY kweb.cfg /etc/kweb.cfg
|
1
php/README.md
Normal file
1
php/README.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
Common base image for php based Kopano containers
|
10
php/kweb.cfg
Normal file
10
php/kweb.cfg
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
:9080 {
|
||||||
|
errors stderr
|
||||||
|
|
||||||
|
alias /webapp/ /usr/share/kopano-webapp/
|
||||||
|
fastcgi2 /webapp/ /run/php/php7.0-fpm.sock php {
|
||||||
|
without /webapp/
|
||||||
|
root /usr/share/kopano-webapp/
|
||||||
|
}
|
||||||
|
folderish /webapp
|
||||||
|
}
|
30
php/start-helper.sh
Executable file
30
php/start-helper.sh
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
php_cfg_gen() {
|
||||||
|
local cfg_file="$1"
|
||||||
|
local cfg_setting="$2"
|
||||||
|
local cfg_value="$3"
|
||||||
|
if [ -e "$cfg_file" ]; then
|
||||||
|
echo "Setting $cfg_setting = $cfg_value in $cfg_file"
|
||||||
|
if ! grep -q "$cfg_setting" "$cfg_file"; then
|
||||||
|
echo "WARNING: Config option $cfg_setting not found in $cfg_file! You may have misspelled the confing setting."
|
||||||
|
echo "define('$cfg_setting', '$cfg_value');" >> "$cfg_file"
|
||||||
|
cat "$cfg_file"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
case $cfg_value in
|
||||||
|
true|TRUE|false|FALSE)
|
||||||
|
sed -ri "s#(\s*define).+${cfg_setting}.+#\tdefine(\x27${cfg_setting}\x27, ${cfg_value}\);#g" "$cfg_file"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
sed -ri "s#(\s*define).+${cfg_setting}.+#\tdefine(\x27${cfg_setting}\x27, \x27${cfg_value}\x27\);#g" "$cfg_file"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo "Error: Config file $cfg_file not found. Plugin not installed?"
|
||||||
|
local dir
|
||||||
|
dir=$(dirname "$cfg_file")
|
||||||
|
ls -la "$dir"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
@ -14,6 +14,6 @@ exec dockerize \
|
|||||||
-wait tcp://kopano_server:236 \
|
-wait tcp://kopano_server:236 \
|
||||||
-wait tcp://kopano_server:237 \
|
-wait tcp://kopano_server:237 \
|
||||||
-wait tcp://web:2015 \
|
-wait tcp://web:2015 \
|
||||||
-wait tcp://kopano_webapp:80 \
|
-wait tcp://kopano_webapp:9080 \
|
||||||
-wait tcp://kopano_zpush:80 \
|
-wait tcp://kopano_zpush:80 \
|
||||||
-timeout 120s
|
-timeout 120s
|
||||||
|
@ -131,7 +131,7 @@
|
|||||||
}
|
}
|
||||||
folderish /meet
|
folderish /meet
|
||||||
|
|
||||||
proxy /webapp/ kopano_webapp:80 {
|
proxy /webapp/ kopano_webapp:9080 {
|
||||||
fail_timeout 10s
|
fail_timeout 10s
|
||||||
try_duration 30s
|
try_duration 30s
|
||||||
transparent
|
transparent
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
ARG docker_repo=zokradonh
|
ARG docker_repo=zokradonh
|
||||||
FROM ${docker_repo}/kopano_base
|
FROM ${docker_repo}/kopano_php
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
@ -42,19 +42,16 @@ RUN \
|
|||||||
# community download and package as apt source repository
|
# community download and package as apt source repository
|
||||||
. /kopano/helper/create-kopano-repo.sh && \
|
. /kopano/helper/create-kopano-repo.sh && \
|
||||||
if [ ${DOWNLOAD_COMMUNITY_PACKAGES} -eq 1 ]; then \
|
if [ ${DOWNLOAD_COMMUNITY_PACKAGES} -eq 1 ]; then \
|
||||||
dl_and_package_community "core"; \
|
|
||||||
dl_and_package_community "webapp"; \
|
dl_and_package_community "webapp"; \
|
||||||
dl_and_package_community "files"; \
|
dl_and_package_community "files"; \
|
||||||
dl_and_package_community "mdm"; \
|
dl_and_package_community "mdm"; \
|
||||||
dl_and_package_community "smime"; \
|
dl_and_package_community "smime"; \
|
||||||
fi; \
|
fi; \
|
||||||
echo "deb [${KOPANO_REPOSITORY_FLAGS}] ${KOPANO_CORE_REPOSITORY_URL} ./" > /etc/apt/sources.list.d/kopano.list; \
|
|
||||||
echo "deb [${KOPANO_REPOSITORY_FLAGS}] ${KOPANO_WEBAPP_REPOSITORY_URL} ./" >> /etc/apt/sources.list.d/kopano.list; \
|
echo "deb [${KOPANO_REPOSITORY_FLAGS}] ${KOPANO_WEBAPP_REPOSITORY_URL} ./" >> /etc/apt/sources.list.d/kopano.list; \
|
||||||
echo "deb [${KOPANO_REPOSITORY_FLAGS}] ${KOPANO_WEBAPP_SMIME_REPOSITORY_URL} ./" >> /etc/apt/sources.list.d/kopano.list; \
|
echo "deb [${KOPANO_REPOSITORY_FLAGS}] ${KOPANO_WEBAPP_SMIME_REPOSITORY_URL} ./" >> /etc/apt/sources.list.d/kopano.list; \
|
||||||
echo "deb [${KOPANO_REPOSITORY_FLAGS}] ${KOPANO_WEBAPP_MDM_REPOSITORY_URL} ./" >> /etc/apt/sources.list.d/kopano.list; \
|
echo "deb [${KOPANO_REPOSITORY_FLAGS}] ${KOPANO_WEBAPP_MDM_REPOSITORY_URL} ./" >> /etc/apt/sources.list.d/kopano.list; \
|
||||||
echo "deb [${KOPANO_REPOSITORY_FLAGS}] ${KOPANO_WEBAPP_FILES_REPOSITORY_URL} ./" >> /etc/apt/sources.list.d/kopano.list; \
|
echo "deb [${KOPANO_REPOSITORY_FLAGS}] ${KOPANO_WEBAPP_FILES_REPOSITORY_URL} ./" >> /etc/apt/sources.list.d/kopano.list; \
|
||||||
# save kopano version
|
# save kopano version
|
||||||
echo "core-${KOPANO_CORE_VERSION}" > /kopano/buildversion; \
|
|
||||||
echo "webapp-${KOPANO_WEBAPP_VERSION}" >> /kopano/buildversion; \
|
echo "webapp-${KOPANO_WEBAPP_VERSION}" >> /kopano/buildversion; \
|
||||||
echo "files-${KOPANO_WEBAPP_FILES_VERSION}" >> /kopano/buildversion; \
|
echo "files-${KOPANO_WEBAPP_FILES_VERSION}" >> /kopano/buildversion; \
|
||||||
echo "mdm-${KOPANO_WEBAPP_MDM_VERSION}" >> /kopano/buildversion; \
|
echo "mdm-${KOPANO_WEBAPP_MDM_VERSION}" >> /kopano/buildversion; \
|
||||||
@ -66,38 +63,11 @@ RUN \
|
|||||||
# install
|
# install
|
||||||
set -x && \
|
set -x && \
|
||||||
apt-get update && apt-get install -y --no-install-recommends \
|
apt-get update && apt-get install -y --no-install-recommends \
|
||||||
apache2 \
|
|
||||||
libapache2-mod-php7.0 \
|
|
||||||
crudini \
|
|
||||||
ca-certificates \
|
|
||||||
kopano-webapp \
|
kopano-webapp \
|
||||||
${ADDITIONAL_KOPANO_PACKAGES} \
|
${ADDITIONAL_KOPANO_PACKAGES} \
|
||||||
${ADDITIONAL_KOPANO_WEBAPP_PLUGINS} \
|
${ADDITIONAL_KOPANO_WEBAPP_PLUGINS} \
|
||||||
&& rm -rf /var/cache/apt /var/lib/apt/lists
|
&& rm -rf /var/cache/apt /var/lib/apt/lists
|
||||||
|
|
||||||
COPY apache2-kopano.conf /etc/apache2/sites-available/kopano.conf
|
|
||||||
|
|
||||||
# configure basics
|
|
||||||
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
|
|
||||||
sed -i -e 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen && \
|
|
||||||
dpkg-reconfigure --frontend=noninteractive locales && \
|
|
||||||
update-locale LANG=en_US.UTF-8 && \
|
|
||||||
# configure apache
|
|
||||||
rm /etc/apache2/sites-enabled/* && \
|
|
||||||
sed -e 's,^ErrorLog.*,ErrorLog "|/bin/cat",' -i /etc/apache2/apache2.conf && \
|
|
||||||
sed -e "s,MaxSpareServers[^:].*,MaxSpareServers 5," -i /etc/apache2/mods-available/mpm_prefork.conf && \
|
|
||||||
a2disconf other-vhosts-access-log && \
|
|
||||||
a2ensite kopano kopano-webapp && \
|
|
||||||
echo "Listen 80" > /etc/apache2/ports.conf && \
|
|
||||||
# configure mod_php
|
|
||||||
a2enmod rewrite && \
|
|
||||||
crudini --set /etc/php/7.0/apache2/php.ini PHP upload_max_filesize 500M && \
|
|
||||||
crudini --set /etc/php/7.0/apache2/php.ini PHP post_max_size 500M && \
|
|
||||||
crudini --set /etc/php/7.0/apache2/php.ini PHP max_input_vars 1800 && \
|
|
||||||
crudini --set /etc/php/7.0/apache2/php.ini Session session.save_path /run/sessions
|
|
||||||
|
|
||||||
EXPOSE 80/tcp
|
|
||||||
|
|
||||||
COPY start.sh /kopano/start.sh
|
COPY start.sh /kopano/start.sh
|
||||||
|
|
||||||
ENV LANG en_US.UTF-8
|
ENV LANG en_US.UTF-8
|
||||||
|
@ -1,79 +0,0 @@
|
|||||||
<VirtualHost *:80>
|
|
||||||
DocumentRoot /usr/share/kopano-webapp
|
|
||||||
|
|
||||||
LogFormat "%{X-Forwarded-For}i %{%a %b %d %T %Y}t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
|
|
||||||
ErrorLog "|/bin/cat"
|
|
||||||
CustomLog "|/bin/cat" proxy
|
|
||||||
|
|
||||||
<Directory /usr/share/kopano-webapp/>
|
|
||||||
DirectoryIndex index.php
|
|
||||||
Options -Indexes +FollowSymLinks
|
|
||||||
|
|
||||||
<IfVersion < 2.4>
|
|
||||||
Allow from all
|
|
||||||
AllowOverride Options Limit
|
|
||||||
Order allow,deny
|
|
||||||
</IfVersion>
|
|
||||||
|
|
||||||
<IfVersion >= 2.4>
|
|
||||||
AllowOverride Options Limit Authconfig
|
|
||||||
Require all granted
|
|
||||||
</IfVersion>
|
|
||||||
|
|
||||||
FileETag All
|
|
||||||
|
|
||||||
# Uncomment to enhance security of WebApp by restricting cookies to only
|
|
||||||
# be provided over HTTPS connections
|
|
||||||
# php_flag session.cookie_secure on
|
|
||||||
# php_flag session.cookie_httponly on
|
|
||||||
|
|
||||||
# Manipulate the cache control headers if mod_expires and
|
|
||||||
# mod_headers are both enabled; otherwise the client will depend
|
|
||||||
# on the ETag header. However, you can set FileETag to "None" if
|
|
||||||
# you have multiple servers serving WebApp to the same user. In
|
|
||||||
# that case, apache will fall back to the config below so make
|
|
||||||
# sure these two modules are loaded!
|
|
||||||
<IfModule expires_module>
|
|
||||||
<IfModule headers_module>
|
|
||||||
ExpiresActive On
|
|
||||||
ExpiresDefault "now"
|
|
||||||
|
|
||||||
<filesMatch "\.(jpg|gif|png)$">
|
|
||||||
# All (static) resources set to 2 months expiration time.
|
|
||||||
ExpiresDefault "access plus 2 months"
|
|
||||||
Header append Cache-Control "public"
|
|
||||||
</filesMatch>
|
|
||||||
|
|
||||||
<FilesMatch "\.(js|css)$">
|
|
||||||
# All non-dynamic files set to 2 weeks expiration time.
|
|
||||||
ExpiresDefault "access plus 2 weeks"
|
|
||||||
# User agents are requested to revalidate for each resource
|
|
||||||
# so that the server can always serve a newer version if
|
|
||||||
# necessary.
|
|
||||||
Header append Cache-Control "no-cache, must-revalidate"
|
|
||||||
|
|
||||||
# Treat IE a little differently due to the remarks on no-cache
|
|
||||||
# on http://support.microsoft.com/kb/234067
|
|
||||||
<IfModule setenvif_module>
|
|
||||||
BrowserMatch MSIE ie_bug
|
|
||||||
</IfModule>
|
|
||||||
Header set Cache-Control "must-revalidate, private" env=ie_bug
|
|
||||||
</FilesMatch>
|
|
||||||
|
|
||||||
<filesMatch "\.(php)$">
|
|
||||||
# PHP files must always be retrieved from the server.
|
|
||||||
ExpiresActive Off
|
|
||||||
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
|
|
||||||
Header set Pragma "no-cache"
|
|
||||||
</filesMatch>
|
|
||||||
</IfModule>
|
|
||||||
</IfModule>
|
|
||||||
|
|
||||||
# Enable gzip compression if the module is available
|
|
||||||
<IfModule deflate_module>
|
|
||||||
<filesMatch "\.(js|css)$">
|
|
||||||
SetOutputFilter DEFLATE
|
|
||||||
</filesMatch>
|
|
||||||
</IfModule>
|
|
||||||
</Directory>
|
|
||||||
</VirtualHost>
|
|
@ -8,34 +8,8 @@ ADDITIONAL_KOPANO_WEBAPP_PLUGINS=${ADDITIONAL_KOPANO_WEBAPP_PLUGINS:-""}
|
|||||||
|
|
||||||
set -eu # unset variables are errors & non-zero return values exit the whole script
|
set -eu # unset variables are errors & non-zero return values exit the whole script
|
||||||
|
|
||||||
php_cfg_gen() {
|
# shellcheck source=php/start-helper.sh
|
||||||
local cfg_file="$1"
|
source /kopano/start-helper.sh
|
||||||
local cfg_setting="$2"
|
|
||||||
local cfg_value="$3"
|
|
||||||
if [ -e "$cfg_file" ]; then
|
|
||||||
echo "Setting $cfg_setting = $cfg_value in $cfg_file"
|
|
||||||
if ! grep -q "$cfg_setting" "$cfg_file"; then
|
|
||||||
echo "WARNING: Config option $cfg_setting not found in $cfg_file! You may have misspelled the confing setting."
|
|
||||||
echo "define('$cfg_setting', '$cfg_value');" >> "$cfg_file"
|
|
||||||
cat "$cfg_file"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
case $cfg_value in
|
|
||||||
true|TRUE|false|FALSE)
|
|
||||||
sed -ri "s#(\s*define).+${cfg_setting}.+#\tdefine(\x27${cfg_setting}\x27, ${cfg_value}\);#g" "$cfg_file"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
sed -ri "s#(\s*define).+${cfg_setting}.+#\tdefine(\x27${cfg_setting}\x27, \x27${cfg_value}\x27\);#g" "$cfg_file"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
echo "Error: Config file $cfg_file not found. Plugin not installed?"
|
|
||||||
local dir
|
|
||||||
dir=$(dirname "$cfg_file")
|
|
||||||
ls -la "$dir"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
ADDITIONAL_KOPANO_PACKAGES="$ADDITIONAL_KOPANO_PACKAGES $ADDITIONAL_KOPANO_WEBAPP_PLUGINS"
|
ADDITIONAL_KOPANO_PACKAGES="$ADDITIONAL_KOPANO_PACKAGES $ADDITIONAL_KOPANO_WEBAPP_PLUGINS"
|
||||||
|
|
||||||
@ -78,8 +52,8 @@ chown -R www-data:www-data /run/sessions /tmp/webapp
|
|||||||
echo "Starting Apache"
|
echo "Starting Apache"
|
||||||
rm -f /run/apache2/apache2.pid
|
rm -f /run/apache2/apache2.pid
|
||||||
set +u
|
set +u
|
||||||
# shellcheck disable=SC1091
|
|
||||||
source /etc/apache2/envvars
|
|
||||||
# cleaning up env variables
|
# cleaning up env variables
|
||||||
unset "${!KCCONF_@}"
|
unset "${!KCCONF_@}"
|
||||||
exec /usr/sbin/apache2 -DFOREGROUND
|
echo "Starting php-fpm"
|
||||||
|
php-fpm7.0 -F &
|
||||||
|
exec /usr/libexec/kopano/kwebd caddy -conf /etc/kweb.cfg
|
Loading…
x
Reference in New Issue
Block a user