- This project demonstrates starting a Spring Boot app in a docker container.
- It uses Docker compose to run the Spring Boot app connected to Postgres DB with all of these running in their own separate containers.
Step 0: Make sure docker is installed and running.
Step 1: Set the environment variable for Postgres DB password like this
export POSTGRES_DB_PWD=admin
Step 2: Run docker compose up:
docker compose -f ./docker-compose.yaml up
- Note: The updated DockerFile has multi-stage build that produces the jar file to be used by docker compose
Step 0: Make sure docker is installed and running.
Step 1: Build the project to create the .jar file (./mvnw clean package -DskipTests) (If needed, chmod +x mvnw)
Step 2: Set the environment variable for Postgres DB password like this
export POSTGRES_DB_PWD=admin
Step 3: Run docker compose up:
docker compose -f ./docker-compose.yaml up
Step 4: Use tool like Postman to send request to the end-point for creating product record and viewing product record:
http://localhost:8081/product-service/addProduct
http://localhost:8081/product-service/getAllProducts
http://localhost:8081/product-service/getProduct/1
- Get inside a Docker container's terminal
docker exec -it <container_name or id> /bin/bash psql -U postgres: To start psql for Postgres once inside the container.- CLI commands for Postgres:
\lto see the databases,\cto connect to a specific database,\dtto see the tables - Up docker containers/services
docker compose up -d(use without -d if you need to see the logs)
docker compose -f ./docker-compose.yaml up - Down the docker containers/services
docker compose down - Build docker image of your Spring boot app using Dockerfile
docker build -t docker-springboot:1 . - Run your newly created image in docker
docker run -p 8081:8081 docker-springboot:1