FROM node:22-alpine

WORKDIR /app

COPY package.json package-lock.json ./
COPY packages/device-protocol-contract ./packages/device-protocol-contract
COPY packages/device-edge-channel-contract ./packages/device-edge-channel-contract
COPY packages/device-adapter-runtime/package.json ./packages/device-adapter-runtime/package.json
COPY packages/device-adapter-catalog/package.json ./packages/device-adapter-catalog/package.json
COPY packages/arusnavi-b2-adapter/package.json ./packages/arusnavi-b2-adapter/package.json
COPY services/device-control-core ./services/device-control-core
COPY services/device-gateway/package.json ./services/device-gateway/package.json
COPY services/device-edge-relay/package.json ./services/device-edge-relay/package.json
COPY services/device-gateway-core ./services/device-gateway-core

RUN npm ci --omit=dev --ignore-scripts

USER node

CMD ["node", "services/device-control-core/src/server.mjs"]
