@@ -4,6 +4,8 @@ FROM gradle:8.8.0-jdk21-alpine AS base
4
4
ENV WORKDIR=/app
5
5
WORKDIR ${WORKDIR}
6
6
7
+ RUN apk add --update --no-cache make
8
+
7
9
# ##############################################################################
8
10
FROM base AS lint
9
11
@@ -34,7 +36,7 @@ COPY ./settings.gradle ${WORKDIR}/
34
36
COPY ./Makefile ${WORKDIR}/
35
37
36
38
# code linting conf
37
- COPY ./checkstyle.xml ${WORKDIR}/checkstyle.xml
39
+ COPY ./checkstyle.xml ${WORKDIR}/
38
40
39
41
# markdownlint conf
40
42
COPY ./.markdownlint.yaml ${WORKDIR}/
@@ -48,37 +50,36 @@ CMD ["make", "lint"]
48
50
# ##############################################################################
49
51
FROM base AS development
50
52
51
- RUN apk add --update --no-cache make
53
+ COPY ./algorithm-exercises-java ${WORKDIR}/algorithm-exercises-java
54
+ COPY ./settings.gradle ${WORKDIR}/
55
+ COPY ./Makefile ${WORKDIR}/
56
+ COPY ./checkstyle.xml ${WORKDIR}/
57
+ COPY ./gradle ${WORKDIR}/
58
+ COPY ./gradlew ${WORKDIR}/
52
59
53
60
# ##############################################################################
54
61
FROM development AS builder
55
62
56
- WORKDIR /app
57
-
58
- # # Copy sources to builder stage
59
- COPY ./algorithm-exercises-java ${WORKDIR}/algorithm-exercises-java
60
- COPY ./config ${WORKDIR}/config
61
- COPY ./gradle ${WORKDIR}/gradle
62
- COPY ./gradlew ${WORKDIR}/gradlew
63
- COPY ./settings.gradle ${WORKDIR}/settings.gradle
64
- COPY ./Makefile ${WORKDIR}/Makefile
63
+ ENV WORKDIR=/app
64
+ WORKDIR ${WORKDIR}
65
65
66
66
# # build
67
- RUN chmod +x gradlew
68
- RUN gradle --console=verbose build
67
+ RUN make build
68
+
69
+ # CMD []
69
70
70
71
# ##############################################################################
71
72
# ## In testing stage, can't use USER, due permissions issue
72
73
# # in github actions environment:
73
74
# #
74
75
# # https://docs.github.com/en/actions/creating-actions/dockerfile-support-for-github-actions
75
76
# #
76
- FROM builder AS testing
77
+ FROM development AS testing
77
78
78
79
ENV LOG_LEVEL=INFO
79
80
ENV BRUTEFORCE=false
80
-
81
- WORKDIR /app
81
+ ENV WORKDIR=/app
82
+ WORKDIR ${WORKDIR}
82
83
83
84
RUN ls -alh
84
85
@@ -93,16 +94,18 @@ FROM eclipse-temurin:22.0.1_8-jre-alpine AS production
93
94
94
95
ENV LOG_LEVEL=INFO
95
96
ENV BRUTEFORCE=false
97
+ ENV WORKDIR=/app
98
+ WORKDIR ${WORKDIR}
96
99
97
100
RUN adduser -D worker
98
101
RUN mkdir -p /app
99
102
RUN chown worker:worker /app
100
103
101
- WORKDIR /app
104
+ RUN apk add --update --no-cache make
105
+ COPY ./Makefile ${WORKDIR}/
106
+ COPY --from=builder /app/algorithm-exercises-java/build/libs/algorithm-exercises-java.jar ${WORKDIR}/algorithm-exercises-java.jar
102
107
103
- COPY --from=builder ./algorithm-exercises-java/build/libs/algorithm-exercises-java.jar ${WORKDIR}/algorithm-exercises-java.jar
104
108
RUN ls -alh
105
109
106
110
USER worker
107
-
108
- # CMD []
111
+ CMD ["make" , "run" ]
0 commit comments