mirror of
https://github.com/imputnet/cobalt.git
synced 2025-07-14 01:08:27 +00:00
Add web interface to build
This commit is contained in:
parent
c48c64240b
commit
8da6ccdc7c
29
Dockerfile
29
Dockerfile
@ -6,21 +6,38 @@ FROM base AS build
|
||||
WORKDIR /app
|
||||
COPY . /app
|
||||
|
||||
RUN corepack enable
|
||||
RUN corepack enable && pnpm add -g serve
|
||||
RUN apk add --no-cache python3 alpine-sdk
|
||||
|
||||
# Build backend (cobalt-api)
|
||||
FROM build AS build-api
|
||||
WORKDIR /app
|
||||
RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
|
||||
pnpm install --prod --frozen-lockfile
|
||||
|
||||
RUN pnpm deploy --filter=@imput/cobalt-api --prod /prod/api
|
||||
|
||||
FROM base AS api
|
||||
# Build frontend (cobalt-web)
|
||||
FROM build AS build-web
|
||||
WORKDIR /app/web
|
||||
RUN --mount=type=cache,id=pnpm-web,target=/pnpm/store \
|
||||
pnpm install --prod=false --frozen-lockfile
|
||||
ARG WEB_HOST
|
||||
ARG WEB_DEFAULT_API
|
||||
ENV WEB_HOST=${WEB_HOST}
|
||||
ENV WEB_DEFAULT_API=${WEB_DEFAULT_API}
|
||||
RUN pnpm run build
|
||||
|
||||
# Merge api+web results
|
||||
FROM base AS final
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=build --chown=node:node /prod/api /app
|
||||
COPY --from=build --chown=node:node /app/.git /app/.git
|
||||
RUN apk add --no-cache python3
|
||||
COPY --from=build-api --chown=node:node /prod/api /app
|
||||
COPY --from=build-web --chown=node:node /app/web /app/web
|
||||
COPY .git /app/.git
|
||||
|
||||
USER node
|
||||
|
||||
EXPOSE 9000
|
||||
CMD [ "node", "src/cobalt" ]
|
||||
EXPOSE 9001
|
||||
CMD [ "sh", "-c", "python3 -m http.server 9001 --directory /app/web/build & node src/cobalt" ]
|
Loading…
Reference in New Issue
Block a user