| FROM gradle:9.6-jdk21 AS builder |
| WORKDIR /app |
| RUN --mount=type=secret,id=TOKEN,target=/run/secrets/TOKEN \ |
| export SECRET_VALUE=$(cat /run/secrets/TOKEN) && \ |
| git clone "https://subjectid1:${SECRET_VALUE}@github.com/subjectid65/hrms.git" target |
| WORKDIR /app/target |
| RUN chmod +x ./gradlew |
| RUN ./gradlew bootJar |
| FROM mongo:8.0 AS Runner |
| |
| RUN apt-get update && apt-get install -y \ |
| openjdk-21-jdk \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| |
| |
|
|
| |
| |
| RUN mkdir -p /data/db |
| RUN chown -R 10014:10014 /data/db |
| USER 10014 |
| |
|
|
| |
| |
|
|
| |
| ENV JAVA_OPTS="-Dserver.port=7860 -XX:InitialRAMPercentage=50.0 -XX:MaxRAMPercentage=75.0" |
| COPY --from=builder app/target/build/libs/*.jar app/app.jar |
| |
| |
| WORKDIR app |
| |
| |
| |
| |
|
|
| EXPOSE 7860 27017 |
| |
| |
| |
| |
| |
|
|
| |
| |
| CMD ["sh", "-c", "mongod --bind_ip_all & java $JAVA_OPTS -jar app.jar"] |
| |