Added Docker support
This commit is contained in:
parent
37c1957082
commit
c5f60ecc25
34
Dockerfile
Normal file
34
Dockerfile
Normal file
@ -0,0 +1,34 @@
|
||||
# BUILD STAGE
|
||||
FROM amazoncorretto:21 as build
|
||||
LABEL author="Marco Cetica"
|
||||
|
||||
# Prepare working environment
|
||||
WORKDIR /workspace/app
|
||||
COPY mvnw .
|
||||
COPY .mvn .mvn
|
||||
COPY pom.xml .
|
||||
COPY src src
|
||||
|
||||
# Set environment variables for unit testing
|
||||
ARG SERVER_PORT="3000"
|
||||
ARG SPRING_DATASOURCE_URL="jdbc:h2:mem:testdb"
|
||||
ARG SPRING_DATASOURCE_DRIVERCLASSNAME="org.h2.Driver"
|
||||
ARG SPRING_DATASOURCE_USERNAME="sa"
|
||||
ARG SPRING_DATASOURCE_PASSWORD="password"
|
||||
|
||||
# Build the jar file and execute the unit tests
|
||||
RUN ./mvnw package
|
||||
|
||||
# RUN STAGE
|
||||
FROM amazoncorretto:21 as run
|
||||
|
||||
# Configure working environment
|
||||
VOLUME /tmp
|
||||
ARG BUILD=/workspace/app/target
|
||||
|
||||
# Copy jar file
|
||||
COPY --from=build ${BUILD}/*.jar app.jar
|
||||
|
||||
# Run the application
|
||||
ENTRYPOINT ["java", "-jar", "app.jar"]
|
||||
|
37
docker-compose.yml
Normal file
37
docker-compose.yml
Normal file
@ -0,0 +1,37 @@
|
||||
version: "3.9"
|
||||
|
||||
networks:
|
||||
bits:
|
||||
external: false
|
||||
|
||||
services:
|
||||
app:
|
||||
build: .
|
||||
container_name: "bits_app"
|
||||
environment:
|
||||
SERVER_PORT: 3000
|
||||
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/bits
|
||||
SPRING_DATASOURCE_USERNAME: bitsuser
|
||||
SPRING_DATASOURCE_PASSWORD: qwerty1234
|
||||
SPRING_SECURITY_USER_NAME: admin
|
||||
SPRING_SECURITY_USER_PASSWORD: admin
|
||||
restart: always
|
||||
ports:
|
||||
- "3000:3000"
|
||||
networks:
|
||||
- bits
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
db:
|
||||
image: postgres:latest
|
||||
container_name: "bits_db"
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_USER=bitsuser
|
||||
- POSTGRES_PASSWORD=qwerty1234
|
||||
- POSTGRES_DB=bits
|
||||
networks:
|
||||
- bits
|
||||
volumes:
|
||||
- ./postgres:/var/lib/postgresql/data
|
2
pom.xml
2
pom.xml
@ -10,7 +10,7 @@
|
||||
</parent>
|
||||
<groupId>com.ceticamarco</groupId>
|
||||
<artifactId>bits</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<version>1.0.0</version>
|
||||
<name>bits</name>
|
||||
<description>Text storage platform</description>
|
||||
<properties>
|
||||
|
@ -3,14 +3,15 @@ spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
|
||||
spring.jpa.properties.hibernate.format_sql=true
|
||||
|
||||
# Adjust these values in production
|
||||
server.port=3000
|
||||
#server.port=3000
|
||||
#spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/bits
|
||||
#spring.datasource.username=postgres
|
||||
#spring.datasource.password=toor
|
||||
#spring.security.user.name=admin
|
||||
#spring.security.user.password=admin
|
||||
|
||||
spring.datasource.url=jdbc:h2:mem:testdb
|
||||
spring.datasource.driverClassName=org.h2.Driver
|
||||
spring.datasource.username=sa
|
||||
spring.datasource.password=password
|
||||
# For unit tests only
|
||||
#spring.datasource.url=jdbc:h2:mem:testdb
|
||||
#spring.datasource.driverClassName=org.h2.Driver
|
||||
#spring.datasource.username=sa
|
||||
#spring.datasource.password=password
|
Loading…
Reference in New Issue
Block a user