feat: initial SleepGuard implementation
Wake-on-demand proxy + agent system with SvelteKit dashboard. Monorepo: shared types, proxy (Hono + http-proxy), agent (monitors + locks), web (SvelteKit SPA). Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
48
packages/proxy/Dockerfile
Normal file
48
packages/proxy/Dockerfile
Normal file
@@ -0,0 +1,48 @@
|
||||
FROM node:22-alpine AS base
|
||||
RUN corepack enable
|
||||
|
||||
# --- Dependencies ---
|
||||
FROM base AS deps
|
||||
WORKDIR /app
|
||||
COPY package.json yarn.lock .yarnrc.yml ./
|
||||
COPY packages/shared/package.json packages/shared/
|
||||
COPY packages/proxy/package.json packages/proxy/
|
||||
COPY packages/proxy/web/package.json packages/proxy/web/
|
||||
RUN yarn install --immutable
|
||||
|
||||
# --- Build shared ---
|
||||
FROM deps AS build-shared
|
||||
WORKDIR /app
|
||||
COPY packages/shared packages/shared
|
||||
RUN yarn workspace @sleepguard/shared build
|
||||
|
||||
# --- Build web ---
|
||||
FROM build-shared AS build-web
|
||||
WORKDIR /app
|
||||
COPY packages/proxy/web packages/proxy/web
|
||||
RUN yarn workspace @sleepguard/web build
|
||||
|
||||
# --- Build proxy ---
|
||||
FROM build-shared AS build-proxy
|
||||
WORKDIR /app
|
||||
COPY packages/proxy/tsconfig.json packages/proxy/
|
||||
COPY packages/proxy/src packages/proxy/src
|
||||
RUN yarn workspace @sleepguard/proxy build
|
||||
|
||||
# --- Production ---
|
||||
FROM base AS production
|
||||
WORKDIR /app
|
||||
|
||||
COPY package.json yarn.lock .yarnrc.yml ./
|
||||
COPY packages/shared/package.json packages/shared/
|
||||
COPY packages/proxy/package.json packages/proxy/
|
||||
COPY packages/proxy/web/package.json packages/proxy/web/
|
||||
RUN yarn workspaces focus @sleepguard/proxy --production
|
||||
|
||||
COPY --from=build-shared /app/packages/shared/dist packages/shared/dist
|
||||
COPY --from=build-proxy /app/packages/proxy/dist packages/proxy/dist
|
||||
COPY --from=build-web /app/packages/proxy/web/build packages/proxy/public/dashboard
|
||||
|
||||
WORKDIR /app/packages/proxy
|
||||
EXPOSE 47391
|
||||
CMD ["node", "dist/index.js"]
|
||||
Reference in New Issue
Block a user