diff --git a/build.sh b/build.sh index 9430442030af1418d15b607eb7aec43ef166be09..a89fb3a623e2add76e5a8e7c76946f301d6e5e0d 100755 --- a/build.sh +++ b/build.sh @@ -2,4 +2,5 @@ ./halt.sh docker-compose -f ./docker-compose_build.yml build -docker-compose -f ./docker-compose_build.yml up +docker-compose -f ./docker-compose_build.yml up -d +docker-compose stop db \ No newline at end of file diff --git a/config/application.yml b/config/application.yml index f1470a8e9974a9979390318ea9892f0667ea8511..2750ccff04707030e9452d7f8962fdb45213538f 100644 --- a/config/application.yml +++ b/config/application.yml @@ -2,9 +2,9 @@ spring: datasource: - url: jdbc:postgresql://portaldb:5432/postgres + url: jdbc:postgresql://db:5432/postgres username: postgres - password: test + password: pass driver-class-name: org.postgresql.Driver jpa: hibernate: diff --git a/docker-compose.yml b/docker-compose.yml index 3902ae28d99a031ce64bb3d938e24bc5f48926a0..df1c7f0bf7cbb8478ac6fa14ce9f92dd99d5b5e1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,5 +6,18 @@ services: build: context: . dockerfile: ./src/docker/run/Dockerfile + depends_on: + - "db" ports: - "8080:8080" + links: + - "db" + db: + container_name: db + image: postgres:9.5.3 + ports: + - "5432:5432" + volumes: + - ./data:/var/lib/postgres/data + environment: + POSTGRES_USER: postgres diff --git a/docker-compose_build.yml b/docker-compose_build.yml index b29bf59ecd0f6a068269bcc0fed3f0498bb9505d..877c4ebf353bf279ee36812e982f0a271ed32bc6 100644 --- a/docker-compose_build.yml +++ b/docker-compose_build.yml @@ -4,8 +4,21 @@ services: backend_build: container_name: backend_build build: ./src/docker/build/ + depends_on: + - "db" volumes: - ./:/opt/portal/ - .m2:/root/.m2/ ports: - "8080:8080" + links: + - "db" + db: + container_name: db + image: postgres:9.5.3 + ports: + - "5432:5432" + volumes: + - ./data:/var/lib/postgres/data + environment: + POSTGRES_USER: postgres diff --git a/pom.xml b/pom.xml index f0a335858cb7cc813ad2b1a29c62bde419f115bc..e89986f5bd2c337128f30e11f08fe4698dbc7fd9 100644 --- a/pom.xml +++ b/pom.xml @@ -27,6 +27,8 @@ <sonar.host.url>http://dockerhost:9000</sonar.host.url> <sonar.projectName>MIP Backend</sonar.projectName> <sonar.sources>src/main/java/</sonar.sources> + <flyway.url>jdbc:postgresql://db:5432/postgres</flyway.url> + <flyway.user>postgres</flyway.user> </properties> <dependencies> diff --git a/src/docker/build/Dockerfile b/src/docker/build/Dockerfile index b4318d788f65cf01d672e59aab38c69b6e4aa17f..b9164761d8fc45e049b5d161f8ca383e372cb443 100644 --- a/src/docker/build/Dockerfile +++ b/src/docker/build/Dockerfile @@ -5,4 +5,6 @@ COPY ./build-in-docker.sh /build-in-docker.sh VOLUME /opt/portal/ WORKDIR /opt/portal/ +RUN apt-get update && apt-get install -y postgresql + CMD ["bash", "/build-in-docker.sh"] diff --git a/src/docker/build/build-in-docker.sh b/src/docker/build/build-in-docker.sh index a6f31bcc3a9d24e6ab764e47c242f78201760c99..70736859ae4b73ec68b63ed8fec5cfe1596ff8d5 100644 --- a/src/docker/build/build-in-docker.sh +++ b/src/docker/build/build-in-docker.sh @@ -3,5 +3,13 @@ rm -r target/ mvn package +echo 'Waiting for postgres to be ready...' +until psql -h "db" -U "postgres" -c '\l'; do + >&2 echo "Postgres is unavailable - sleeping" + sleep 1 +done + +mvn flyway:baseline flyway:migrate + # Uncomment to generate a PDF API documentation # mvn swagger2markup:convertSwagger2markup asciidoctor:process-asciidoc