Repository navigation
Expand file tree
/
Copy pathDockerfile.schedule
More file actions
53 lines (41 loc) · 1.85 KB
/
Copy pathDockerfile.schedule
File metadata and controls
53 lines (41 loc) · 1.85 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
# syntax=docker/dockerfile:1
FROM node:26.13.0-bookworm-slim AS base
ENV BUN_INSTALL="/root/.bun"
ENV PATH="$BUN_INSTALL/bin:$PATH"
RUN apt-get update \
&& apt-get install -y --no-install-recommends bash ca-certificates curl unzip \
&& rm -rf /var/lib/apt/lists/* \
&& curl -fsSL https://bun.sh/install | bash -s -- bun-v1.4.4 \
&& ln -sf "$BUN_INSTALL/bin/bun" "$BUN_INSTALL/bin/bunx" \
&& npm install -g node-gyp@13.0.1
FROM base AS build
COPY . /usr/src/app
WORKDIR /usr/src/app
RUN apt-get update && apt-get install -y python3 make g++ git python3-pip pkg-config libsecret-1-dev && rm -rf /var/lib/apt/lists/*
# Install dependencies
RUN --mount=type=cache,id=bun,target=/root/.bun/install/cache bun install --frozen-lockfile
# Deploy only the dokploy app
ENV NODE_ENV=production
RUN bun run --filter './packages/server' build
RUN bun run --filter './apps/schedules' build
RUN bun install --production --frozen-lockfile --linker hoisted
RUN mkdir -p /prod/schedules \
&& cp -R /usr/src/app/apps/schedules/package.json /prod/schedules/package.json \
&& cp -R /usr/src/app/node_modules /prod/schedules/node_modules \
&& mkdir -p /prod/schedules/packages \
&& cp -R /usr/src/app/packages/server /prod/schedules/packages/server \
&& rm -f /prod/schedules/node_modules/dokploy \
&& rm -f /prod/schedules/node_modules/@dokploy/api \
&& rm -f /prod/schedules/node_modules/@dokploy/schedules
RUN cp -R /usr/src/app/apps/schedules/dist /prod/schedules/dist
FROM base AS dokploy
WORKDIR /app
# Set production
ENV NODE_ENV=production
# Copy only the necessary files
COPY --from=build /prod/schedules/dist ./dist
COPY --from=build /prod/schedules/package.json ./package.json
COPY --from=build /prod/schedules/node_modules ./node_modules
COPY --from=build /prod/schedules/packages ./packages
ENV HOSTNAME=0.0.0.0
CMD ["bun", "run", "start"]