-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathDockerfile
More file actions
54 lines (37 loc) · 1.12 KB
/
Dockerfile
File metadata and controls
54 lines (37 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# --------------- dev stage for developers to override sources
FROM node:20.20.1-alpine as dev
RUN apk --no-cache add make gcc g++ python3
ENV NODE_ENV=development
RUN mkdir /app
WORKDIR /app
COPY package*.json ./
RUN echo "SKIP_PREFLIGHT_CHECK=true" > .env
RUN echo "EXTEND_ESLINT=true" >> .env
RUN npm ci
# --------------- ci stage for CI runner
FROM dev as ci
ENV NODE_ENV=test
ENV NODE_OPTIONS=--max-old-space-size=4096
COPY ts*.json .es* .prettier* ./
COPY src src
COPY public public
RUN echo "SKIP_PREFLIGHT_CHECK=true" > .env
RUN echo "EXTEND_ESLINT=true" >> .env
# ARG CI=true
RUN npm run lint
RUN npm test -- --watchAll=false
RUN npm run build
# --------------- production stage
FROM nginx:1.29.6-alpine as prod
RUN mkdir /app
RUN addgroup -S app && adduser -S app -G app -h /app -s /sbin/nologin
RUN mkdir -p /var/run/nginx /var/tmp/nginx && chown -R app:app /etc/nginx /usr/share/nginx /var/run/nginx /var/tmp/nginx
ENV HOME=/app
WORKDIR /app
COPY nginx/ ./
RUN chmod +x /app/run.sh
COPY --from=ci /app/build build
COPY /console-keycloak/APL.jar /app/
RUN chown -R app:app /app
USER app
CMD ["sh", "-c", "/app/run.sh"]