mirror of
				https://github.com/zokradonh/kopano-docker
				synced 2025-10-31 02:17:47 +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 |     - DOCKER_COMPOSE_VERSION=1.23.2 | ||||||
|     - TRIVY_VERSION=0.1.1 |     - TRIVY_VERSION=0.1.1 | ||||||
|     - GOSS_VERSION=0.3.7 |     - GOSS_VERSION=0.3.7 | ||||||
|     - COMMANDER_VERSION=1.2.0 |     - COMMANDER_VERSION=1.2.1 | ||||||
| services: | services: | ||||||
|   - docker |   - docker | ||||||
| before_install: | before_install: | ||||||
| @ -40,6 +40,9 @@ install: | |||||||
|   - make lint # rerun lint to see if output is different with .env in place |   - make lint # rerun lint to see if output is different with .env in place | ||||||
|   - echo "docker_repo=$docker_repo" >> .env |   - 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 "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 |   - travis_retry make build-all | ||||||
| script: | script: | ||||||
|   - make test-ci |   - 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/monitor dcgoss run kopano_monitor | ||||||
| 	GOSS_FILES_PATH=core/goss/search dcgoss run kopano_search | 	GOSS_FILES_PATH=core/goss/search dcgoss run kopano_search | ||||||
| 	GOSS_FILES_PATH=core/goss/spooler dcgoss run kopano_spooler | 	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 | 	GOSS_FILES_PATH=webapp dcgoss run kopano_webapp | ||||||
| 
 | 
 | ||||||
| test-commander: ## Test scripts with commander
 | test-commander: ## Test scripts with commander
 | ||||||
|  | |||||||
| @ -57,4 +57,9 @@ ENV KOPANO_USERSCRIPT_LOCALE="de_DE.UTF-8" | |||||||
| ENV LANG=en_US.UTF-8 | ENV LANG=en_US.UTF-8 | ||||||
| 
 | 
 | ||||||
| COPY defaultconfigs/ start-service.sh /kopano/ | COPY defaultconfigs/ start-service.sh /kopano/ | ||||||
|  | COPY goss.yaml /goss/ | ||||||
| CMD [ "/kopano/start-service.sh" ] | 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 { | :9080 { | ||||||
|  | 	log stdout | ||||||
| 	errors stderr | 	errors stderr | ||||||
| 
 | 
 | ||||||
|  | 	# healthcheck | ||||||
|  | 	status 200 /status | ||||||
|  | 
 | ||||||
| 	alias /webapp/ /usr/share/kopano-webapp/ | 	alias /webapp/ /usr/share/kopano-webapp/ | ||||||
| 	fastcgi2 /webapp/ /run/php/php7.0-fpm.sock php { | 	fastcgi2 /webapp/ /run/php/php7.0-fpm.sock php { | ||||||
| 		without /webapp/ | 		without /webapp/ | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ ARG VCS_REF | |||||||
| 
 | 
 | ||||||
| ENV \ | ENV \ | ||||||
|     DOCKERIZE_VERSION=v0.6.1 \ |     DOCKERIZE_VERSION=v0.6.1 \ | ||||||
|  |     GOSS_VERSION=v0.3.7 \ | ||||||
|     SUPERCRONIC_VERSION=0.1.9 |     SUPERCRONIC_VERSION=0.1.9 | ||||||
| 
 | 
 | ||||||
| LABEL maintainer=az@zok.xyz \ | LABEL maintainer=az@zok.xyz \ | ||||||
| @ -15,16 +16,30 @@ LABEL maintainer=az@zok.xyz \ | |||||||
|     org.label-schema.version=$SUPERCRONIC_VERSION \ |     org.label-schema.version=$SUPERCRONIC_VERSION \ | ||||||
|     org.label-schema.schema-version="1.0" |     org.label-schema.schema-version="1.0" | ||||||
| 
 | 
 | ||||||
| RUN apk --no-cache add bash | RUN apk --no-cache add bash curl ca-certificates | ||||||
| 
 |  | ||||||
| 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 wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ | 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 \ |     && tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ | ||||||
|     && rm 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 start.sh /usr/local/bin/ | ||||||
|  | COPY goss.yaml /goss/ | ||||||
| 
 | 
 | ||||||
| CMD ["start.sh"] | 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 | 	$croncommand | ||||||
| done | done | ||||||
| 
 | 
 | ||||||
|  | supercronic -test /etc/crontab | ||||||
| exec supercronic /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: | process: | ||||||
|   kwebd: |   kwebd: | ||||||
|     running: true |     running: true | ||||||
|   php-fpm7.0: |   php-fpm7.0: | ||||||
|     running: true |     running: true | ||||||
| http: | http: | ||||||
|   http://localhost:9080/webapp: |   http://localhost:9080/status: | ||||||
|     status: 200 |     status: 200 | ||||||
|  |     allow-insecure: false | ||||||
|  |     no-follow-redirects: false | ||||||
|     timeout: 5000 |     timeout: 5000 | ||||||
|  |     body: [] | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user