1
0
mirror of https://github.com/zokradonh/kopano-docker synced 2025-06-07 16:06:14 +00:00

Make it possible for users to customise exposed ports (#182)

* move portmapping into docker-compose.ports.yml

Ensure loading of docker-compose.ports.yml via COMPOSE_FILE in .env.

* instruct users to put overridden ports into override.yml
This commit is contained in:
Felix Bartels 2019-06-23 21:06:35 +02:00 committed by GitHub
parent f18e19b5b3
commit 6115b8aee4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 58 additions and 20 deletions

View File

@ -42,6 +42,18 @@ Any additional configuration should be done through environment variables and no
The compose file itself is part of the git repository and should not be edited directly. Instead a `docker-compose.override.yml` (will be ignored by git) file can be created to override and extend the default one. See https://docs.docker.com/compose/extends/ for more information.
#### Why is my compose override file ignored?
This project uses the `COMPOSE_FILE` environment variable to allow users to override the ports exposed by each container (for example when using a different front facing proxy). When using a `docker-compose.override.yml` file make sure this is included in this variable in the `.env` file. For example like this:
```
COMPOSE_FILE=docker-compose.yml:docker-compose.portmapping.yml:docker-compose.override.yml
```
#### I've pulled in the latest version, but now I cannot reach Kopano over the network any longer!
This project switched to specifying `COMPOSE_FILE` in `.env` to allow users to easily disable individual ports exposed. Please rerun `setup.sh` to add this variable to your `.env` file or add it manually.
### How to use a newer version than the one available from the Docker Hub?
In this repository you can also find a Makefile that automates the process of building newer images.
@ -91,6 +103,10 @@ While using kweb is recommended, this is of course possible.
Please check the individual web containers (kDAV, WebApp and Z-Push for individual instructions).
### How can I prevent e.g. `kopano-gateway` to be reachable from the network?
The exposed ports of each container are defined in `docker-compose.ports.yml`. If you do not want to expose some of the containers to the network, it is recommended to copy this file to `docker-compose.override.yml`and just remove all entries that you do not want to have exposed.
### I want to use these Docker images outside of an evaluation environment. What do I need to adjust to make this possible?
To get a quick impression of Kopano this git repository bundles a locally build ldap image with some example users. When using the docker-compose.yml in a production environment make sure to:

32
docker-compose.ports.yml Normal file
View File

@ -0,0 +1,32 @@
version: "3.5"
services:
web:
ports:
- "${CADDY:-2015}:2015"
- "${HTTP:-80}:80"
- "${HTTPS:-443}:443"
ldap:
ports:
- ${LDAPPORT:-389}:389
mail:
ports:
- "${SMTPPORT:-25}:25"
- "${SMTPSPORT:-465}:465"
- "${MSAPORT:-587}:587"
kopano_server:
ports:
- ${KOPANOPORT:-236}:236
- ${KOPANOSPORT:-237}:237
kopano_gateway:
ports:
- "${POP3PORT:-110}:110"
- "${IMAPPORT:-143}:143"
kopano_ical:
ports:
- "${ICALPORT:-8080}:8080"

View File

@ -4,10 +4,6 @@ services:
web:
image: ${docker_repo:-zokradonh}/kopano_web:${KWEB_VERSION:-latest}
restart: unless-stopped
ports:
- "${CADDY:-2015}:2015"
- "${HTTP:-80}:80"
- "${HTTPS:-443}:443"
environment:
- EMAIL=${EMAIL:-off}
- FQDN=${FQDN?err}
@ -30,8 +26,6 @@ services:
image: ${docker_repo:-zokradonh}/${LDAP_CONTAINER:-kopano_ldap_demo}:${LDAP_VERSION:-latest}
restart: unless-stopped
container_name: ${COMPOSE_PROJECT_NAME}_ldap
ports:
- ${LDAPPORT:-389}:389
environment:
- LDAP_ORGANISATION=${LDAP_ORGANISATION}
- LDAP_DOMAIN=${LDAP_DOMAIN}
@ -105,10 +99,6 @@ services:
container_name: ${COMPOSE_PROJECT_NAME}_mail
depends_on:
- ldap
ports:
- "${SMTPPORT:-25}:25"
- "${SMTPSPORT:-465}:465"
- "${MSAPORT:-587}:587"
volumes:
- maildata:/var/mail
- mailstate:/var/mail-state
@ -196,9 +186,6 @@ services:
- ldap
- kopano_ssl
- kopano_konnect
ports:
- ${KOPANOPORT:-236}:236
- ${KOPANOSPORT:-237}:237
environment:
- SERVICE_TO_START=server
- TZ=${TZ}
@ -365,9 +352,6 @@ services:
image: ${docker_repo:-zokradonh}/kopano_core:${CORE_VERSION:-latest}
depends_on:
- kopano_server
ports:
- "${POP3PORT:-110}:110"
- "${IMAPPORT:-143}:143"
volumes:
- kopanossl/:/kopano/ssl
- kopanosocket/:/run/kopano
@ -385,8 +369,6 @@ services:
image: ${docker_repo:-zokradonh}/kopano_core:${CORE_VERSION:-latest}
depends_on:
- kopano_server
ports:
- "${ICALPORT:-8080}:8080"
volumes:
- kopanossl/:/kopano/ssl
- kopanosocket/:/run/kopano

View File

@ -314,9 +314,11 @@ KOPANOSPORT=237
# Settings for test environments
INSECURE=$INSECURE
# Docker and docker-compose settings
# Docker Repository to push to/pull from
docker_repo=zokradonh
COMPOSE_PROJECT_NAME=kopano
COMPOSE_FILE=docker-compose.yml:docker-compose.ports.yml
# Modify below to build a different version, than the kopano nightly release
#KOPANO_CORE_REPOSITORY_URL=https://serial:REPLACE-ME@download.kopano.io/supported/core:/final/Debian_9.0/
@ -335,6 +337,12 @@ ADDITIONAL_KOPANO_WEBAPP_PLUGINS=$ADDITIONAL_KOPANO_WEBAPP_PLUGINS
EOF
else
echo "config already exists, doing nothing"
echo "if you want to change the configuration, please edit .env directly"
if ! grep -q COMPOSE_FILE ./.env; then
echo "Adding COMPOSE_FILE setting to .env"
echo "COMPOSE_FILE=docker-compose.yml:docker-compose.ports.yml" >> ./.env
fi
echo ".env already exists with initial configuration"
echo "If you want to change the configuration, please edit .env directly"
fi