diff --git a/src/docker/run/Dockerfile b/Dockerfile similarity index 83% rename from src/docker/run/Dockerfile rename to Dockerfile index 5fc5c1e5841532450452dec2421e6f0dc3c5ad82..e93efdf3e9525cdc8efa0eb13e951cb990ce9054 100644 --- a/src/docker/run/Dockerfile +++ b/Dockerfile @@ -7,7 +7,8 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/v0.2.0/dockerize RUN tar -C /usr/local/bin -xvzf dockerize-linux-amd64-v0.2.0.tar.gz COPY ./target/portal-backend-DOCKER_BUILD.jar backend.jar -COPY ./config/application.tmpl /config/application.tmpl +COPY ./docker/runner/config/application.tmpl /config/application.tmpl +COPY ./docker/runner/README.md / EXPOSE 8080 diff --git a/src/docker/build/Dockerfile b/Dockerfile.builder similarity index 81% rename from src/docker/build/Dockerfile rename to Dockerfile.builder index 51495aebc40e0272e2d8fe8ec0eba86b80b144b3..97dee452d9671ff8925e0a71c15bbcf99d2b30f0 100644 --- a/src/docker/build/Dockerfile +++ b/Dockerfile.builder @@ -6,7 +6,7 @@ MAINTAINER mirco.nasuti@chuv.ch RUN adduser --quiet --uid 1000 build USER build -COPY ./build-in-docker.sh /build-in-docker.sh +COPY ./docker/builder/build-in-docker.sh /build-in-docker.sh VOLUME /opt/portal/ WORKDIR /opt/portal/ diff --git a/build.sh b/build.sh index b524f3458aabc7a22c277bff1f0c92aec25516fe..ef6b408040b10c61cf605b0fab9bc9ca1f0d83f2 100755 --- a/build.sh +++ b/build.sh @@ -1,4 +1,29 @@ #!/usr/bin/env bash +set -e -export WORKSPACE=$(pwd) -captain build +get_script_dir () { + SOURCE="${BASH_SOURCE[0]}" + + while [ -h "$SOURCE" ]; do + DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + SOURCE="$( readlink "$SOURCE" )" + [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" + done + cd -P "$( dirname "$SOURCE" )" + pwd +} + +export WORKSPACE=$(get_script_dir) + +if pgrep -lf sshuttle > /dev/null ; then + echo "sshuttle detected. Please close this program as it messes with networking and prevents builds inside Docker to work" + exit 1 +fi + +if groups $USER | grep &>/dev/null '\bdocker\b'; then + CAPTAIN="captain" +else + CAPTAIN="sudo captain" +fi + +$CAPTAIN build diff --git a/captain.yml b/captain.yml index a6d4355766eab826f0b82de8232e410709be876c..6ece2f343b07cfb79604a66b67949ed4881c842a 100644 --- a/captain.yml +++ b/captain.yml @@ -1,25 +1,23 @@ -portal-backend-build: - build: ./src/docker/build/Dockerfile - image: hbpmip/portal-backend-build +# Builder image +# Creates a portable environemnt to build this project. +# Do not push this image to Docker hub. +builder: + build: Dockerfile.builder + image: portal-backend-builder pre: - - echo "Building portal-backend-build" + - echo "Building portal backend builder" post: - docker run --rm -v $WORKSPACE:/opt/portal/ -v $HOME/.m2:/home/build/.m2/ hbpmip/portal-backend-build - - echo "Finished building portal-backend-build" + - echo "Finished building portal backend builder" test: - ./tests/test-build.sh portal-backend: - build: ./src/docker/run/Dockerfile + build: Dockerfile image: hbpmip/portal-backend pre: - echo "Building portal-backend" - - mkdir -p $WORKSPACE/src/docker/run/config $WORKSPACE/src/docker/run/target - - cp $WORKSPACE/config/application.tmpl $WORKSPACE/src/docker/run/config/ - - cp $WORKSPACE/target/*.jar $WORKSPACE/src/docker/run/target/ post: - - rm -rf $WORKSPACE/src/docker/run/target/ - - rm -rf $WORKSPACE/src/docker/run/config/ - echo "Finished building portal-backend" test: - ./tests/pre-test-run.sh diff --git a/src/docker/build/build-in-docker.sh b/docker/builder/build-in-docker.sh similarity index 100% rename from src/docker/build/build-in-docker.sh rename to docker/builder/build-in-docker.sh diff --git a/src/docker/run/README.md b/docker/runner/README.md similarity index 100% rename from src/docker/run/README.md rename to docker/runner/README.md diff --git a/config/application.tmpl b/docker/runner/config/application.tmpl similarity index 99% rename from config/application.tmpl rename to docker/runner/config/application.tmpl index dc4987a138f9f54b84b03e2cb18b099c24c76c2c..9bed8c6b6dc98a946b2166a594e646f9448cc8f8 100644 --- a/config/application.tmpl +++ b/docker/runner/config/application.tmpl @@ -54,7 +54,7 @@ server: timeout: {{ default .Env.SESSION_TIMEOUT "2592000" }} # ENDPOINTS -endpoints +endpoints: enabled: true health: enabled: true diff --git a/src/docker/run/slack.json b/docker/runner/slack.json similarity index 100% rename from src/docker/run/slack.json rename to docker/runner/slack.json diff --git a/docker_push.sh b/docker_push.sh index 60630424822d0160707c4390758cf97851538de4..8da8206935b4f07fe6472722ec3814e23f433314 100755 --- a/docker_push.sh +++ b/docker_push.sh @@ -14,5 +14,17 @@ get_script_dir () { } export WORKSPACE=$(get_script_dir) -captain push --branch-tags=false --commit-tags=true portal-backend -curl -k -X POST --data-urlencode payload@$WORKSPACE/src/docker/run/slack.json https://hbps1.chuv.ch/slack/dev-activity + +if pgrep -lf sshuttle > /dev/null ; then + echo "sshuttle detected. Please close this program as it messes with networking and prevents builds inside Docker to work" + exit 1 +fi + +if groups $USER | grep &>/dev/null '\bdocker\b'; then + CAPTAIN="captain" +else + CAPTAIN="sudo captain" +fi + +$CAPTAIN push --branch-tags=false --commit-tags=true portal-backend +curl -k -X POST --data-urlencode payload@$WORKSPACE/docker/runner/slack.json https://hbps1.chuv.ch/slack/dev-activity diff --git a/test.sh b/test.sh index 4097b32beaf621619218230ae5d30bea4117faa9..98d351fcc283147034ce9b006c905bbb31f2d186 100755 --- a/test.sh +++ b/test.sh @@ -1,4 +1,29 @@ #!/usr/bin/env bash +set -e -export WORKSPACE=$(pwd) -captain test \ No newline at end of file +get_script_dir () { + SOURCE="${BASH_SOURCE[0]}" + + while [ -h "$SOURCE" ]; do + DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + SOURCE="$( readlink "$SOURCE" )" + [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" + done + cd -P "$( dirname "$SOURCE" )" + pwd +} + +export WORKSPACE=$(get_script_dir) + +if pgrep -lf sshuttle > /dev/null ; then + echo "sshuttle detected. Please close this program as it messes with networking and prevents builds inside Docker to work" + exit 1 +fi + +if groups $USER | grep &>/dev/null '\bdocker\b'; then + CAPTAIN="captain" +else + CAPTAIN="sudo captain" +fi + +$CAPTAIN test