Skip to content
Snippets Groups Projects
Commit 2ed550e3 authored by Ludovic Claude's avatar Ludovic Claude
Browse files

Setup a Docker container to bootstrap the generation of Hibernate config

parent fc1b620d
No related branches found
No related tags found
No related merge requests found
# This Dockerfile encapsulate the MIP portal backend application for development purposes.
# This Dockerfile encapsulate the MIP portal backend application for development purposes.
# We use it to bootstrap the generation of the Hibernate mapping file and the application jar.
FROM maven:3-jdk-8
RUN apt-get update && apt-get install -y wget
RUN wget https://github.com/jwilder/dockerize/releases/download/v0.2.0/dockerize-linux-amd64-v0.2.0.tar.gz
RUN tar -C /usr/local/bin -xzvf dockerize-linux-amd64-v0.2.0.tar.gz
COPY ./src/docker/init/build-in-docker.sh /build-in-docker.sh
RUN mkdir -p /opt/portal/ \
&& echo -n "#!/bin/sh\n/usr/bin/java -DconfigFile=/opt/portal/config/portal.properties -jar /opt/portal/lib/mip.jar" > /opt/portal/mip.sh \
&& chmod +x /opt/portal/mip.sh
EXPOSE 8080
VOLUME /portal/
VOLUME /opt/portal/config/
VOLUME /opt/portal/lib/
WORKDIR /opt/portal/
CMD ["/usr/local/bin/dockerize", "-wait", "tcp://portaldb:5432", "/opt/portal/mip.sh"]
CMD ["/build-in-docker.sh"]
#!/bin/bash -e
if groups $USER | grep &>/dev/null '\bdocker\b'; then
CAPTAIN="captain"
DOCKER_COMPOSE="docker-compose"
else
CAPTAIN="sudo captain"
DOCKER_COMPOSE="sudo docker-compose"
fi
$CAPTAIN build
$DOCKER_COMPOSE --file=docker-compose.init.yml --project-name=portal-backend-init up
echo "Need to set the current user as owner of the files generated in target directory..."
sudo chown -R $USER:$USER ./target
echo "Done"
portal-backend:
build: Dockerfile
image: portal-backend
pre:
- echo "Build portal-backend"
- docker-compose up -d portaldb
- mvn package
post:
- echo "Finished building portal-backend"
# Build the application and regenerate the Hibernate mapping
portaldb:
image: postgres:9.4.5
container_name: portaldb
ports:
- "55432:5432"
volumes:
- ./src/test/db/sql:/docker-entrypoint-initdb.d/
environment:
POSTGRES_PASSWORD: test
portal-backend:
build: .
volumes:
- ./:/portal/
links:
- portaldb
ports:
- "8080:8080"
portaldb:
image: postgres:9.4.5
container_name: portaldb
ports:
- "55432:5432"
volumes:
......@@ -9,7 +10,7 @@ portaldb:
POSTGRES_PASSWORD: test
portal-backend:
build: .
build: .src/docker/build
volumes:
- ./src/test/docker/:/opt/portal/config/
- ./target/:/opt/portal/lib/
......
# This Dockerfile encapsulate the MIP portal backend application for development purposes.
FROM maven:3-jdk-8
RUN apt-get update && apt-get install -y wget
RUN wget https://github.com/jwilder/dockerize/releases/download/v0.2.0/dockerize-linux-amd64-v0.2.0.tar.gz
RUN tar -C /usr/local/bin -xzvf dockerize-linux-amd64-v0.2.0.tar.gz
RUN mkdir -p /opt/portal/ \
&& echo -n "#!/bin/sh\n/usr/bin/java -DconfigFile=/opt/portal/config/portal.properties -jar /opt/portal/lib/mip.jar" > /opt/portal/mip.sh \
&& chmod +x /opt/portal/mip.sh
EXPOSE 8080
VOLUME /opt/portal/config/
VOLUME /opt/portal/lib/
WORKDIR /opt/portal/
CMD ["/usr/local/bin/dockerize", "-wait", "tcp://portaldb:5432", "/opt/portal/mip.sh"]
#!/bin/sh -e
echo ">>> Building inside Docker"
cd /portal
mvn package
echo ">>> Press Ctrl+C to stop, build is complete"
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment