-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile.dev
More file actions
51 lines (38 loc) · 1.34 KB
/
Copy pathDockerfile.dev
File metadata and controls
51 lines (38 loc) · 1.34 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
FROM denoland/deno:latest AS builder
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
ca-certificates \
build-essential \
python3 \
npm && \
rm -rf /var/lib/apt/lists/*
COPY ./deno.json /app/deno.json
COPY ./deno.lock /app/deno.lock
RUN deno install
RUN deno task setup:chdb
RUN mkdir -p /app/prod_deps/node_modules/.deno/chdb@2.0.1/node_modules && \
cp -r /app/node_modules/.deno/chdb@2.0.1/node_modules/chdb /app/prod_deps/node_modules/.deno/chdb@2.0.1/node_modules/chdb && \
ln -s .deno/chdb@2.0.1/node_modules/chdb /app/prod_deps/node_modules/chdb
COPY ./tasks/vite.ts /app/tasks/vite.ts
COPY ./web /app/web
RUN deno cache --allow-scripts=npm:esbuild@0.28.0 --lock=deno.lock tasks/vite.ts web/index.tsx
ENV BASE_URL="/"
RUN deno task prod:vite
COPY ./api /app/api
COPY ./db /app/db
RUN deno cache --allow-scripts=npm:esbuild@0.28.0 --lock=deno.lock api/server.ts
RUN deno task prod:api
FROM ubuntu:24.04
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && \
rm -rf /var/lib/apt/lists/*
COPY --from=builder /app/dist/api /app/server
COPY --from=builder /app/db/functions /app/db/functions
COPY --from=builder /app/prod_deps/ /app/
ENV LOCAL_ENV=true
ENV BASE_URL=/
ENV PORT=3021
ENV APP_ENV=prod
EXPOSE 3021
CMD ["/app/server", "--env=prod"]