1
1
# ##############################################################################
2
- FROM python:3.12.4-alpine3.20 AS base
2
+ FROM python:3.12.4-alpine3.20 AS init
3
3
4
4
ENV WORKDIR=/app
5
5
WORKDIR ${WORKDIR}
6
6
7
7
RUN apk add --update --no-cache make
8
8
9
+ # ##############################################################################
10
+ FROM init AS base
11
+
12
+ ENV WORKDIR=/app
13
+ WORKDIR ${WORKDIR}
14
+
15
+ COPY ./Makefile ${WORKDIR}/
16
+ COPY ./requirements.txt ${WORKDIR}/
17
+ RUN make dependencies
18
+
9
19
# ##############################################################################
10
20
FROM base AS lint
11
21
@@ -16,7 +26,6 @@ RUN apk add --update --no-cache make nodejs npm
16
26
RUN apk add --update --no-cache yamllint
17
27
18
28
RUN npm install -g --ignore-scripts markdownlint-cli
19
- RUN npm install -g --ignore-scripts pyright
20
29
21
30
# [!TIP] Use a bind-mount to "/app" to override following "copys"
22
31
# for lint and test against "current" sources in this stage
@@ -32,7 +41,7 @@ COPY ./LICENSE.md ${WORKDIR}/
32
41
COPY ./CODE_OF_CONDUCT.md ${WORKDIR}/
33
42
34
43
# Code source
35
- COPY ./src ${WORKDIR}/
44
+ COPY ./src/ ${WORKDIR}/src
36
45
COPY ./requirements.txt ${WORKDIR}/
37
46
COPY ./setup.cfg ${WORKDIR}/
38
47
COPY ./Makefile ${WORKDIR}/
@@ -55,12 +64,8 @@ CMD ["make", "lint"]
55
64
FROM base AS development
56
65
57
66
COPY ./Makefile ${WORKDIR}/
58
- COPY ./requirements.txt ${WORKDIR}/
59
67
COPY ./setup.cfg ${WORKDIR}/
60
-
61
- RUN make dependencies
62
-
63
- COPY ./src ${WORKDIR}/src
68
+ COPY ./src/ ${WORKDIR}/src
64
69
65
70
RUN ls -alh
66
71
@@ -108,7 +113,7 @@ CMD ["make", "test"]
108
113
# # in the production phase, "good practices" such as
109
114
# # WORKDIR and USER are maintained
110
115
# #
111
- FROM python:3.12.4-alpine3.20 AS production
116
+ FROM init AS production
112
117
113
118
ENV LOG_LEVEL=INFO
114
119
ENV BRUTEFORCE=false
@@ -119,7 +124,6 @@ RUN adduser -D worker
119
124
RUN mkdir -p /app
120
125
RUN chown worker:worker /app
121
126
122
- RUN apk add --update --no-cache make
123
127
COPY ./Makefile ${WORKDIR}/
124
128
125
129
COPY --from=builder /app/build/ ${WORKDIR}/
0 commit comments