
FROM node:20-alpine AS deps
WORKDIR /w
COPY package.json package-lock.json ./
COPY packages/shared/package.json packages/shared/package.json
COPY apps/core/package.json apps/core/package.json
COPY apps/cloud/package.json apps/cloud/package.json
COPY apps/community/package.json apps/community/package.json
COPY apps/community-provider/package.json apps/community-provider/package.json
COPY apps/community-admin/package.json apps/community-admin/package.json
COPY apps/marketing/package.json apps/marketing/package.json
RUN npm install

FROM deps AS runtime
WORKDIR /w
COPY . .
COPY --from=deps /w/node_modules /w/node_modules
EXPOSE 8080 8081 8082 8083 8084 8086
CMD sh -c 'npm run build -w @xcloudify/${APP:?set APP=core|cloud|community|community-provider|community-admin|marketing} && npm run preview -w @xcloudify/${APP} -- --host 0.0.0.0 --port ${PORT:-8080}'
