diff --git a/.dockerignore b/.dockerignore index 958b26c..9f45f18 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,4 @@ node_modules .git .gitignore -*.md -dist \ No newline at end of file +*.md \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index d5736f4..c5e2612 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,35 +1,31 @@ -FROM node:22.11-bookworm-slim AS builder +FROM node:22.11-bookworm-slim AS base -# Copy source -COPY . /app - -# Create app directory -WORKDIR /app - -# Setup PNPM ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" - -# Install RUN npm install -g corepack@latest pnpm@latest RUN corepack enable -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile -# Build -RUN pnpm build -# Deploy apps -RUN pnpm deploy --filter=api --prod /prod/api -RUN pnpm deploy --filter=web --prod /prod/web +FROM base AS build +COPY . /app +WORKDIR /app +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile + +RUN pnpm run -r build +RUN pnpm deploy --filter=api --prod /prod/api && \ + cp -r "$(pnpm --filter=api list --depth=-1 --parseable)/dist" /prod/api/dist +RUN pnpm deploy --filter=web --prod /prod/web && \ + cp -r "$(pnpm --filter=web list --depth=-1 --parseable)/dist" /prod/web -FROM builder AS api -COPY --from=builder /prod/api /prod/api +FROM base AS api +COPY --from=build /prod/api /prod/api WORKDIR /prod/api +RUN ls -la EXPOSE 5000 CMD [ "pnpm", "start:prod" ] -FROM nginx:stable AS web -COPY --from=builder /prod/web /usr/share/nginx/html +FROM base AS web +COPY --from=build /prod/web /usr/share/nginx/html EXPOSE 80 -CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file +CMD ["nginx", "-g", "daemon off;"] diff --git a/deployments/api-manifest.yaml b/deployments/api-manifest.yaml index e863695..0a4b587 100644 --- a/deployments/api-manifest.yaml +++ b/deployments/api-manifest.yaml @@ -50,6 +50,7 @@ spec: ipFamilies: - IPv4 ports: - - protocol: TCP + - name: http + protocol: TCP port: 8888 targetPort: 5000 \ No newline at end of file diff --git a/services/api/package.json b/services/api/package.json index 76e456b..c161b38 100644 --- a/services/api/package.json +++ b/services/api/package.json @@ -79,5 +79,6 @@ ], "coverageDirectory": "../coverage", "testEnvironment": "node" - } + }, + "packageManager": "pnpm@9.15.4" }