A self-hosted orchestration system crafted for power users. composia.xyz
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051# syntax=docker/dockerfile:1.27@sha256:bde3983e9c939224420ddaf6b784cc30e09b035a4dea01f581230c50809f372eFROM --platform=$BUILDPLATFORM denoland/deno:2.9.6@sha256:2014dc167ece617ef7e7ba40631ac2234c59e75ce693e7cc2dc2602b3c87859d AS deps
WORKDIR /src
COPY deno.json deno.lock package.json ./COPY web/package.json ./web/package.json
RUN --mount=type=cache,id=composia-web-deno-deps-v2,target=/deno-dir,sharing=locked \ deno install --frozen
FROM deps AS builder
COPY web ./web
RUN deno task web:build
FROM denoland/deno:2.9.6@sha256:2014dc167ece617ef7e7ba40631ac2234c59e75ce693e7cc2dc2602b3c87859d AS prod-deps
WORKDIR /app
COPY deno.json deno.lock package.json ./COPY web/package.json ./web/package.json
RUN --mount=type=cache,id=composia-web-deno-prod-v2,target=/deno-dir,sharing=locked \ deno install --frozen --prod
FROM denoland/deno:distroless-2.9.2@sha256:04cb192ac7445056d009530fbd228fb15fa42fbd29d38c95bbd099b8b902ec7a AS final
WORKDIR /app
ENV NODE_ENV=production \ HOST=0.0.0.0 \ PORT=3000
COPY --from=prod-deps /app/package.json ./package.jsonCOPY --from=prod-deps /app/node_modules ./node_modulesCOPY --from=prod-deps /app/web/package.json ./web/package.jsonCOPY --from=prod-deps /app/web/node_modules ./web/node_modulesCOPY --from=builder /src/web/.deno-deploy ./web/.deno-deployCOPY --from=builder /src/web/compression.mjs ./web/compression.mjsCOPY --from=builder /src/web/server.mjs ./web/server.mjs
WORKDIR /app/web
EXPOSE 3000
USER 65532:65532
CMD ["run", "--allow-env", "--allow-net", "--allow-read=/app", "--no-prompt", "server.mjs"]