From db5898dfc89d62df4c5d530d40546e444b8e328d Mon Sep 17 00:00:00 2001 From: "kucharzyk.tomasz" Date: Sun, 9 Oct 2016 18:44:31 +0200 Subject: [PATCH 1/7] preparing branch for version 2.3.0 --- README.md | 4 +++- docker-compose.yml | 2 +- docs/CHANGELOG.md | 2 ++ pom.xml | 2 +- shardis-admin/pom.xml | 4 ++-- shardis-api/pom.xml | 4 ++-- shardis-auth/pom.xml | 4 ++-- shardis-common/pom.xml | 4 ++-- shardis-config/pom.xml | 4 ++-- shardis-discovery/pom.xml | 4 ++-- shardis-gateway/pom.xml | 4 ++-- shardis-ui/pom.xml | 4 ++-- 12 files changed, 23 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index c2b040c..ab992a1 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # SPRING BOOT ANGULAR 2 STARTER -[![Build Status](https://travis-ci.org/shardis/spring-angular2-starter.svg?branch=master)](https://travis-ci.org/shardis/spring-angular2-starter) +[![Build Status](https://travis-ci.org/shardis/spring-angular2-starter.svg?branch=dev)](https://travis-ci.org/shardis/spring-angular2-starter) ## PROJECT DESCRIPTION: @@ -193,6 +193,8 @@ npm run e2e ## CHANGELOG: +### 2.3.0 (unreleased) + ### 2.2.0 (09.10.2016) * Introduced Angular-Cli as angular build tool * Updated Angular to 2.0.2 diff --git a/docker-compose.yml b/docker-compose.yml index 8374463..0635e6c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,7 @@ services: - 8888:8888 environment: - CONFIGURATION_REPOSITORY=https://github.com/shardis/spring-angular2-starter-configuration.git - - CONFIGURATION_BRANCH=master + - CONFIGURATION_BRANCH=dev discovery-service: image: spring-ng2-starter/shardis-discovery ports: diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index f4d9f68..f425bfa 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,7 @@ ## CHANGELOG: +### 2.3.0 (unreleased) + ### 2.2.0 (09.10.2016) * Introduced Angular-Cli as angular build tool * Updated Angular to 2.0.2 diff --git a/pom.xml b/pom.xml index 5860b78..7d9e77f 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.shardis shardis - 2.2.0 + 2.3.0 pom shardis diff --git a/shardis-admin/pom.xml b/shardis-admin/pom.xml index 0777a9e..467432a 100644 --- a/shardis-admin/pom.xml +++ b/shardis-admin/pom.xml @@ -5,7 +5,7 @@ com.shardis shardis-admin - 2.2.0 + 2.3.0 jar shardis-admin @@ -14,7 +14,7 @@ com.shardis shardis - 2.2.0 + 2.3.0 diff --git a/shardis-api/pom.xml b/shardis-api/pom.xml index ac4707d..2ecbdbd 100644 --- a/shardis-api/pom.xml +++ b/shardis-api/pom.xml @@ -5,7 +5,7 @@ com.shardis shardis-api - 2.2.0 + 2.3.0 jar shardis-api @@ -14,7 +14,7 @@ com.shardis shardis - 2.2.0 + 2.3.0 diff --git a/shardis-auth/pom.xml b/shardis-auth/pom.xml index 770da9d..4a8495c 100644 --- a/shardis-auth/pom.xml +++ b/shardis-auth/pom.xml @@ -5,7 +5,7 @@ com.shardis shardis-auth - 2.2.0 + 2.3.0 jar shardis-auth @@ -14,7 +14,7 @@ com.shardis shardis - 2.2.0 + 2.3.0 diff --git a/shardis-common/pom.xml b/shardis-common/pom.xml index b01dbac..5e31736 100644 --- a/shardis-common/pom.xml +++ b/shardis-common/pom.xml @@ -5,7 +5,7 @@ com.shardis shardis-common - 2.2.0 + 2.3.0 jar shardis-common @@ -14,7 +14,7 @@ com.shardis shardis - 2.2.0 + 2.3.0 diff --git a/shardis-config/pom.xml b/shardis-config/pom.xml index e80f489..1685922 100644 --- a/shardis-config/pom.xml +++ b/shardis-config/pom.xml @@ -5,7 +5,7 @@ com.shardis shardis-config - 2.2.0 + 2.3.0 jar shardis-config @@ -14,7 +14,7 @@ com.shardis shardis - 2.2.0 + 2.3.0 diff --git a/shardis-discovery/pom.xml b/shardis-discovery/pom.xml index 2f3b8ff..7917d48 100644 --- a/shardis-discovery/pom.xml +++ b/shardis-discovery/pom.xml @@ -5,7 +5,7 @@ com.shardis shardis-discovery - 2.2.0 + 2.3.0 jar shardis-discovery @@ -14,7 +14,7 @@ com.shardis shardis - 2.2.0 + 2.3.0 diff --git a/shardis-gateway/pom.xml b/shardis-gateway/pom.xml index 5296c9e..72183e9 100644 --- a/shardis-gateway/pom.xml +++ b/shardis-gateway/pom.xml @@ -5,7 +5,7 @@ com.shardis shardis-gateway - 2.2.0 + 2.3.0 jar shardis-gateway @@ -14,7 +14,7 @@ com.shardis shardis - 2.2.0 + 2.3.0 diff --git a/shardis-ui/pom.xml b/shardis-ui/pom.xml index c7294a0..6c6af6f 100644 --- a/shardis-ui/pom.xml +++ b/shardis-ui/pom.xml @@ -5,7 +5,7 @@ com.shardis shardis-ui - 2.2.0 + 2.3.0 jar shardis-ui @@ -14,7 +14,7 @@ com.shardis shardis - 2.2.0 + 2.3.0 From e5d32b1635829891e1f48a239d624252c6f1ca02 Mon Sep 17 00:00:00 2001 From: "kucharzyk.tomasz" Date: Sun, 9 Oct 2016 18:46:20 +0200 Subject: [PATCH 2/7] readme update --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ab992a1..f47877e 100644 --- a/README.md +++ b/README.md @@ -70,44 +70,44 @@ mvn clean package -P prod-standalone Then run config server: ``` cd shardis-config/ -java -jar ./target/shardis-config-2.2.0.jar +java -jar ./target/shardis-config-2.3.0.jar ``` Then run discovery server: ``` cd shardis-discovery/ -java -jar ./target/shardis-discovery-2.2.0.jar +java -jar ./target/shardis-discovery-2.3.0.jar ``` Then run gateway server: ``` cd shardis-gateway/ -java -jar ./target/shardis-gateway-2.2.0.jar +java -jar ./target/shardis-gateway-2.3.0.jar ``` Then run api server: ``` cd shardis-api/ -java -jar ./target/shardis-api-2.2.0.jar +java -jar ./target/shardis-api-2.3.0.jar ``` Then run auth server: ``` cd shardis-auth/ -java -jar ./target/shardis-auth-2.2.0.jar +java -jar ./target/shardis-auth-2.3.0.jar ``` Then run ui server: ``` cd shardis-ui/ -java -jar ./target/shardis-ui-2.2.0.jar +java -jar ./target/shardis-ui-2.3.0.jar ``` Then run admin server (optional): ``` cd shardis-admin/ -java -jar ./target/shardis-admin-2.2.0.jar +java -jar ./target/shardis-admin-2.3.0.jar ``` From b95bc5a8c41df4ae9f34a3965fdf7ba84e5ed53a Mon Sep 17 00:00:00 2001 From: "kucharzyk.tomasz" Date: Sun, 9 Oct 2016 19:05:50 +0200 Subject: [PATCH 3/7] bump versions --- shardis-admin/src/main/docker/Dockerfile | 2 +- shardis-api/src/main/docker/Dockerfile | 2 +- shardis-auth/src/main/docker/Dockerfile | 2 +- shardis-config/src/main/docker/Dockerfile | 2 +- shardis-discovery/src/main/docker/Dockerfile | 2 +- shardis-gateway/src/main/docker/Dockerfile | 2 +- shardis-ui/src/main/docker/Dockerfile | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/shardis-admin/src/main/docker/Dockerfile b/shardis-admin/src/main/docker/Dockerfile index a2fd2fa..e4912cd 100644 --- a/shardis-admin/src/main/docker/Dockerfile +++ b/shardis-admin/src/main/docker/Dockerfile @@ -1,6 +1,6 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-admin-2.2.0.jar app.jar +ADD shardis-admin-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' diff --git a/shardis-api/src/main/docker/Dockerfile b/shardis-api/src/main/docker/Dockerfile index 03a4c51..b5a655f 100644 --- a/shardis-api/src/main/docker/Dockerfile +++ b/shardis-api/src/main/docker/Dockerfile @@ -1,6 +1,6 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-api-2.2.0.jar app.jar +ADD shardis-api-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' diff --git a/shardis-auth/src/main/docker/Dockerfile b/shardis-auth/src/main/docker/Dockerfile index e60bd13..c7e6f0b 100644 --- a/shardis-auth/src/main/docker/Dockerfile +++ b/shardis-auth/src/main/docker/Dockerfile @@ -1,6 +1,6 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-auth-2.2.0.jar app.jar +ADD shardis-auth-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' diff --git a/shardis-config/src/main/docker/Dockerfile b/shardis-config/src/main/docker/Dockerfile index a625820..b114bea 100644 --- a/shardis-config/src/main/docker/Dockerfile +++ b/shardis-config/src/main/docker/Dockerfile @@ -1,6 +1,6 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-config-2.2.0.jar app.jar +ADD shardis-config-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' diff --git a/shardis-discovery/src/main/docker/Dockerfile b/shardis-discovery/src/main/docker/Dockerfile index 9248eca..4c0288c 100644 --- a/shardis-discovery/src/main/docker/Dockerfile +++ b/shardis-discovery/src/main/docker/Dockerfile @@ -1,6 +1,6 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-discovery-2.2.0.jar app.jar +ADD shardis-discovery-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' diff --git a/shardis-gateway/src/main/docker/Dockerfile b/shardis-gateway/src/main/docker/Dockerfile index 630f819..db74851 100644 --- a/shardis-gateway/src/main/docker/Dockerfile +++ b/shardis-gateway/src/main/docker/Dockerfile @@ -1,6 +1,6 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-gateway-2.2.0.jar app.jar +ADD shardis-gateway-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' diff --git a/shardis-ui/src/main/docker/Dockerfile b/shardis-ui/src/main/docker/Dockerfile index 44da592..9d703cb 100644 --- a/shardis-ui/src/main/docker/Dockerfile +++ b/shardis-ui/src/main/docker/Dockerfile @@ -1,6 +1,6 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-ui-2.2.0.jar app.jar +ADD shardis-ui-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' From 97d78a8daf0c41265f531a5ba1830744793ee24e Mon Sep 17 00:00:00 2001 From: "kucharzyk.tomasz" Date: Sun, 9 Oct 2016 22:19:50 +0200 Subject: [PATCH 4/7] updated Codelyzer to 1.0.0-beta.1 and re-enabled rules broken by Angular 2.0.2 --- README.md | 2 ++ docs/CHANGELOG.md | 2 ++ shardis-ui/package.json | 6 +++--- shardis-ui/tslint.json | 28 +++++++++++++++++----------- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index f47877e..1c5eff0 100644 --- a/README.md +++ b/README.md @@ -194,6 +194,8 @@ npm run e2e ## CHANGELOG: ### 2.3.0 (unreleased) +* Dependency updates +* Updated Codelyzer to 1.0.0-beta.1 and re-enabled rules broken by Angular 2.0.2 ### 2.2.0 (09.10.2016) * Introduced Angular-Cli as angular build tool diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index f425bfa..0ee6f3c 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,6 +1,8 @@ ## CHANGELOG: ### 2.3.0 (unreleased) +* Dependency updates +* Updated Codelyzer to 1.0.0-beta.1 and re-enabled rules broken by Angular 2.0.2 ### 2.2.0 (09.10.2016) * Introduced Angular-Cli as angular build tool diff --git a/shardis-ui/package.json b/shardis-ui/package.json index a080c3f..f9d9901 100644 --- a/shardis-ui/package.json +++ b/shardis-ui/package.json @@ -33,9 +33,9 @@ "devDependencies": { "@types/hammerjs": "2.0.33", "@types/jasmine": "2.5.35", - "@types/node": "6.0.42", + "@types/node": "6.0.45", "angular-cli": "1.0.0-beta.17", - "codelyzer": "~1.0.0-beta.0", + "codelyzer": "~1.0.0-beta.1", "jasmine-core": "2.5.2", "jasmine-spec-reporter": "2.7.0", "karma": "1.3.0", @@ -47,7 +47,7 @@ "npm-check-updates": "2.8.4", "protractor": "4.0.9", "rimraf": "2.5.4", - "ts-node": "1.4.0", + "ts-node": "1.4.1", "tslint": "3.15.1", "typescript": "2.0.2" }, diff --git a/shardis-ui/tslint.json b/shardis-ui/tslint.json index 373b562..bad534d 100644 --- a/shardis-ui/tslint.json +++ b/shardis-ui/tslint.json @@ -98,16 +98,22 @@ "directive-selector-name": [true, "camelCase"], "component-selector-name": [true, "kebab-case"], "directive-selector-type": [true, "attribute"], - "component-selector-type": [true, "element"] -// TEMPORARY DISABLED: https://github.com/mgechev/codelyzer/issues/107 -// "use-input-property-decorator": true, -// "use-output-property-decorator": true, -// "use-host-property-decorator": true, -// "no-input-rename": true, -// "no-output-rename": true, -// "use-life-cycle-interface": true, -// "use-pipe-transform-interface": true, -// "component-class-suffix": true, -// "directive-class-suffix": true + "component-selector-type": [true, "element"], + "use-input-property-decorator": true, + "use-output-property-decorator": true, + "use-host-property-decorator": true, + "no-attribute-parameter-decorator": true, + "no-input-rename": true, + "no-output-rename": true, + "no-forward-ref": true, + "use-life-cycle-interface": true, + "use-pipe-transform-interface": true, + "pipe-naming": [true, "camelCase", "shardis"], + "component-class-suffix": true, + "directive-class-suffix": true, + "import-destructuring-spacing": false, + "templates-use-public": true, + "no-access-missing-member": true, + "invoke-injectable": true } } From cf2a894da8a3566aca9ad7a47f1900a95bb1edae Mon Sep 17 00:00:00 2001 From: "kucharzyk.tomasz" Date: Sun, 9 Oct 2016 22:37:39 +0200 Subject: [PATCH 5/7] fixed scrollToTop method in crud form. closes #48 --- README.md | 1 + docs/CHANGELOG.md | 1 + shardis-ui/src/main/frontend/app/crud/crud.component.ts | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1c5eff0..193a03d 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,7 @@ npm run e2e ### 2.3.0 (unreleased) * Dependency updates * Updated Codelyzer to 1.0.0-beta.1 and re-enabled rules broken by Angular 2.0.2 +* Fixed scrollToTop method in crud form ### 2.2.0 (09.10.2016) * Introduced Angular-Cli as angular build tool diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 0ee6f3c..8485104 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -3,6 +3,7 @@ ### 2.3.0 (unreleased) * Dependency updates * Updated Codelyzer to 1.0.0-beta.1 and re-enabled rules broken by Angular 2.0.2 +* Fixed scrollToTop method in crud form ### 2.2.0 (09.10.2016) * Introduced Angular-Cli as angular build tool diff --git a/shardis-ui/src/main/frontend/app/crud/crud.component.ts b/shardis-ui/src/main/frontend/app/crud/crud.component.ts index 8ab8b05..bda1ac7 100644 --- a/shardis-ui/src/main/frontend/app/crud/crud.component.ts +++ b/shardis-ui/src/main/frontend/app/crud/crud.component.ts @@ -110,7 +110,7 @@ export class CrudComponent implements OnInit { } private scrollToTop() { - let contentEl = document.querySelector('md-sidenav-layout > md-content'); + let contentEl = document.querySelector('md-sidenav-layout > .md-sidenav-content'); if (contentEl) { this.scrollTo(contentEl, 0, 100); } From fb06c06b5ca613e8206fe4ce629c80cca8a38688 Mon Sep 17 00:00:00 2001 From: "kucharzyk.tomasz" Date: Mon, 10 Oct 2016 21:20:35 +0200 Subject: [PATCH 6/7] docker scripts improvements --- .gitignore | 1 + README.md | 2 + docker-compose.yml | 12 +- docs/CHANGELOG.md | 2 + pom.xml | 5 + scripts/wait-for-it.sh | 161 +++++++++++++++++++ scripts/wait-for-service.sh | 31 +++- shardis-admin/src/main/docker/Dockerfile | 2 + shardis-api/src/main/docker/Dockerfile | 2 + shardis-auth/src/main/docker/Dockerfile | 2 + shardis-config/src/main/docker/Dockerfile | 2 + shardis-discovery/src/main/docker/Dockerfile | 2 + shardis-gateway/src/main/docker/Dockerfile | 2 + shardis-ui/src/main/docker/Dockerfile | 2 + 14 files changed, 216 insertions(+), 12 deletions(-) create mode 100644 scripts/wait-for-it.sh diff --git a/.gitignore b/.gitignore index 433c47b..aadaae6 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ .project ### maven +target/ shardis-common/target/ shardis-discovery/target/ shardis-auth/target/ diff --git a/README.md b/README.md index 193a03d..e2f385e 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,8 @@ npm run e2e * Dependency updates * Updated Codelyzer to 1.0.0-beta.1 and re-enabled rules broken by Angular 2.0.2 * Fixed scrollToTop method in crud form +* Added wait-for-it script for docker (will wait on the availability of a host and TCP port) +* Improved wait-for-service script (now can call optional command after service is ready) ### 2.2.0 (09.10.2016) * Introduced Angular-Cli as angular build tool diff --git a/docker-compose.yml b/docker-compose.yml index 0635e6c..e8d17e3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,7 +15,7 @@ services: - config-service links: - config-service - entrypoint: ./wait-for-service.sh http://config-service:8888/health + entrypoint: ./wait-for-service.sh http://config-service:8888/health -- java -Djava.security.egd=file:/dev/./urandom -jar /app.jar api-service: image: spring-ng2-starter/shardis-api ports: @@ -27,7 +27,7 @@ services: - discovery-service - auth-service - config-service - entrypoint: ./wait-for-service.sh http://discovery-service:8081/health + entrypoint: ./wait-for-service.sh http://discovery-service:8081/health -- java -Djava.security.egd=file:/dev/./urandom -jar /app.jar auth-service: image: spring-ng2-starter/shardis-auth ports: @@ -37,7 +37,7 @@ services: links: - discovery-service - config-service - entrypoint: ./wait-for-service.sh http://discovery-service:8081/health + entrypoint: ./wait-for-service.sh http://discovery-service:8081/health -- java -Djava.security.egd=file:/dev/./urandom -jar /app.jar ui-service: image: spring-ng2-starter/shardis-ui ports: @@ -53,7 +53,7 @@ services: - auth-service - api-service - config-service - entrypoint: ./wait-for-service.sh http://discovery-service:8081/health + entrypoint: ./wait-for-service.sh http://discovery-service:8081/health -- java -Djava.security.egd=file:/dev/./urandom -jar /app.jar gateway-service: image: spring-ng2-starter/shardis-gateway ports: @@ -65,7 +65,7 @@ services: - auth-service - api-service - config-service - entrypoint: ./wait-for-service.sh http://discovery-service:8081/health + entrypoint: ./wait-for-service.sh http://discovery-service:8081/health -- java -Djava.security.egd=file:/dev/./urandom -jar /app.jar admin-service: image: spring-ng2-starter/shardis-admin ports: @@ -78,4 +78,4 @@ services: - api-service - ui-service - config-service - entrypoint: ./wait-for-service.sh http://discovery-service:8081/health + entrypoint: ./wait-for-service.sh http://discovery-service:8081/health -- java -Djava.security.egd=file:/dev/./urandom -jar /app.jar diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 8485104..5cb00cd 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -4,6 +4,8 @@ * Dependency updates * Updated Codelyzer to 1.0.0-beta.1 and re-enabled rules broken by Angular 2.0.2 * Fixed scrollToTop method in crud form +* Added wait-for-it script for docker (will wait on the availability of a host and TCP port) +* Improved wait-for-service script (now can call optional command after service is ready) ### 2.2.0 (09.10.2016) * Introduced Angular-Cli as angular build tool diff --git a/pom.xml b/pom.xml index 7d9e77f..a7c652b 100644 --- a/pom.xml +++ b/pom.xml @@ -269,6 +269,11 @@ ${project.basedir}/../scripts wait-for-service.sh + + / + ${project.basedir}/../scripts + wait-for-it.sh + diff --git a/scripts/wait-for-it.sh b/scripts/wait-for-it.sh new file mode 100644 index 0000000..eca6c3b --- /dev/null +++ b/scripts/wait-for-it.sh @@ -0,0 +1,161 @@ +#!/usr/bin/env bash +# Use this script to test if a given TCP host/port are available + +cmdname=$(basename $0) + +echoerr() { if [[ $QUIET -ne 1 ]]; then echo "$@" 1>&2; fi } + +usage() +{ + cat << USAGE >&2 +Usage: + $cmdname host:port [-s] [-t timeout] [-- command args] + -h HOST | --host=HOST Host or IP under test + -p PORT | --port=PORT TCP port under test + Alternatively, you specify the host and port as host:port + -s | --strict Only execute subcommand if the test succeeds + -q | --quiet Don't output any status messages + -t TIMEOUT | --timeout=TIMEOUT + Timeout in seconds, zero for no timeout + -- COMMAND ARGS Execute command with args after the test finishes +USAGE + exit 1 +} + +wait_for() +{ + if [[ $TIMEOUT -gt 0 ]]; then + echoerr "$cmdname: waiting $TIMEOUT seconds for $HOST:$PORT" + else + echoerr "$cmdname: waiting for $HOST:$PORT without a timeout" + fi + start_ts=$(date +%s) + while : + do + (echo > /dev/tcp/$HOST/$PORT) >/dev/null 2>&1 + result=$? + if [[ $result -eq 0 ]]; then + end_ts=$(date +%s) + echoerr "$cmdname: $HOST:$PORT is available after $((end_ts - start_ts)) seconds" + break + fi + sleep 1 + done + return $result +} + +wait_for_wrapper() +{ + # In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692 + if [[ $QUIET -eq 1 ]]; then + timeout $TIMEOUT $0 --quiet --child --host=$HOST --port=$PORT --timeout=$TIMEOUT & + else + timeout $TIMEOUT $0 --child --host=$HOST --port=$PORT --timeout=$TIMEOUT & + fi + PID=$! + trap "kill -INT -$PID" INT + wait $PID + RESULT=$? + if [[ $RESULT -ne 0 ]]; then + echoerr "$cmdname: timeout occurred after waiting $TIMEOUT seconds for $HOST:$PORT" + fi + return $RESULT +} + +# process arguments +while [[ $# -gt 0 ]] +do + case "$1" in + *:* ) + hostport=(${1//:/ }) + HOST=${hostport[0]} + PORT=${hostport[1]} + shift 1 + ;; + --child) + CHILD=1 + shift 1 + ;; + -q | --quiet) + QUIET=1 + shift 1 + ;; + -s | --strict) + STRICT=1 + shift 1 + ;; + -h) + HOST="$2" + if [[ $HOST == "" ]]; then break; fi + shift 2 + ;; + --host=*) + HOST="${1#*=}" + shift 1 + ;; + -p) + PORT="$2" + if [[ $PORT == "" ]]; then break; fi + shift 2 + ;; + --port=*) + PORT="${1#*=}" + shift 1 + ;; + -t) + TIMEOUT="$2" + if [[ $TIMEOUT == "" ]]; then break; fi + shift 2 + ;; + --timeout=*) + TIMEOUT="${1#*=}" + shift 1 + ;; + --) + shift + CLI="$@" + break + ;; + --help) + usage + ;; + *) + echoerr "Unknown argument: $1" + usage + ;; + esac +done + +if [[ "$HOST" == "" || "$PORT" == "" ]]; then + echoerr "Error: you need to provide a host and port to test." + usage +fi + +TIMEOUT=${TIMEOUT:-15} +STRICT=${STRICT:-0} +CHILD=${CHILD:-0} +QUIET=${QUIET:-0} + +if [[ $CHILD -gt 0 ]]; then + wait_for + RESULT=$? + exit $RESULT +else + if [[ $TIMEOUT -gt 0 ]]; then + wait_for_wrapper + RESULT=$? + else + wait_for + RESULT=$? + fi +fi + +if [[ $CLI != "" ]]; then + if [[ $RESULT -ne 0 && $STRICT -eq 1 ]]; then + echoerr "$cmdname: strict mode, refusing to execute subprocess" + exit $RESULT + fi + exec $CLI +else + exit $RESULT +fi diff --git a/scripts/wait-for-service.sh b/scripts/wait-for-service.sh index 006dfd5..99ed7d4 100644 --- a/scripts/wait-for-service.sh +++ b/scripts/wait-for-service.sh @@ -1,16 +1,35 @@ #!/bin/bash -SERVICE_URL="$1" +############################################################################### +# +# Usage: +# ./wait-for-service.sh $health-service-url [-- command args] +# +# Example: +# ./wait-for-service.sh http://config-service:8888/health -- echo "DONE" +# +############################################################################### -echo "Waiting for endpoint $1" +HEALTH_SERVICE_URL="$1" + +if [[ $2 == "--" ]]; then + shift 2 + COMMAND="$@" +fi + +echo "Waiting for endpoint $HEALTH_SERVICE_URL" while [ -z ${DISCOVERY_SERVICE_READY} ]; do - echo "Waiting for endpoint $1" - if [ "$(curl --silent $SERVICE_URL 2>&1 | grep -q '\"status\":\"UP\"'; echo $?)" = 0 ]; then + echo "Waiting for endpoint $HEALTH_SERVICE_URL" + if [ "$(curl --silent $HEALTH_SERVICE_URL 2>&1 | grep -q '\"status\":\"UP\"'; echo $?)" = 0 ]; then DISCOVERY_SERVICE_READY=true; fi sleep 2 done -echo "Starting service" -java -Djava.security.egd=file:/dev/./urandom -jar /app.jar +if [[ $COMMAND != "" ]]; then + echo "Executing command $COMMAND" + exec $COMMAND +else + exit 0 +fi diff --git a/shardis-admin/src/main/docker/Dockerfile b/shardis-admin/src/main/docker/Dockerfile index e4912cd..078bc11 100644 --- a/shardis-admin/src/main/docker/Dockerfile +++ b/shardis-admin/src/main/docker/Dockerfile @@ -2,8 +2,10 @@ FROM anapsix/alpine-java:8 VOLUME /tmp ADD shardis-admin-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh +ADD wait-for-it.sh wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-service.sh' +RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] diff --git a/shardis-api/src/main/docker/Dockerfile b/shardis-api/src/main/docker/Dockerfile index b5a655f..129ec2b 100644 --- a/shardis-api/src/main/docker/Dockerfile +++ b/shardis-api/src/main/docker/Dockerfile @@ -2,8 +2,10 @@ FROM anapsix/alpine-java:8 VOLUME /tmp ADD shardis-api-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh +ADD wait-for-it.sh wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-service.sh' +RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] diff --git a/shardis-auth/src/main/docker/Dockerfile b/shardis-auth/src/main/docker/Dockerfile index c7e6f0b..df928fc 100644 --- a/shardis-auth/src/main/docker/Dockerfile +++ b/shardis-auth/src/main/docker/Dockerfile @@ -2,8 +2,10 @@ FROM anapsix/alpine-java:8 VOLUME /tmp ADD shardis-auth-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh +ADD wait-for-it.sh wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-service.sh' +RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] diff --git a/shardis-config/src/main/docker/Dockerfile b/shardis-config/src/main/docker/Dockerfile index b114bea..e9987b9 100644 --- a/shardis-config/src/main/docker/Dockerfile +++ b/shardis-config/src/main/docker/Dockerfile @@ -2,8 +2,10 @@ FROM anapsix/alpine-java:8 VOLUME /tmp ADD shardis-config-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh +ADD wait-for-it.sh wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-service.sh' +RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] diff --git a/shardis-discovery/src/main/docker/Dockerfile b/shardis-discovery/src/main/docker/Dockerfile index 4c0288c..7b1585d 100644 --- a/shardis-discovery/src/main/docker/Dockerfile +++ b/shardis-discovery/src/main/docker/Dockerfile @@ -2,8 +2,10 @@ FROM anapsix/alpine-java:8 VOLUME /tmp ADD shardis-discovery-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh +ADD wait-for-it.sh wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-service.sh' +RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] diff --git a/shardis-gateway/src/main/docker/Dockerfile b/shardis-gateway/src/main/docker/Dockerfile index db74851..0bff267 100644 --- a/shardis-gateway/src/main/docker/Dockerfile +++ b/shardis-gateway/src/main/docker/Dockerfile @@ -2,8 +2,10 @@ FROM anapsix/alpine-java:8 VOLUME /tmp ADD shardis-gateway-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh +ADD wait-for-it.sh wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-service.sh' +RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] diff --git a/shardis-ui/src/main/docker/Dockerfile b/shardis-ui/src/main/docker/Dockerfile index 9d703cb..282bb08 100644 --- a/shardis-ui/src/main/docker/Dockerfile +++ b/shardis-ui/src/main/docker/Dockerfile @@ -2,8 +2,10 @@ FROM anapsix/alpine-java:8 VOLUME /tmp ADD shardis-ui-2.3.0.jar app.jar ADD wait-for-service.sh wait-for-service.sh +ADD wait-for-it.sh wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-service.sh' +RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] From f4750bb549a774ef1942eb77d65181817715f044 Mon Sep 17 00:00:00 2001 From: "kucharzyk.tomasz" Date: Mon, 10 Oct 2016 22:27:22 +0200 Subject: [PATCH 7/7] docker scripts improvements --- shardis-admin/src/main/docker/Dockerfile | 7 ++++--- shardis-api/src/main/docker/Dockerfile | 7 ++++--- shardis-auth/src/main/docker/Dockerfile | 7 ++++--- shardis-config/src/main/docker/Dockerfile | 7 ++++--- shardis-discovery/src/main/docker/Dockerfile | 7 ++++--- shardis-gateway/src/main/docker/Dockerfile | 7 ++++--- shardis-ui/src/main/docker/Dockerfile | 7 ++++--- 7 files changed, 28 insertions(+), 21 deletions(-) diff --git a/shardis-admin/src/main/docker/Dockerfile b/shardis-admin/src/main/docker/Dockerfile index 078bc11..f4962e9 100644 --- a/shardis-admin/src/main/docker/Dockerfile +++ b/shardis-admin/src/main/docker/Dockerfile @@ -1,10 +1,11 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-admin-2.3.0.jar app.jar -ADD wait-for-service.sh wait-for-service.sh -ADD wait-for-it.sh wait-for-it.sh +ADD shardis-admin-2.3.0.jar /app.jar +ADD wait-for-service.sh /wait-for-service.sh +ADD wait-for-it.sh /wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' +RUN bash -c 'touch /wait-for-it.sh' RUN bash -c 'chmod +x /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl diff --git a/shardis-api/src/main/docker/Dockerfile b/shardis-api/src/main/docker/Dockerfile index 129ec2b..4cf1b23 100644 --- a/shardis-api/src/main/docker/Dockerfile +++ b/shardis-api/src/main/docker/Dockerfile @@ -1,10 +1,11 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-api-2.3.0.jar app.jar -ADD wait-for-service.sh wait-for-service.sh -ADD wait-for-it.sh wait-for-it.sh +ADD shardis-api-2.3.0.jar /app.jar +ADD wait-for-service.sh /wait-for-service.sh +ADD wait-for-it.sh /wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' +RUN bash -c 'touch /wait-for-it.sh' RUN bash -c 'chmod +x /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl diff --git a/shardis-auth/src/main/docker/Dockerfile b/shardis-auth/src/main/docker/Dockerfile index df928fc..4e10513 100644 --- a/shardis-auth/src/main/docker/Dockerfile +++ b/shardis-auth/src/main/docker/Dockerfile @@ -1,10 +1,11 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-auth-2.3.0.jar app.jar -ADD wait-for-service.sh wait-for-service.sh -ADD wait-for-it.sh wait-for-it.sh +ADD shardis-auth-2.3.0.jar /app.jar +ADD wait-for-service.sh /wait-for-service.sh +ADD wait-for-it.sh /wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' +RUN bash -c 'touch /wait-for-it.sh' RUN bash -c 'chmod +x /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl diff --git a/shardis-config/src/main/docker/Dockerfile b/shardis-config/src/main/docker/Dockerfile index e9987b9..4b370d1 100644 --- a/shardis-config/src/main/docker/Dockerfile +++ b/shardis-config/src/main/docker/Dockerfile @@ -1,10 +1,11 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-config-2.3.0.jar app.jar -ADD wait-for-service.sh wait-for-service.sh -ADD wait-for-it.sh wait-for-it.sh +ADD shardis-config-2.3.0.jar /app.jar +ADD wait-for-service.sh /wait-for-service.sh +ADD wait-for-it.sh /wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' +RUN bash -c 'touch /wait-for-it.sh' RUN bash -c 'chmod +x /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl diff --git a/shardis-discovery/src/main/docker/Dockerfile b/shardis-discovery/src/main/docker/Dockerfile index 7b1585d..105e1aa 100644 --- a/shardis-discovery/src/main/docker/Dockerfile +++ b/shardis-discovery/src/main/docker/Dockerfile @@ -1,10 +1,11 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-discovery-2.3.0.jar app.jar -ADD wait-for-service.sh wait-for-service.sh -ADD wait-for-it.sh wait-for-it.sh +ADD shardis-discovery-2.3.0.jar /app.jar +ADD wait-for-service.sh /wait-for-service.sh +ADD wait-for-it.sh /wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' +RUN bash -c 'touch /wait-for-it.sh' RUN bash -c 'chmod +x /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl diff --git a/shardis-gateway/src/main/docker/Dockerfile b/shardis-gateway/src/main/docker/Dockerfile index 0bff267..586deff 100644 --- a/shardis-gateway/src/main/docker/Dockerfile +++ b/shardis-gateway/src/main/docker/Dockerfile @@ -1,10 +1,11 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-gateway-2.3.0.jar app.jar -ADD wait-for-service.sh wait-for-service.sh -ADD wait-for-it.sh wait-for-it.sh +ADD shardis-gateway-2.3.0.jar /app.jar +ADD wait-for-service.sh /wait-for-service.sh +ADD wait-for-it.sh /wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' +RUN bash -c 'touch /wait-for-it.sh' RUN bash -c 'chmod +x /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl diff --git a/shardis-ui/src/main/docker/Dockerfile b/shardis-ui/src/main/docker/Dockerfile index 282bb08..7e78530 100644 --- a/shardis-ui/src/main/docker/Dockerfile +++ b/shardis-ui/src/main/docker/Dockerfile @@ -1,10 +1,11 @@ FROM anapsix/alpine-java:8 VOLUME /tmp -ADD shardis-ui-2.3.0.jar app.jar -ADD wait-for-service.sh wait-for-service.sh -ADD wait-for-it.sh wait-for-it.sh +ADD shardis-ui-2.3.0.jar /app.jar +ADD wait-for-service.sh /wait-for-service.sh +ADD wait-for-it.sh /wait-for-it.sh RUN bash -c 'touch /app.jar' RUN bash -c 'touch /wait-for-service.sh' +RUN bash -c 'touch /wait-for-it.sh' RUN bash -c 'chmod +x /wait-for-service.sh' RUN bash -c 'chmod +x /wait-for-it.sh' RUN apk --no-cache add curl