-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathDockerfile
50 lines (39 loc) · 1.16 KB
/
Dockerfile
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
ARG PORT_ARG=4567
ARG HOST_ARG=0.0.0.0
ARG PREFIX_ARG=dynamodb
# Stage I [server-builder]
FROM node:22-alpine AS server-builder
WORKDIR /usr/src/server
COPY ["./server/package.json", "./server/yarn.lock", "./"]
RUN yarn
COPY ./server ./
ENV NODE_ENV=production
RUN yarn build
RUN rm -rf node_modules
RUN yarn
# Stage II [app-builder]
FROM node:22-alpine AS app-builder
ARG PREFIX_ARG
WORKDIR /usr/src/app
COPY ["./app/package.json", "./app/yarn.lock", "./"]
RUN yarn
COPY ./app ./
RUN sed -i "s/dynamodb/$PREFIX_ARG/g" .env.production
ENV NODE_ENV=production
RUN yarn build-only
# Stage III [dynamodb-dashboard]
FROM node:22-alpine
ARG HOST_ARG
ARG PORT_ARG
ARG PREFIX_ARG
ENV PORT=$PORT_ARG
ENV HOST=$HOST_ARG
ENV PREFIX=$PREFIX_ARG
WORKDIR /usr/dynamodb-dashboard
COPY --from=server-builder /usr/src/server/yarn.lock ./
COPY --from=server-builder /usr/src/server/package.json ./
COPY --from=server-builder /usr/src/server/build ./build
COPY --from=server-builder /usr/src/server/node_modules ./node_modules
COPY --from=app-builder /usr/src/app/dist ./build/public
EXPOSE $PORT
CMD ["sh", "-c", "node build/bin/cli.js start --prefix=$PREFIX --port=$PORT --host=$HOST -d"]