diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d9eef7..2f13df5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# 1.2.9 + +- [kopano](src/kopano) Bug in kopano-dagent out-of-office now fixed. +- [demo](demo) Make demo less dependent on that curl and firefox beeing installed on the host. +- [demo](demo) Don't expose any ports on the host, avoiding potential conflicts. + # 1.2.8 - [test](test) Update to use `mlan/openldap:2`. diff --git a/README.md b/README.md index 8cdbca1..f56fa5a 100644 --- a/README.md +++ b/README.md @@ -67,14 +67,14 @@ services: image: mlan/kopano networks: - backend - ports: - - "127.0.0.1:8008:80" # WebApp & EAS (alt. HTTP) - - "127.0.0.1:143:143" # IMAP (not needed if all devices can use EAS) - - "127.0.0.1:110:110" # POP3 (not needed if all devices can use EAS) - - "127.0.0.1:8080:8080" # ICAL (not needed if all devices can use EAS) - - "127.0.0.1:993:993" # IMAPS (not needed if all devices can use EAS) - - "127.0.0.1:995:995" # POP3S (not needed if all devices can use EAS) - - "127.0.0.1:8443:8443" # ICALS (not needed if all devices can use EAS) + ports: # Expose ports to host interfaces + - "80:80" # WebApp & EAS (alt. HTTP) + - "143:143" # IMAP (not needed if all devices can use EAS) + - "110:110" # POP3 (not needed if all devices can use EAS) + - "8080:8080" # ICAL (not needed if all devices can use EAS) + - "993:993" # IMAPS (not needed if all devices can use EAS) + - "995:995" # POP3S (not needed if all devices can use EAS) + - "8443:8443" # ICALS (not needed if all devices can use EAS) depends_on: - auth - db @@ -84,10 +84,12 @@ services: - LDAP_URI=ldap://auth:389/ - MYSQL_HOST=db - SMTP_SERVER=mta - - LDAP_SEARCH_BASE=${LDAP_BASE-dc=example,dc=com} - - LDAP_USER_TYPE_ATTRIBUTE_VALUE=${LDAP_USEROBJ-posixAccount} - - LDAP_GROUP_TYPE_ATTRIBUTE_VALUE=${LDAP_GROUPOBJ-posixGroup} + - LDAP_SEARCH_BASE=${AD_BASE-dc=example,dc=com} + - LDAP_USER_TYPE_ATTRIBUTE_VALUE=${AD_USR_OB-kopano-user} + - LDAP_GROUP_TYPE_ATTRIBUTE_VALUE=${AD_GRP_OB-kopano-group} + - LDAP_GROUPMEMBERS_ATTRIBUTE_TYPE=dn - LDAP_PROPMAP= + - DAGENT_PLUGINS=movetopublicldap - MYSQL_DATABASE=${MYSQL_DATABASE-kopano} - MYSQL_USER=${MYSQL_USER-kopano} - MYSQL_PASSWORD=${MYSQL_PASSWORD-secret} @@ -97,8 +99,9 @@ services: - IMAPS_LISTEN=*:993 # enable TLS - POP3S_LISTEN=*:995 # enable TLS - ICALS_LISTEN=*:8443 # enable TLS - - DISABLED_FEATURES=${DISABLED_FEATURES-} # also enable IMAP and POP3 + - PLUGIN_SMIME_USER_DEFAULT_ENABLE_SMIME=true - SYSLOG_LEVEL=${SYSLOG_LEVEL-3} + - LOG_LEVEL=${LOG_LEVEL-3} volumes: - app-conf:/etc/kopano - app-atch:/var/lib/kopano/attachments @@ -113,16 +116,16 @@ services: hostname: ${MAIL_SRV-mx}.${MAIL_DOMAIN-example.com} networks: - backend - ports: - - "127.0.0.1:25:25" # SMTP - - "127.0.0.1:465:465" # SMTPS authentication required + ports: # Expose ports to host interfaces + - "25:25" # SMTP + - "465:465" # SMTPS authentication required depends_on: - auth environment: # Virgin config, ignored on restarts unless FORCE_CONFIG given. - LDAP_HOST=auth - VIRTUAL_TRANSPORT=lmtp:app:2003 - - LDAP_USER_BASE=ou=${LDAP_USEROU-users},${LDAP_BASE-dc=example,dc=com} - - LDAP_QUERY_FILTER_USER=(&(objectclass=${LDAP_USEROBJ-posixAccount})(mail=%s)) + - LDAP_USER_BASE=ou=${AD_USR_OU-users},${AD_BASE-dc=example,dc=com} + - LDAP_QUERY_FILTER_USER=(&(objectclass=${AD_USR_OB-kopano-user})(mail=%s)) volumes: - mta:/srv - app-spam:/var/lib/kopano/spamd # kopano-spamd integration @@ -149,8 +152,10 @@ services: image: mlan/openldap networks: - backend + command: --root-cn ${AD_ROOT_CN-admin} --root-pw ${AD_ROOT_PW-secret} environment: - - LDAP_LOGLEVEL=parse + - LDAPBASE=${AD_BASE-dc=example,dc=com} + - LDAPDEBUG=${AD_DEBUG-parse} volumes: - auth:/srv - /etc/localtime:/etc/localtime:ro # Use host timezone @@ -170,7 +175,7 @@ volumes: ## Demo -This repository contains a [demo](demo) directory which hold the [docker-compose.yml](demo/docker-compose.yml) file as well as a [Makefile](demo/Makefile) which might come handy. Start with cloning the [github](https://github.com/mlan/docker-kopano) repository. +This repository contains a [demo](demo) directory which hold the [docker-compose.yml](demo/docker-compose.yml) file as well as a [Makefile](demo/Makefile) which might come handy. To run the demo you need [docker-compose](https://docs.docker.com/compose/install/) installed. By default `curl` and `firefox` is expected to be installed, but if not, run `make utils-container` within the [demo](demo) directory once the repository has been cloned. The `make` utility works nicely with [bash-completion](https://github.com/scop/bash-completion) so it can be worth considering having it installed too. Once the dependencies are met, start with cloning the [github](https://github.com/mlan/docker-kopano) repository. ```bash git clone https://github.com/mlan/docker-kopano.git @@ -182,7 +187,7 @@ From within the [demo](demo) directory you can start the containers by typing: make init ``` -Then you can assess WebApp on the URL [`http://localhost:8008`](http://localhost:8008) and log in with the user name `demo` and password `demo` . You can send yourself a test email by typing: +Now you can assess WebApp on the custom docker network at URL `http://app` and log in with the user name `demo` and password `demo`. ```bash make web @@ -194,7 +199,7 @@ You can send yourself a test email by typing: make test ``` -When you are done testing you can destroy the test containers by typing +When you are done testing you can destroy the test containers and their volumes by typing: ```bash make destroy diff --git a/demo/.gitignore b/demo/.gitignore index a2647ce..8bff11e 100644 --- a/demo/.gitignore +++ b/demo/.gitignore @@ -1 +1,2 @@ ssl +utils-container.mk diff --git a/demo/Makefile b/demo/Makefile index 4b876c8..e93ff44 100644 --- a/demo/Makefile +++ b/demo/Makefile @@ -1,3 +1,8 @@ +# Makefile +# +# demo +# + -include *.mk .env .init.env SRV_LIST ?= auth app db mta @@ -10,7 +15,25 @@ SSL_MAIL = auto SSL_PASS = $(AD_USR_PW) #SSL_TRST = $(SSL_SMIME) -CURL_DBG ?= -v -s +NET_NAME ?= $(COMPOSE_PROJECT_NAME)_backend +CURL_OPT ?= -s -v +TSSL_CMD ?= docker run -i --rm --network $(NET_NAME) drwetter/testssl.sh +CURL_CMD ?= curl +webb_cmd ?= firefox $(1) & +APP_NAME = app +AUT_NAME = auth +AUW_NAME = auth-web +DB_NAME = db +DBW_NAME = db-web +MTA_NAME = mta +APP_FQDN ?= $(call dkr_srv_ip,$(APP_NAME)) +AUT_FQDN ?= $(call dkr_srv_ip,$(AUT_NAME)) +AUW_FQDN ?= $(call dkr_cnt_ip,$(AUW_NAME)) +DB_FQDN ?= $(call dkr_srv_ip,$(DB_NAME)) +DBW_FQDN ?= $(call dkr_cnt_ip,$(DBW_NAME)) +MTA_FQDN ?= $(call dkr_srv_ip,$(MTA_NAME)) + +MAIL_FROM ?= test@my-domain.biz variables: make -pn | grep -A1 "^# makefile"| grep -v "^#\|^--" | sort | uniq @@ -28,7 +51,7 @@ up: down: docker-compose down -destroy: auth-gui-down all-destroy_smime +destroy: auth-web-down db-web-down all-destroy_smime docker-compose down -v config: @@ -74,14 +97,11 @@ $(addsuffix -sv,$(SRV_LIST)): $(addsuffix -diff,$(SRV_LIST)): docker container diff $(COMPOSE_PROJECT_NAME)_$(patsubst %-diff,%,$@)_1 -$(addsuffix -hostaddr,$(SRV_LIST)): - $(eval myhost := $(call dkr_srv_ip,$(patsubst %-hostaddr,%,$@))) - wait_%: sleep $* web: - browse http://localhost:8008 & + $(call webb_cmd,http://$(APP_FQDN)) auth-init: wait_3 auth-mod_conf auth-add_schema auth-add_data @@ -180,6 +200,38 @@ kopanoSharedStoreOnly: 1 kopanoResourceType: publicFolder:Public Stores/public endef +define smtp_mail +@printf "From: <$(2)>\nTo: <$(3)>\nDate: $$(date -R)\nSubject: $(4)\ +\n\nGreat news! You can receive email.\n" | tee /dev/tty \ +| $(CURL_CMD) $(1) -T - --mail-from $(2) --mail-rcpt $(3) $(CURL_OPT) +endef + +define lmtp_mail +printf "LHLO mx\nMAIL FROM: <$(2)>\nRCPT TO: <$(3)>\nDATA\ +\nFrom: <$(2)>\nTo: <$(3)>\nDate: $$(date -R)\nSubject: $(4)\ +\n\nGreat news! You can receive email.\n.\nQUIT\n" | tee /dev/tty \ +| $(CURL_CMD) $(1) -T - $(CURL_OPT) +endef + +export define MAKE_UTILS_CONTAINER +CURL_CMD ?= docker run -i --rm --network $(NET_NAME) curlimages/curl +webb_cmd ?= docker run -d --rm --network $(NET_NAME) \ +-e DISPLAY=$$$$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \ +-v $$$$(pwd)/ssl:/ssl kennethkl/firefox $$(1) +APP_FQDN ?= $(APP_NAME) +AUT_FQDN ?= $(AUT_NAME) +AUW_FQDN ?= $(AUW_NAME) +DB_FQDN ?= $(DB_NAME) +DBW_FQDN ?= $(DBW_NAME) +MTA_FQDN ?= $(MTA_NAME) +endef + +utils-container: + echo "$$MAKE_UTILS_CONTAINER" > utils-container.mk + +utils-default: + rm -f utils-container.mk + auth-mod_conf: echo "$$LDIF_MOD_CONF" | docker-compose exec -T auth ldapmodify -Q @@ -204,15 +256,17 @@ auth-show_cat0: auth-show_cat1: docker-compose exec auth slapcat -n1 -auth-gui-up: - docker run -d --name auth-gui --network demo_backend \ - -p 127.0.0.1:8001:80 -e PHPLDAPADMIN_LDAP_HOSTS=auth \ - -e PHPLDAPADMIN_HTTPS=false osixia/phpldapadmin || true +auth-web: auth-web-up sleep 2 - firefox localhost:8001 & + $(call webb_cmd,http://$(AUW_FQDN)) -auth-gui-down: - docker rm -f auth-gui || true +auth-web-up: + docker run -d --name $(AUW_NAME) --network $(NET_NAME) \ + -e PHPLDAPADMIN_LDAP_HOSTS=auth -e PHPLDAPADMIN_HTTPS=false \ + osixia/phpldapadmin || true + +auth-web-down: + docker rm -f $(AUW_NAME) || true mta-init: @@ -220,30 +274,20 @@ mta-bayes: docker-compose exec mta sh -c 'rm -f bayesian.database.gz && wget http://artinvoice.hu/spams/bayesian.database.gz && gunzip bayesian.database.gz && sa-learn --restore bayesian.database && chown -R amavis: /var/amavis/.spamassassin && rm -rf bayesian.database' mta-test_smtp: - printf "From: A tester \nTo: <$(AD_USR_CN)@$(MAIL_DOMAIN)>\nDate: $$(date)\nSubject: A SMTP test message\n\nGreat news! You can receive email.\n" \ - | curl smtp://localhost -T - --mail-from test@example.biz \ - --mail-rcpt $(AD_USR_CN)@$(MAIL_DOMAIN) $(CURL_DBG) + $(call smtp_mail,smtp://$(MTA_FQDN),$(MAIL_FROM),$(AD_USR_CN)@$(MAIL_DOMAIN),A SMTP test message.) + +mta-test_regexp: + $(call smtp_mail,smtp://$(MTA_FQDN),$(MAIL_FROM),$(AD_USR_CN)+info@$(MAIL_DOMAIN),A regexp SMTP test message.) mta-test_smtps: - printf "From: A tester \nTo: <$(AD_USR_CN)@$(MAIL_DOMAIN)>\nDate: $$(date)\nSubject: A SMTPS test message\n\nGreat news! You can receive secure email.\n" \ - | curl smtps://localhost -T - --mail-from test@example.biz -k \ - -u $(AD_USR_CN):$(AD_USR_PW) \ - --mail-rcpt $(AD_USR_CN)@$(MAIL_DOMAIN) $(CURL_DBG) - -mta-test_smtp2: - printf "From: A info tester \nTo: <$(AD_USR_CN)-info@$(MAIL_DOMAIN)>\nDate: $$(date)\nSubject: A SMTP test message \n\nGreat news! $(AD_USR_CN)-info@$(MAIL_DOMAIN) can also receive email.\n" \ - | curl smtp://localhost -T - --mail-from test@example.biz \ - --mail-rcpt $(AD_USR_CN)@$(MAIL_DOMAIN) $(CURL_DBG) + $(call smtp_mail,smtps://$(MTA_FQDN),$(MAIL_FROM),$(AD_USR_CN)@$(MAIL_DOMAIN),A secure SMTPS test message.) \ + -k -u $(AD_USR_CN):$(AD_USR_PW) mta-test_shared: all-test_quiet - printf "From: A tester \nTo: <$(AD_SHR_CN)@$(MAIL_DOMAIN)>\nDate: $$(date)\nSubject: A SMTP test message\n\nGreat news! A shared store can receive email.\n" \ - | curl smtp://localhost -T - --mail-from test@example.biz \ - --mail-rcpt $(AD_SHR_CN)@$(MAIL_DOMAIN) $(CURL_DBG) + $(call smtp_mail,smtp://$(MTA_FQDN),$(MAIL_FROM),$(AD_SHR_CN)@$(MAIL_DOMAIN),A shared SMTP test message.) mta-test_public: all-test_quiet - printf "From: A tester \nTo: <$(AD_PUB_CN)@$(MAIL_DOMAIN)>\nDate: $$(date)\nSubject: A SMTP test message\n\nGreat news! A public store can receive email.\n" \ - | curl smtp://localhost -T - --mail-from test@example.biz \ - --mail-rcpt $(AD_PUB_CN)@$(MAIL_DOMAIN) $(CURL_DBG) + $(call smtp_mail,smtp://$(MTA_FQDN),$(MAIL_FROM),$(AD_PUB_CN)@$(MAIL_DOMAIN),A public SMTP test message.) mta-razor: docker-compose exec mta run amavis_register_razor @@ -260,11 +304,11 @@ mta-freshclam_nodns: mta-clamdtop: docker-compose exec mta clamdtop -mta-debugtools: +mta-tools: docker-compose exec mta apk --no-cache --update add \ nano less lsof htop openldap-clients bind-tools iputils strace -mta-htop: mta-debugtools +mta-htop: mta-tools docker-compose exec mta htop mta-encrypt: @@ -286,62 +330,67 @@ mta-flush_mailq: mta-test_auth: docker-compose exec mta doveadm auth test $(AD_USR_CN) $(AD_USR_PW) -mta-test_imap: mta-hostaddr - curl imaps://$(myhost)/inbox -s --ssl --anyauth -k -X "fetch 1 all" \ - -u $(AD_USR_CN):$(AD_USR_PW) +mta-test_imaps: + $(CURL_CMD) imaps://$(MTA_FQDN)//inbox -X "fetch 1 all" \ + --ssl --anyauth -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT) + +mta-man: + docker-compose exec mta apk --no-cache --update add man-db man-pages \ + postfix-doc cyrus-sasl-doc dovecot-doc spamassassin-doc clamav-doc razor-doc db-init: db-test: docker-compose exec db mysqlshow -u $(MYSQL_USER) $(MYSQL_DATABASE) -p$(MYSQL_PASSWORD) -db-gui-up: - docker run -d --name db-gui --network demo_backend \ - -p 127.0.0.1:8002:80 -e PMA_HOST=db \ - phpmyadmin/phpmyadmin || true +db-web: db-web-up sleep 2 - firefox localhost:8002 & + $(call webb_cmd,http://$(DBW_FQDN)) -db-gui-down: - docker rm -f db-gui || true +db-web-up: + docker run -d --name $(DBW_NAME) --network $(NET_NAME) \ + -e PMA_HOST=db phpmyadmin/phpmyadmin || true + +db-web-down: + docker rm -f $(DBW_NAME) || true app-init: app-public_store app-create_smime -app-debugtools: +app-tools: docker-compose exec app apt-get update docker-compose exec app apt-get install --yes \ less nano ldap-utils htop net-tools lsof iputils-ping dnsutils strace -app-htop: app-debugtools +app-htop: app-tools docker-compose exec app htop app-test_smtp: mta-test_smtp -app-test_lmtp: app-hostaddr - printf "LHLO mx\nMAIL FROM: \nRCPT TO: <$(AD_USR_CN)@$(MAIL_DOMAIN)>\nDATA\nFrom: A tester \nTo: <$(AD_USR_CN)@$(MAIL_DOMAIN)>\nDate: $$(date)\nSubject: A LMTP test message from me to you\n\nDelete me, please \n.\nQUIT\n" | nc -C $(myhost) 2003 +app-test_lmtp: + $(call lmtp_mail,telnet://$(APP_FQDN):2003,$(MAIL_FROM),$(AD_USR_CN)@$(MAIL_DOMAIN),A LMTP test message.) -app-test_all: all-test_muted app-test_imap app-test_pop3 app-test_ical app-test_imaps app-test_pop3s app-test_icals +app-test_all: all-test_muted $(addprefix app-test_,imap pop3 ical imaps pop3s icals) -app-test_imap: app-hostaddr - curl imap://$(myhost) -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_DBG) +app-test_imap: + $(CURL_CMD) imap://$(APP_FQDN) -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT) -app-test_imaps: app-hostaddr - curl imaps://$(myhost) -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_DBG) +app-test_imaps: + $(CURL_CMD) imaps://$(APP_FQDN) -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT) -app-test_pop3: app-hostaddr - curl pop3://$(myhost) -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_DBG) +app-test_pop3: + $(CURL_CMD) pop3://$(APP_FQDN) -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT) -app-test_pop3s: app-hostaddr - curl pop3s://$(myhost) -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_DBG) +app-test_pop3s: + $(CURL_CMD) pop3s://$(APP_FQDN) -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT) -app-test_ical: app-hostaddr - curl http://$(myhost):8080 -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_DBG) +app-test_ical: + $(CURL_CMD) http://$(APP_FQDN):8080 -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT) -app-test_icals: app-hostaddr - curl https://$(myhost):8443 -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_DBG) +app-test_icals: + $(CURL_CMD) https://$(APP_FQDN):8443 -k -u $(AD_USR_CN):$(AD_USR_PW) $(CURL_OPT) -app-test_tls: app-hostaddr - docker run --rm -it --network demo_backend drwetter/testssl.sh app:993 || true +app-test_tls: + $(TSSL_CMD) $(APP_FQDN):993 || true app-test_oof1: docker-compose exec app kopano-oof -u $(AD_USR_CN) -m 1 -t "Dunno when I return" @@ -352,7 +401,7 @@ app-test_oof0: app-show_user1: docker-compose exec app kopano-admin --details $(AD_USR_CN) -app-show_user2: app-debugtools +app-show_user2: app-tools docker-compose exec app ldapsearch -H ldap://auth:389 -xLLL -b $(AD_BASE) '*' app-show_sync: @@ -364,18 +413,22 @@ app-create_store: app-public_store: docker-compose exec app kopano-storeadm -P +#app-add_user: +# docker-compose exec app kopano-admin -c $(AD_USR_CN) -p $(AD_USR_PW) \ +# -e $(AD_USR_CN)@$(MAIL_DOMAIN) -f $(AD_USR_CN) -a 1 + $(addprefix app-parms_,archiver dagent gateway ical ldap search server spamd spooler): docker-compose exec app run list_parms $(patsubst app-parms_%,%,$@) app-create_smime: all-create_smime - docker cp ssl/ca.crt $$(docker-compose ps -q app):/usr/local/share/ca-certificates/$(MAIL_DOMAIN)_CA.crt + docker cp ssl/ca.crt $(call dkr_srv_cnt,app):/usr/local/share/ca-certificates/$(MAIL_DOMAIN)_CA.crt docker-compose exec app update-ca-certificates all-test_quiet: - $(eval CURL_DBG := -s -S ) + $(eval CURL_OPT := -s -S ) all-test_muted: - $(eval CURL_DBG := -s -S >/dev/null || true) + $(eval CURL_OPT := -s -S >/dev/null || true) all-create_smime: ssl/$(AD_USR_CN).p12 diff --git a/demo/docker-compose.yml b/demo/docker-compose.yml index 84c9069..fc12448 100644 --- a/demo/docker-compose.yml +++ b/demo/docker-compose.yml @@ -5,14 +5,14 @@ services: image: mlan/kopano networks: - backend - ports: - - "127.0.0.1:8008:80" # WebApp & EAS (alt. HTTP) - - "127.0.0.1:143:143" # IMAP (not needed if all devices can use EAS) - - "127.0.0.1:110:110" # POP3 (not needed if all devices can use EAS) - - "127.0.0.1:8080:8080" # ICAL (not needed if all devices can use EAS) - - "127.0.0.1:993:993" # IMAPS (not needed if all devices can use EAS) - - "127.0.0.1:995:995" # POP3S (not needed if all devices can use EAS) - - "127.0.0.1:8443:8443" # ICALS (not needed if all devices can use EAS) +# ports: # Uncomment to expose ports to host interfaces +# - "80:80" # WebApp & EAS (alt. HTTP) +# - "143:143" # IMAP (not needed if all devices can use EAS) +# - "110:110" # POP3 (not needed if all devices can use EAS) +# - "8080:8080" # ICAL (not needed if all devices can use EAS) +# - "993:993" # IMAPS (not needed if all devices can use EAS) +# - "995:995" # POP3S (not needed if all devices can use EAS) +# - "8443:8443" # ICALS (not needed if all devices can use EAS) depends_on: - auth - db @@ -54,16 +54,15 @@ services: hostname: ${MAIL_SRV-mx}.${MAIL_DOMAIN-example.com} networks: - backend - ports: - - "127.0.0.1:25:25" # SMTP - - "127.0.0.1:465:465" # SMTPS authentication required +# ports: # # Uncomment to expose ports to host interfaces +# - "25:25" # SMTP +# - "465:465" # SMTPS authentication required depends_on: - auth environment: # Virgin config, ignored on restarts unless FORCE_CONFIG given. - MESSAGE_SIZE_LIMIT=${MESSAGE_SIZE_LIMIT-25600000} - LDAP_HOST=auth - VIRTUAL_TRANSPORT=lmtp:app:2003 -# - VIRTUAL_TRANSPORT=lmtp:unix:private/transport - SMTP_RELAY_HOSTAUTH=${SMTP_RELAY_HOSTAUTH-} - SMTP_TLS_SECURITY_LEVEL=${SMTP_TLS_SECURITY_LEVEL-} - SMTP_TLS_WRAPPERMODE=${SMTP_TLS_WRAPPERMODE-no} diff --git a/test/.gitignore b/test/.gitignore deleted file mode 100644 index ac1e2a4..0000000 --- a/test/.gitignore +++ /dev/null @@ -1 +0,0 @@ -local.* diff --git a/test/Makefile b/test/Makefile index 9eec063..79c85f7 100644 --- a/test/Makefile +++ b/test/Makefile @@ -236,11 +236,11 @@ test-up-net: docker network create $(NET_NAME) 2>/dev/null || true test-down-net: - docker network rm $(NET_NAME) || true - -test-down: test-down_0 docker network rm $(NET_NAME) 2>/dev/null || true +test-down: test-down_0 test-down-net acme-destroy + + test-down_%: @docker rm -fv $(APP_NAME) $(DB_NAME) $(AUT_NAME) $(TAW_NAME) 2>/dev/null || true @if [ $* -ge 0 ]; then sleep $(TST_W8S1); fi @@ -260,7 +260,6 @@ test-lmtp: test-lmtp_0 test-lmtp_%: printf "LHLO mx\nMAIL FROM: \nRCPT TO: <$(AD_USR_CN)@$(AD_DOM)>\nDATA\nFrom: A tester \nTo: <$(AD_USR_CN)@$(AD_DOM)>\nDate: $$(date)\nSubject: $(MAIL_SUB)$*\n$(MAIL_MSG)$*\n.\nQUIT\n"\ | nc -C $(call dkr_cnt_ip,$(APP_NAME)) 2003 # > /dev/null -# | nc -C localhost 2003 # > /dev/null case $* in [1-3]) sleep $(TST_W8S1);; [4-9]) sleep $(TST_W8S2);; esac test-cfg_%: