Skip to content
This repository was archived by the owner on Dec 5, 2023. It is now read-only.

Commit d480625

Browse files
Merge pull request #1 from microservices-demo/initial-build
Initial build
2 parents 1933a03 + f1fd2b7 commit d480625

File tree

5 files changed

+129
-0
lines changed

5 files changed

+129
-0
lines changed

.travis.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
language: java
2+
sudo: required
3+
services:
4+
- docker
5+
jdk:
6+
- oraclejdk8
7+
install: true
8+
9+
env:
10+
- GROUP=weaveworksdemos COMMIT=$TRAVIS_COMMIT TAG=$TRAVIS_TAG REPO=msd-java;
11+
12+
script:
13+
- set -e
14+
- travis_wait ./scripts/build.sh;
15+
16+
after_success:
17+
- set -e;
18+
- if [ -z "$DOCKER_PASS" ] ; then
19+
echo "This is a build triggered by an external PR. Skipping docker push.";
20+
exit 0;
21+
fi;
22+
- docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS;
23+
- ./scripts/push.sh
24+
notifications:
25+
slack:
26+
secure: jHh+ksay1dxGEMxxep6XllCR5VwsmuSyIpLgG9bUKpG4fPR948K5Ev2E/vyobrqbTi5JMWasXd3ecwzV1QIN8QvvQ33Fx70oSp9Cit5gvNmLWVplHkWiMnnLD33IMCbtDHK69FjH3GQyJ5HfgjiJSF2nTFaCArYImrCcnU+ENTXW9L3rlYm5ElnP/NfWbrqxIF4EOiCKHMM5kpFYWO8mYLTVilHhPLAz94IVV2OUTe4NUdBJgXolAJqg28QTcfrk5x0OudDTc3Ssa3f/ezrE0LgrzeWdekcrNdYt+YZYaQxiPOIhNyZu0RxU+46ip4XhUS6qSXxW1Kpf0RXkgdmTTbYxF31D4GG+SoTjbBONZqK+qw3AkuYxTQYZnl50n+Hd1gtKY31qCwFEAVUU/tYDI5oKUdUaDsiHU5J/Yt+YMPoyWZ7FOZYwSNy2xs78XGXqQnYn35lsBv0BmYo/1mPUFbrlZgVO5b5wki7NhuLKnqHo9GvkavG71py1VjJTShq5um4NrPBYZ/Y9aZtZD6E2BQPJBgciwGtoFdmaTzmPtwPkWMA+SlcAtpcQlFATXM7xS5324XYK9+okDoqybj1cmHIk1FLnM9nx3r+TUOGsUrlY2ZO9FIrljgII3H8vzcUCbwMwzaQvhsBCFBFZQ6umjbHxnRN9zRe52c4zkkCSAZc=

Dockerfile

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
FROM java:openjdk-8-alpine
2+
3+
ENV SERVICE_USER=myuser \
4+
SERVICE_UID=10001 \
5+
SERVICE_GROUP=mygroup \
6+
SERVICE_GID=10001
7+
8+
RUN addgroup -g ${SERVICE_GID} ${SERVICE_GROUP} && \
9+
adduser -g "${SERVICE_NAME} user" -D -H -G ${SERVICE_GROUP} -s /sbin/nologin -u ${SERVICE_UID} ${SERVICE_USER} && \
10+
apk add --update libcap && \
11+
mkdir /lib64 && \
12+
ln -s /usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server/libjvm.so /lib/libjvm.so && \
13+
ln -s /usr/lib/jvm/java-1.8-openjdk/lib/amd64/jli/libjli.so /lib/libjli.so && \
14+
setcap 'cap_net_bind_service=+ep' $(readlink -f $(which java))
15+
16+
COPY java.sh /usr/local/bin/java.sh

java.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
3+
java $JAVA_OPTS $*

scripts/build.sh

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/usr/bin/env bash
2+
3+
set -ev
4+
5+
export BUILD_VERSION="0.0.2-SNAPSHOT"
6+
export BUILD_DATE=`date +%Y-%m-%dT%T%z`
7+
8+
SCRIPT_DIR=$(dirname "$0")
9+
10+
if [[ -z "$GROUP" ]] ; then
11+
echo "Cannot find GROUP env var"
12+
exit 1
13+
fi
14+
15+
if [[ -z "$COMMIT" ]] ; then
16+
echo "Cannot find COMMIT env var"
17+
exit 1
18+
fi
19+
20+
if [[ "$(uname)" == "Darwin" ]]; then
21+
DOCKER_CMD=docker
22+
else
23+
DOCKER_CMD="sudo docker"
24+
fi
25+
CODE_DIR=$(cd $SCRIPT_DIR/..; pwd)
26+
27+
DOCKER_REPO=${GROUP}/${REPO}
28+
$DOCKER_CMD build \
29+
--build-arg BUILD_VERSION=$BUILD_VERSION \
30+
--build-arg BUILD_DATE=$BUILD_DATE \
31+
--build-arg COMMIT=$COMMIT \
32+
-t ${DOCKER_REPO}:${COMMIT} $CODE_DIR/Dockerfile;

scripts/push.sh

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#!/usr/bin/env bash
2+
3+
set -ev
4+
5+
if [[ -z "$GROUP" ]] ; then
6+
echo "Cannot find GROUP env var"
7+
exit 1
8+
fi
9+
10+
if [[ -z "$COMMIT" ]] ; then
11+
echo "Cannot find COMMIT env var"
12+
exit 1
13+
fi
14+
15+
push() {
16+
DOCKER_PUSH=1;
17+
while [ $DOCKER_PUSH -gt 0 ] ; do
18+
echo "Pushing $1";
19+
docker push $1;
20+
DOCKER_PUSH=$(echo $?);
21+
if [[ "$DOCKER_PUSH" -gt 0 ]] ; then
22+
echo "Docker push failed with exit code $DOCKER_PUSH";
23+
fi;
24+
done;
25+
}
26+
27+
tag_and_push_all() {
28+
if [[ -z "$1" ]] ; then
29+
echo "Please pass the tag"
30+
exit 1
31+
else
32+
TAG=$1
33+
fi
34+
for m in ./docker/*/; do
35+
REPO=${GROUP}/$(basename $m)
36+
if [[ "$COMMIT" != "$TAG" ]]; then
37+
docker tag ${REPO}:${COMMIT} ${REPO}:${TAG}
38+
fi
39+
push "$REPO:$TAG";
40+
done;
41+
}
42+
43+
# Push snapshot when in master
44+
if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
45+
tag_and_push_all master-${COMMIT:0:8}
46+
fi;
47+
48+
# Push tag and latest when tagged
49+
if [ -n "$TRAVIS_TAG" ]; then
50+
tag_and_push_all ${TRAVIS_TAG}
51+
tag_and_push_all latest
52+
fi;

0 commit comments

Comments
 (0)