Compare commits

..

3 Commits

Author SHA1 Message Date
2b0f816633 Optimize Dockerfile and add docker compose 2025-07-12 18:15:55 +05:00
3fc06eabff Add kodik token to application.properties 2025-07-12 18:14:32 +05:00
95113ce2fb Change logger style in controller 2025-07-12 18:14:19 +05:00
5 changed files with 37 additions and 13 deletions

View File

@ -1,19 +1,29 @@
# Build
FROM maven:3.9.6-eclipse-temurin-21 AS builder
WORKDIR /workspace
COPY pom.xml .
RUN mvn dependency:go-offline -B
COPY src ./src
RUN mvn clean package -DskipTests
# Create optimized runtime
FROM eclipse-temurin:21 AS app-build
ENV RELEASE=21
WORKDIR /opt/build
COPY ./target/*.jar ./application.jar
COPY --from=builder /workspace/target/*.jar ./application.jar
RUN java -Djarmode=layertools -jar application.jar extract
RUN $JAVA_HOME/bin/jlink \
--add-modules `jdeps --ignore-missing-deps -q -recursive --multi-release ${RELEASE} --print-module-deps -cp 'dependencies/BOOT-INF/lib/*' application.jar` \
--add-modules $(jdeps --ignore-missing-deps -q -recursive --multi-release ${RELEASE} --print-module-deps -cp 'dependencies/BOOT-INF/lib/*' application.jar),jdk.crypto.ec,jdk.security.auth,jdk.crypto.cryptoki \
--strip-debug \
--no-man-pages \
--no-header-files \
--compress=2 \
--output jdk
FROM debian:buster-slim
# Run
FROM debian:bookworm-slim
ARG BUILD_PATH=/opt/build
ENV JAVA_HOME=/opt/jdk
@ -22,6 +32,10 @@ ENV PATH="${JAVA_HOME}/bin:${PATH}"
RUN groupadd --gid 1000 spring-app \
&& useradd --uid 1000 --gid spring-app --shell /bin/bash --create-home spring-app
RUN apt-get update && \
apt-get install -y --no-install-recommends ca-certificates && \
rm -rf /var/lib/apt/lists/*
USER spring-app:spring-app
WORKDIR /opt/workspace
@ -33,4 +47,3 @@ COPY --from=app-build $BUILD_PATH/application/ ./
EXPOSE 8080/tcp
ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]

11
compose.yml Normal file
View File

@ -0,0 +1,11 @@
services:
search:
image: anyame-search:latest
ports:
- 8080:8080
env_file: .env
networks:
- anyame
networks:
anyame:
driver: bridge

View File

@ -5,7 +5,7 @@ import org.springframework.stereotype.Component;
@Component
public class KodikAPITokenProvider {
@Value("${KODIK_TOKEN}")
@Value("${kodik.token}")
private String kodikToken;
public String getKodikToken() {

View File

@ -18,8 +18,7 @@ import retrofit2.Response;
@RestController
public class SearchController {
private static final Logger log = LoggerFactory.getLogger(SearchController.class);
Logger log = LoggerFactory.getLogger(SearchController.class);
private final KodikAPI kodikAPI;
private final KodikAPITokenProvider tokenProvider;

View File

@ -1,2 +1,3 @@
spring.application.name=anyame-backend
server.error.include-message=always
kodik.token=${KODIK_TOKEN}