diff --git a/apps/public/Dockerfile b/apps/public/Dockerfile index 4ce0fd31..23fbefa2 100644 --- a/apps/public/Dockerfile +++ b/apps/public/Dockerfile @@ -28,6 +28,7 @@ COPY pnpm-workspace.yaml pnpm-workspace.yaml COPY apps/public/package.json apps/public/package.json COPY packages/db/package.json packages/db/package.json COPY packages/queue/package.json packages/queue/package.json +COPY packages/common/package.json packages/common/package.json COPY packages/types/package.json packages/types/package.json # BUILD diff --git a/apps/sdk-api/Dockerfile b/apps/sdk-api/Dockerfile index f74df4a8..a5f8cfe7 100644 --- a/apps/sdk-api/Dockerfile +++ b/apps/sdk-api/Dockerfile @@ -43,6 +43,7 @@ COPY pnpm-workspace.yaml pnpm-workspace.yaml COPY apps/sdk-api/package.json apps/sdk-api/package.json COPY packages/db/package.json packages/db/package.json COPY packages/queue/package.json packages/queue/package.json +COPY packages/common/package.json packages/common/package.json COPY packages/types/package.json packages/types/package.json # BUILD @@ -81,10 +82,12 @@ COPY --from=prod /app/apps/sdk-api/node_modules /app/apps/sdk-api/node_modules # Packages COPY --from=build /app/packages/db /app/packages/db COPY --from=build /app/packages/queue /app/packages/queue +COPY --from=build /app/packages/common /app/packages/common # Packages node_modules COPY --from=prod /app/packages/db/node_modules /app/packages/db/node_modules COPY --from=prod /app/packages/queue/node_modules /app/packages/queue/node_modules +COPY --from=prod /app/packages/common/node_modules /app/packages/common/node_modules RUN pnpm db:codegen diff --git a/apps/worker/Dockerfile b/apps/worker/Dockerfile new file mode 100644 index 00000000..45089887 --- /dev/null +++ b/apps/worker/Dockerfile @@ -0,0 +1,98 @@ +# Dockerfile that builds the web app only + +FROM --platform=linux/amd64 node:20-slim AS base + +ARG DATABASE_URL +ENV DATABASE_URL=$DATABASE_URL + +ARG CLICKHOUSE_DB +ENV CLICKHOUSE_DB=$CLICKHOUSE_DB + +ARG CLICKHOUSE_PASSWORD +ENV CLICKHOUSE_PASSWORD=$CLICKHOUSE_PASSWORD + +ARG CLICKHOUSE_URL +ENV CLICKHOUSE_URL=$CLICKHOUSE_URL + +ARG CLICKHOUSE_USER +ENV CLICKHOUSE_USER=$CLICKHOUSE_USER + +ARG REDIS_URL +ENV REDIS_URL=$REDIS_URL + +ENV PNPM_HOME="/pnpm" + +ENV PATH="$PNPM_HOME:$PATH" + +RUN corepack enable + +ARG NODE_VERSION=20 + +RUN apt update \ + && apt install -y curl \ + && curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n \ + && bash n $NODE_VERSION \ + && rm n \ + && npm install -g n + +WORKDIR /app + +COPY package.json package.json +COPY pnpm-lock.yaml pnpm-lock.yaml +COPY pnpm-workspace.yaml pnpm-workspace.yaml +COPY apps/worker/package.json apps/worker/package.json +COPY packages/db/package.json packages/db/package.json +COPY packages/queue/package.json packages/queue/package.json +COPY packages/common/package.json packages/common/package.json +COPY packages/types/package.json packages/types/package.json + +# BUILD +FROM base AS build + +WORKDIR /app/apps/worker +RUN pnpm install --frozen-lockfile --ignore-scripts + +WORKDIR /app +COPY apps apps +COPY packages packages +COPY tooling tooling +RUN pnpm db:codegen + +WORKDIR /app/apps/worker +RUN pnpm run build + +# PROD +FROM base AS prod + +WORKDIR /app/apps/worker +RUN pnpm install --frozen-lockfile --prod --ignore-scripts + +# FINAL +FROM base AS runner + +COPY --from=build /app/package.json /app/package.json +COPY --from=prod /app/node_modules /app/node_modules + +# Apps +COPY --from=build /app/apps/worker /app/apps/worker + +# Apps node_modules +COPY --from=prod /app/apps/worker/node_modules /app/apps/worker/node_modules + +# Packages +COPY --from=build /app/packages/db /app/packages/db +COPY --from=build /app/packages/queue /app/packages/queue +COPY --from=build /app/packages/common /app/packages/common + +# Packages node_modules +COPY --from=prod /app/packages/db/node_modules /app/packages/db/node_modules +COPY --from=prod /app/packages/queue/node_modules /app/packages/queue/node_modules +COPY --from=prod /app/packages/common/node_modules /app/packages/common/node_modules + +RUN pnpm db:codegen + +WORKDIR /app/apps/worker + +EXPOSE 3000 + +CMD ["pnpm", "start"] \ No newline at end of file diff --git a/docker/Dockerfile-composed b/docker/Dockerfile-composed index 844b69cf..fcfe8d2c 100644 --- a/docker/Dockerfile-composed +++ b/docker/Dockerfile-composed @@ -42,6 +42,7 @@ COPY apps/web/package.json apps/web/package.json COPY apps/worker/package.json apps/worker/package.json COPY packages/db/package.json packages/db/package.json COPY packages/queue/package.json packages/queue/package.json +COPY packages/common/package.json packages/common/package.json COPY packages/types/package.json packages/types/package.json # BUILD diff --git a/docker/Dockerfile-web b/docker/Dockerfile-web index 9ad95102..e70cadb2 100644 --- a/docker/Dockerfile-web +++ b/docker/Dockerfile-web @@ -37,6 +37,7 @@ COPY pnpm-workspace.yaml pnpm-workspace.yaml COPY apps/web/package.json apps/web/package.json COPY packages/db/package.json packages/db/package.json COPY packages/queue/package.json packages/queue/package.json +COPY packages/common/package.json packages/common/package.json COPY packages/types/package.json packages/types/package.json # BUILD diff --git a/docker/Dockerfile-worker b/docker/Dockerfile-worker index b52847f2..3f8584cd 100644 --- a/docker/Dockerfile-worker +++ b/docker/Dockerfile-worker @@ -31,6 +31,7 @@ COPY pnpm-workspace.yaml pnpm-workspace.yaml COPY apps/worker/package.json apps/worker/package.json COPY packages/db/package.json packages/db/package.json COPY packages/queue/package.json packages/queue/package.json +COPY packages/common/package.json packages/common/package.json COPY packages/types/package.json packages/types/package.json # BUILD