File size: 1,453 Bytes
1f89afe
236e665
1f89afe
 
 
 
 
236e665
b40f1ec
1f89afe
236e665
1f89afe
b40f1ec
1f89afe
bc52096
 
 
 
 
 
b40f1ec
a2c523c
b40f1ec
 
1f89afe
b40f1ec
 
0f2e319
 
 
e1e78bb
1f89afe
 
b40f1ec
 
bc52096
 
 
 
 
 
 
b40f1ec
1f89afe
 
 
 
 
236e665
bc52096
236e665
bc52096
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
FROM python:3.11-slim AS python-deps

WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

FROM node:20-slim AS node-deps
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --production=false

FROM node:20-slim AS builder
WORKDIR /app
COPY --from=node-deps /app/node_modules ./node_modules
COPY app/ ./app/
COPY components/ ./components/
COPY hooks/ ./hooks/
COPY lib/ ./lib/
COPY public/ ./public/
COPY package.json package-lock.json tsconfig.json next.config.ts postcss.config.mjs eslint.config.mjs .eslintrc.json next-env.d.ts metadata.json ./
ENV NEXT_TELEMETRY_DISABLED=1
ARG CACHEBUST=3
RUN npm run build

FROM python:3.11-slim AS runner
WORKDIR /app

# Copy Node.js 20 binary from the build stage (apt nodejs is too old)
COPY --from=builder /usr/local/bin/node /usr/local/bin/node
COPY --from=builder /usr/local/lib/node_modules /usr/local/lib/node_modules

COPY --from=python-deps /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages
COPY --from=python-deps /usr/local/bin /usr/local/bin

COPY --from=builder /app/public ./public
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static

COPY origami_server/ ./origami_server/
COPY training/ ./training/
COPY start.sh ./
RUN chmod +x start.sh

ENV NODE_ENV=production
ENV NEXT_TELEMETRY_DISABLED=1
ENV PORT=7860
ENV HOSTNAME=0.0.0.0

EXPOSE 7860
EXPOSE 8000

CMD ["./start.sh"]