mirror of
				https://github.com/zokradonh/kopano-docker
				synced 2025-10-30 18:07:46 +00:00 
			
		
		
		
	More tests (#240)
* add goss healthcheck to meet * add goss healthcheck to scheduler * enhance goss tests for webapp * add meet and scheduler to make target for goss * fix healtcheck for webapp will report 200, but also cause an error because of it being requested over plain have dedicated url for check * disable stats reporting in build * update commander
This commit is contained in:
		
							parent
							
								
									00b15becfd
								
							
						
					
					
						commit
						b273c87cb3
					
				| @ -11,7 +11,7 @@ env: | ||||
|     - DOCKER_COMPOSE_VERSION=1.23.2 | ||||
|     - TRIVY_VERSION=0.1.1 | ||||
|     - GOSS_VERSION=0.3.7 | ||||
|     - COMMANDER_VERSION=1.2.0 | ||||
|     - COMMANDER_VERSION=1.2.1 | ||||
| services: | ||||
|   - docker | ||||
| before_install: | ||||
| @ -40,6 +40,9 @@ install: | ||||
|   - make lint # rerun lint to see if output is different with .env in place | ||||
|   - echo "docker_repo=$docker_repo" >> .env | ||||
|   - echo "DOCKERREADME=yes" >> .env # add DOCKERREADME env var so that make publish also updates readme files on docker hub | ||||
|   - echo "KCCONF_SERVER_SURVEYCLIENT_INTERVAL=0" >> kopano_server.env | ||||
|   - echo "KOPANO_SURVEYCLIENT_ENABLED=false" >> kopano_konnect.env | ||||
|   - echo "KOPANO_SURVEYCLIENT_ENABLED=false" >> kopano_kwmserver.env | ||||
|   - travis_retry make build-all | ||||
| script: | ||||
|   - make test-ci | ||||
|  | ||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @ -381,6 +381,8 @@ test-goss: ## Test configuration of containers with goss | ||||
| 	GOSS_FILES_PATH=core/goss/monitor dcgoss run kopano_monitor | ||||
| 	GOSS_FILES_PATH=core/goss/search dcgoss run kopano_search | ||||
| 	GOSS_FILES_PATH=core/goss/spooler dcgoss run kopano_spooler | ||||
| 	GOSS_FILES_PATH=meet dcgoss run kopano_meet | ||||
| 	GOSS_FILES_PATH=scheduler dcgoss run kopano_scheduler | ||||
| 	GOSS_FILES_PATH=webapp dcgoss run kopano_webapp | ||||
| 
 | ||||
| test-commander: ## Test scripts with commander
 | ||||
|  | ||||
| @ -57,4 +57,9 @@ ENV KOPANO_USERSCRIPT_LOCALE="de_DE.UTF-8" | ||||
| ENV LANG=en_US.UTF-8 | ||||
| 
 | ||||
| COPY defaultconfigs/ start-service.sh /kopano/ | ||||
| COPY goss.yaml /goss/ | ||||
| CMD [ "/kopano/start-service.sh" ] | ||||
| 
 | ||||
| HEALTHCHECK --interval=1m --timeout=10s \ | ||||
|     CMD goss -g /goss/goss.yaml validate --format json_oneline | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										18
									
								
								meet/goss.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								meet/goss.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | ||||
| file: | ||||
|   /usr/share/kopano-kweb/www/config/kopano/meet.json: | ||||
|     exists: true | ||||
|     mode: "0644" | ||||
|     owner: root | ||||
|     group: root | ||||
|     filetype: file | ||||
|     contains: [] | ||||
| process: | ||||
|   kwebd: | ||||
|     running: true | ||||
| http: | ||||
|   http://localhost:9080/meet: | ||||
|     status: 200 | ||||
|     allow-insecure: false | ||||
|     no-follow-redirects: false | ||||
|     timeout: 5000 | ||||
|     body: [] | ||||
| @ -1,6 +1,10 @@ | ||||
| :9080 { | ||||
| 	log stdout | ||||
| 	errors stderr | ||||
| 
 | ||||
| 	# healthcheck | ||||
| 	status 200 /status | ||||
| 
 | ||||
| 	alias /webapp/ /usr/share/kopano-webapp/ | ||||
| 	fastcgi2 /webapp/ /run/php/php7.0-fpm.sock php { | ||||
| 		without /webapp/ | ||||
|  | ||||
| @ -4,6 +4,7 @@ ARG VCS_REF | ||||
| 
 | ||||
| ENV \ | ||||
|     DOCKERIZE_VERSION=v0.6.1 \ | ||||
|     GOSS_VERSION=v0.3.7 \ | ||||
|     SUPERCRONIC_VERSION=0.1.9 | ||||
| 
 | ||||
| LABEL maintainer=az@zok.xyz \ | ||||
| @ -15,16 +16,30 @@ LABEL maintainer=az@zok.xyz \ | ||||
|     org.label-schema.version=$SUPERCRONIC_VERSION \ | ||||
|     org.label-schema.schema-version="1.0" | ||||
| 
 | ||||
| RUN apk --no-cache add bash | ||||
| 
 | ||||
| RUN wget https://github.com/aptible/supercronic/releases/download/v${SUPERCRONIC_VERSION}/supercronic-linux-amd64 \ | ||||
|     -O /usr/local/bin/supercronic \ | ||||
|     && chmod +x /usr/local/bin/supercronic | ||||
| RUN apk --no-cache add bash curl ca-certificates | ||||
| 
 | ||||
| RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ | ||||
|     && tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ | ||||
|     && rm dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz | ||||
| 
 | ||||
| RUN wget https://github.com/aelsabbahy/goss/releases/download/$GOSS_VERSION/goss-linux-amd64 -O /usr/local/bin/goss \ | ||||
|     && chmod +x /usr/local/bin/goss \ | ||||
|     && goss --version | ||||
| 
 | ||||
| RUN wget https://github.com/aptible/supercronic/releases/download/v${SUPERCRONIC_VERSION}/supercronic-linux-amd64 \ | ||||
|     -O /usr/local/bin/supercronic \ | ||||
|     && chmod +x /usr/local/bin/supercronic | ||||
| 
 | ||||
| # Setup timezone | ||||
| ENV TZ=UTC | ||||
| RUN ln -snf "/usr/share/zoneinfo/$TZ" /etc/localtime | ||||
| RUN printf '%s\n' "$TZ" > /etc/timezone | ||||
| 
 | ||||
| COPY start.sh /usr/local/bin/ | ||||
| COPY goss.yaml /goss/ | ||||
| 
 | ||||
| CMD ["start.sh"] | ||||
| 
 | ||||
| # TODO interval does not only define how often the healtcheck is run, but also how long to wait for the first check after startup | ||||
| HEALTHCHECK --interval=60m --timeout=15s \ | ||||
|     CMD goss -g /goss/goss.yaml validate --format json_oneline | ||||
							
								
								
									
										9
									
								
								scheduler/goss.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								scheduler/goss.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| command: | ||||
|   kill -SIGUSR2 $(pidof supercronic): | ||||
|     exit-status: 0 | ||||
|     stdout: [] | ||||
|     stderr: [] | ||||
|     timeout: 10000 | ||||
| process: | ||||
|   supercronic: | ||||
|     running: true | ||||
							
								
								
									
										3
									
								
								scheduler/goss_wait.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								scheduler/goss_wait.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| process: | ||||
|   supercronic: | ||||
|     running: true | ||||
| @ -34,4 +34,5 @@ for cronvar in ${!CRON_*}; do | ||||
| 	$croncommand | ||||
| done | ||||
| 
 | ||||
| supercronic -test /etc/crontab | ||||
| exec supercronic /etc/crontab | ||||
|  | ||||
| @ -1,9 +1,36 @@ | ||||
| file: | ||||
|   /run/sessions: | ||||
|     exists: true | ||||
|     mode: "0755" | ||||
|     size: 4096 | ||||
|     owner: www-data | ||||
|     group: www-data | ||||
|     filetype: directory | ||||
|     contains: [] | ||||
|   /usr/lib/php/20151012/mapi.so: | ||||
|     exists: true | ||||
|     mode: "0644" | ||||
|     owner: root | ||||
|     group: root | ||||
|     filetype: file | ||||
|     contains: [] | ||||
|   /var/lib/kopano-webapp/tmp: | ||||
|     exists: true | ||||
|     mode: "0755" | ||||
|     size: 4096 | ||||
|     owner: www-data | ||||
|     group: www-data | ||||
|     filetype: directory | ||||
|     contains: [] | ||||
| process: | ||||
|   kwebd: | ||||
|     running: true | ||||
|   php-fpm7.0: | ||||
|     running: true | ||||
| http: | ||||
|   http://localhost:9080/webapp: | ||||
|   http://localhost:9080/status: | ||||
|     status: 200 | ||||
|     allow-insecure: false | ||||
|     no-follow-redirects: false | ||||
|     timeout: 5000 | ||||
|     body: [] | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user