Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ WORKDIR /prepare

RUN turbo prune @blobscan/web --docker --out-dir /prepare/web
RUN turbo prune @blobscan/rest-api-server --docker --out-dir /prepare/api
# TODO: add clis here?

# stage: web-builder
FROM deps AS web-builder
Expand All @@ -48,10 +49,11 @@ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm fetch -r
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile

COPY --from=deps /prepare/web/full .
COPY --from=deps /prepare/clis ./clis

# Copy original which includes pipelines
COPY --from=deps /prepare/turbo.json .
RUN --mount=type=cache,id=pnpm,target=/pnpm/store DATABASE_URL=${DATABASE_URL} DIRECT_URL=${DIRECT_URL} pnpm build --filter=@blobscan/web
RUN --mount=type=cache,id=pnpm,target=/pnpm/store DATABASE_URL=${DATABASE_URL} DIRECT_URL=${DIRECT_URL} pnpm build --filter=@blobscan/web --filter="./clis/*"

# stage: web
FROM base AS web
Expand All @@ -70,6 +72,7 @@ COPY --from=web-builder --chown=nextjs:nodejs /prepare/api/full/packages/db/pris
COPY --from=web-builder --chown=nextjs:nodejs /app/apps/web/.next/standalone ./
COPY --from=web-builder --chown=nextjs:nodejs /app/apps/web/.next/static ./apps/web/.next/static
COPY --from=web-builder --chown=nextjs:nodejs /app/apps/web/public ./apps/web/public
COPY --from=web-builder --chown=nextjs:nodejs /app/clis ./clis

USER nextjs

Expand All @@ -94,10 +97,10 @@ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm fetch -r
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile

COPY --from=deps /prepare/api/full .
COPY --from=deps /prepare/clis ./clis

# Copy original which includes pipelines
COPY --from=deps /prepare/turbo.json .
RUN --mount=type=cache,id=pnpm,target=/pnpm/store DATABASE_URL=${DATABASE_URL} DIRECT_URL=${DIRECT_URL} pnpm build --filter=@blobscan/rest-api-server
RUN --mount=type=cache,id=pnpm,target=/pnpm/store DATABASE_URL=${DATABASE_URL} DIRECT_URL=${DIRECT_URL} pnpm build --filter=@blobscan/rest-api-server --filter="./clis/*"

# stage: api
FROM base AS api
Expand All @@ -109,6 +112,7 @@ COPY --from=api-builder /app/node_modules/prisma ./node_modules/prisma
COPY --from=api-builder /app/node_modules/@prisma ./node_modules/@prisma
COPY --from=api-builder /app/apps/rest-api-server/dist ./
COPY --from=api-builder /prepare/api/full/packages/db/prisma/migrations ./migrations
COPY --from=api-builder /app/clis ./clis

EXPOSE 3001
ENV PORT=3001
Expand Down
16 changes: 15 additions & 1 deletion docker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,25 @@ _main() {
elif [ "$1" = 'api' ]; then
apply_prisma_migrations --schema schema.prisma
node /app/index.js
elif [ "$1" = 'blob-propagation' ]; then
shift
cd /app/clis/blob-propagation-jobs-cli
node dist/main.js "$@"
elif [ "$1" = 'stats-aggregation' ]; then
shift
cd /app/clis/stats-aggregation-cli
node dist/main.js "$@"
elif [ "$1" = '--help' ]; then
echo "## Blobscan ##"
echo ""
echo "Usage:"
echo "$0 [web|api]"
echo "$0 [web|api|blob-propagation|stats-aggregation]"
echo ""
echo "Commands:"
echo " web Start the web server"
echo " api Start the API server"
echo " blob-propagation Run blob propagation CLI commands"
echo " stats-aggregation Run stats aggregation CLI commands"
else
echo "Invalid command: $1"
exit 1
Expand Down
Loading