diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7b016a8 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.compile.nullAnalysis.mode": "automatic" +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9efccbc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +# Build the application using Maven and OpenJDK 17 & setting the working diroctory +FROM maven:3.8.1-openjdk-17 AS build + +WORKDIR /app + +# using the provided files (e.g. pom.xml) +COPY pom.xml . + +COPY src ./src + +# -DskipTests to skip tests +RUN mvn clean package -DskipTests + +# contents of the target +RUN ls -l target/ + +# Create image +FROM openjdk:17-jdk-slim + +WORKDIR /app + +COPY --from=build /app/target/rihal-0.0.1-SNAPSHOT.jar app.jar + +# Expose +EXPOSE 8080 + +# Define the entry point +ENTRYPOINT ["java", "-jar", "app.jar"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b628778 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,40 @@ +version: '3.8' + +services: + mysql: + image: mysql + container_name: mysql + environment: # Set environment variables for MySQL + MYSQL_ROOT_PASSWORD: root + MYSQL_DATABASE: usersystem + MYSQL_PASSWORD: root + MYSQL_TCP_PORT: 3307 + ports: + - "3307:3307" # port 3307 on the host to port 3307 on the container + volumes: + - mysql_data:/var/lib/mysql + networks: + - demo-network + + springboot: + build: . # Build the Spring Boot application + container_name: springboot + environment: # Set environment variables for the Spring Boot application + SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3307/usersystem?useSSL=false&serverTimezone=UTC&createDatabaseIfNotExist=true&allowPublicKeyRetrieval=true # JDBC URL for the MySQL database + SPRING_DATASOURCE_USERNAME: root + SPRING_DATASOURCE_PASSWORD: root + SPRING_JPA_HIBERNATE_DDL_AUTO: update + SPRING_JPA_SHOW_SQL: "true" + ports: + - "8080:8080" # port 8080 on the host to port 8080 on the container + depends_on: + - mysql + networks: + - demo-network + restart: on-failure # Restart the container if it fails + +networks: + demo-network: + +volumes: + mysql_data: \ No newline at end of file diff --git a/target/classes/application.properties b/target/classes/application.properties new file mode 100644 index 0000000..9cc6243 --- /dev/null +++ b/target/classes/application.properties @@ -0,0 +1,9 @@ +spring.application.name=rihal +spring.datasource.url=${SPRING_DATASOURCE_URL} +spring.datasource.username=${SPRING_DATASOURCE_USERNAME} +spring.datasource.password=${SPRING_DATASOURCE_PASSWORD} +spring.jpa.hibernate.ddl-auto=update +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver + diff --git a/target/classes/templates/edit_user.html b/target/classes/templates/edit_user.html new file mode 100644 index 0000000..8346537 --- /dev/null +++ b/target/classes/templates/edit_user.html @@ -0,0 +1,17 @@ + + +
+ +| ID | +Name | +Actions | +|
|---|---|---|---|
| + | + | + | + Edit + Delete + | +