Skip to content

Commit 1178cf3

Browse files
committed
feat(docker): add Dockerfile with .dockerignore
1 parent 68ebbc1 commit 1178cf3

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

.dockerignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
*.md
2+
.git
3+
.gitignore
4+
dist/
5+
node_modules/

Dockerfile

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Stage 0: Base
2+
FROM node:18-alpine AS base
3+
ENV PNPM_HOME="/pnpm"
4+
ENV PATH="$PNPM_HOME:$PATH"
5+
RUN corepack enable && corepack install --global pnpm@latest
6+
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
7+
WORKDIR /app/appchain-agent
8+
9+
10+
# Stage 1: Build
11+
FROM base AS builder
12+
13+
COPY package.json pnpm-lock.yaml ./
14+
15+
COPY --from=context-appchain / /app/appchain
16+
RUN --mount=type=cache,id=pnpm,target=${PNPM_HOME}/store \
17+
cd /app/appchain/packages/chain \
18+
&& pnpm install --frozen-lockfile \
19+
&& pnpm build
20+
21+
RUN --mount=type=cache,id=pnpm,target=${PNPM_HOME}/store pnpm install --frozen-lockfile
22+
23+
COPY . .
24+
RUN pnpm run build
25+
26+
27+
# Stage 2: Production image
28+
FROM base AS runner
29+
30+
COPY --from=builder /app/appchain/packages/chain/dist /app/appchain/packages/chain/dist
31+
COPY --from=builder /app/appchain/packages/chain/package.json /app/appchain/packages/chain/
32+
COPY --from=builder /app/appchain/package.json /app/appchain/pnpm-lock.yaml /app/appchain/
33+
RUN --mount=type=cache,id=pnpm,target=${PNPM_HOME}/store cd /app/appchain && pnpm install --prod --frozen-lockfile
34+
35+
COPY --from=builder /app/appchain-agent/dist ./dist
36+
COPY --from=builder /app/appchain-agent/package.json /app/appchain-agent/pnpm-lock.yaml ./
37+
RUN --mount=type=cache,id=pnpm,target=${PNPM_HOME}/store pnpm install --prod --frozen-lockfile
38+
39+
USER node

0 commit comments

Comments
 (0)