trivial implementation to test cloud run

Signed-off-by: Peter Siegmund <developer@mars3142.org>
This commit is contained in:
2024-08-16 21:24:13 +02:00
parent 307657b5d9
commit 6a95bff257
8 changed files with 82 additions and 3 deletions

9
.run/Application.run.xml Normal file
View File

@@ -0,0 +1,9 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Application" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
<module name="timezone-service" />
<option name="SPRING_BOOT_MAIN_CLASS" value="dev.mars3142.fhq.timezone_service.Application" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>

33
Dockerfile Normal file
View File

@@ -0,0 +1,33 @@
# Stage that builds the application, a prerequisite for the running stage
FROM eclipse-temurin:21-jdk-jammy as build
ARG SERVICE_ROOT
RUN apt-get update -qq
# Stop running as root at this point
RUN useradd -m app
WORKDIR /usr/src/app/
RUN chown app:app /usr/src/app/
USER app
# Copy pom.xml and prefetch dependencies so a repeated build can continue from the next step with existing dependencies
COPY --chown=app ${SERVICE_ROOT}/.mvn/ .mvn
COPY --chown=app ${SERVICE_ROOT}/mvnw ${SERVICE_ROOT}/pom.xml ./
# Copy all needed project files to a folder
COPY --chown=app:app ${SERVICE_ROOT}/src ./src
# Build the production package
RUN ./mvnw --batch-mode clean verify -DskipTests
# Running stage: the part that is used for running the application
FROM eclipse-temurin:21-jre-jammy
RUN useradd -m app
USER app
COPY --chown=app --from=build /usr/src/app/target/*.jar /usr/app/app.jar
EXPOSE 8080
CMD java -jar /usr/app/app.jar

View File

@@ -55,6 +55,15 @@
<artifactId>spring-modulith-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>

View File

@@ -4,10 +4,10 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class TimezoneServiceApplication {
public class Application {
public static void main(String[] args) {
SpringApplication.run(TimezoneServiceApplication.class, args);
SpringApplication.run(Application.class, args);
}
}

View File

@@ -0,0 +1,5 @@
package dev.mars3142.fhq.timezone_service.timezone.domain.model.request;
public record TimeZoneRequest(String timezone) {
}

View File

@@ -0,0 +1,5 @@
package dev.mars3142.fhq.timezone_service.timezone.domain.model.response;
public record TimeZoneResponse(String timezone) {
}

View File

@@ -0,0 +1,18 @@
package dev.mars3142.fhq.timezone_service.timezone.web.controllers;
import dev.mars3142.fhq.timezone_service.timezone.domain.model.request.TimeZoneRequest;
import dev.mars3142.fhq.timezone_service.timezone.domain.model.response.TimeZoneResponse;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("v1/timezone")
public class TimeZoneController {
@PostMapping()
public TimeZoneResponse getTimeZone(@RequestBody TimeZoneRequest request) {
return new TimeZoneResponse(request.timezone());
}
}

View File

@@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class TimezoneServiceApplicationTests {
class ApplicationTests {
@Test
void contextLoads() {