Skip to content

Commit 4ac8d31

Browse files
committed
fix(docker): sync Dockerfiles with current workspace package layout
- apps/api: rename packages/shared-mobility → packages/mobility-core; add packages/db-schema (drizzle schemas shared with data-manager), packages/hardlinks + packages/motis-feed-proxy-config (cli runtime deps shipped for admin-cli.ts). - apps/web: add packages/mobility-core (now imported by web for attribution / freshness / result helpers). - services/data-manager: add packages/db-schema; broaden pnpm install filter to @openmapx/data-manager... so transitive workspace deps' node_modules (drizzle-orm under db-schema) actually get materialised.
1 parent 7479f6e commit 4ac8d31

3 files changed

Lines changed: 34 additions & 14 deletions

File tree

apps/api/Dockerfile

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ FROM base AS deps
99
WORKDIR /app
1010
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig.base.json ./
1111
COPY packages/core/package.json packages/core/
12-
COPY packages/shared-mobility/package.json packages/shared-mobility/
12+
COPY packages/db-schema/package.json packages/db-schema/
13+
COPY packages/hardlinks/package.json packages/hardlinks/
14+
COPY packages/mobility-core/package.json packages/mobility-core/
15+
COPY packages/motis-feed-proxy-config/package.json packages/motis-feed-proxy-config/
1316
COPY packages/mobility-formats/package.json packages/mobility-formats/
1417
COPY packages/hey-api-client-fetch/package.json packages/hey-api-client-fetch/
1518
COPY packages/i18n/package.json packages/i18n/
@@ -29,7 +32,10 @@ FROM base AS prod-deps
2932
WORKDIR /app
3033
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig.base.json ./
3134
COPY packages/core/package.json packages/core/
32-
COPY packages/shared-mobility/package.json packages/shared-mobility/
35+
COPY packages/db-schema/package.json packages/db-schema/
36+
COPY packages/hardlinks/package.json packages/hardlinks/
37+
COPY packages/mobility-core/package.json packages/mobility-core/
38+
COPY packages/motis-feed-proxy-config/package.json packages/motis-feed-proxy-config/
3339
COPY packages/mobility-formats/package.json packages/mobility-formats/
3440
COPY packages/hey-api-client-fetch/package.json packages/hey-api-client-fetch/
3541
COPY packages/i18n/package.json packages/i18n/
@@ -57,8 +63,11 @@ WORKDIR /app
5763
COPY --from=deps /app ./
5864

5965
COPY packages/core/ packages/core/
60-
COPY packages/shared-mobility/ packages/shared-mobility/
66+
COPY packages/db-schema/ packages/db-schema/
67+
COPY packages/hardlinks/ packages/hardlinks/
68+
COPY packages/mobility-core/ packages/mobility-core/
6169
COPY packages/mobility-formats/ packages/mobility-formats/
70+
COPY packages/motis-feed-proxy-config/ packages/motis-feed-proxy-config/
6271
COPY packages/hey-api-client-fetch/ packages/hey-api-client-fetch/
6372
COPY packages/integration-framework/ packages/integration-framework/
6473
COPY packages/mangrove-client/ packages/mangrove-client/
@@ -112,8 +121,11 @@ COPY --from=prod-deps /app/apps/api/node_modules ./apps/api/node_modules
112121
# .ts file's location upward, so `@better-auth/passkey` imported from
113122
# packages/core must be reachable via packages/core/node_modules).
114123
COPY packages/core/ packages/core/
115-
COPY packages/shared-mobility/ packages/shared-mobility/
124+
COPY packages/db-schema/ packages/db-schema/
125+
COPY packages/hardlinks/ packages/hardlinks/
126+
COPY packages/mobility-core/ packages/mobility-core/
116127
COPY packages/mobility-formats/ packages/mobility-formats/
128+
COPY packages/motis-feed-proxy-config/ packages/motis-feed-proxy-config/
117129
COPY packages/hey-api-client-fetch/ packages/hey-api-client-fetch/
118130
COPY packages/integration-framework/ packages/integration-framework/
119131
COPY packages/mangrove-client/ packages/mangrove-client/
@@ -122,7 +134,8 @@ COPY packages/ourairports-data/ packages/ourairports-data/
122134
COPY packages/place-ids/ packages/place-ids/
123135
COPY packages/presets/ packages/presets/
124136
COPY --from=prod-deps /app/packages/core/node_modules ./packages/core/node_modules
125-
COPY --from=prod-deps /app/packages/shared-mobility/node_modules ./packages/shared-mobility/node_modules
137+
COPY --from=prod-deps /app/packages/db-schema/node_modules ./packages/db-schema/node_modules
138+
COPY --from=prod-deps /app/packages/mobility-core/node_modules ./packages/mobility-core/node_modules
126139
COPY --from=prod-deps /app/packages/mobility-formats/node_modules ./packages/mobility-formats/node_modules
127140
COPY --from=prod-deps /app/packages/integration-framework/node_modules ./packages/integration-framework/node_modules
128141
COPY --from=prod-deps /app/packages/mangrove-client/node_modules ./packages/mangrove-client/node_modules

apps/web/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ COPY packages/i18n/package.json packages/i18n/
1414
COPY packages/integration-framework/package.json packages/integration-framework/
1515
COPY packages/mangrove-client/package.json packages/mangrove-client/
1616
COPY packages/mangrove-react/package.json packages/mangrove-react/
17+
COPY packages/mobility-core/package.json packages/mobility-core/
1718
COPY packages/noaa-coops-data/package.json packages/noaa-coops-data/
1819
COPY packages/ourairports-data/package.json packages/ourairports-data/
1920
COPY packages/place-ids/package.json packages/place-ids/
@@ -34,6 +35,7 @@ COPY packages/i18n/ packages/i18n/
3435
COPY packages/integration-framework/ packages/integration-framework/
3536
COPY packages/mangrove-client/ packages/mangrove-client/
3637
COPY packages/mangrove-react/ packages/mangrove-react/
38+
COPY packages/mobility-core/ packages/mobility-core/
3739
COPY packages/noaa-coops-data/ packages/noaa-coops-data/
3840
COPY packages/ourairports-data/ packages/ourairports-data/
3941
COPY packages/place-ids/ packages/place-ids/

services/data-manager/Dockerfile

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
# IMPORTANT: build context MUST be the repo root. This Dockerfile reaches
44
# outside its own directory to pick up:
55
# - pnpm-workspace.yaml + workspace package.json files (for dependency
6-
# resolution of @openmapx/hardlinks and @openmapx/motis-feed-proxy-config)
6+
# resolution of @openmapx/db-schema, @openmapx/hardlinks, and
7+
# @openmapx/motis-feed-proxy-config)
78
# - services/motis/tools/transitous/requirements.txt (pulled into the
89
# runtime stage for the Transitous GTFS pipeline)
910
#
@@ -29,25 +30,28 @@ ENV HUSKY=0
2930

3031
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
3132
COPY services/data-manager/package.json services/data-manager/
33+
COPY packages/db-schema/package.json packages/db-schema/
3234
COPY packages/hardlinks/package.json packages/hardlinks/
3335
COPY packages/motis-feed-proxy-config/package.json packages/motis-feed-proxy-config/
3436

35-
RUN pnpm install --filter @openmapx/data-manager --frozen-lockfile
37+
RUN pnpm install --filter @openmapx/data-manager... --frozen-lockfile
3638

3739
FROM base AS prod-deps
3840
WORKDIR /app
3941
ENV HUSKY=0
4042

4143
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
4244
COPY services/data-manager/package.json services/data-manager/
45+
COPY packages/db-schema/package.json packages/db-schema/
4346
COPY packages/hardlinks/package.json packages/hardlinks/
4447
COPY packages/motis-feed-proxy-config/package.json packages/motis-feed-proxy-config/
4548

46-
RUN pnpm install --filter @openmapx/data-manager --frozen-lockfile --prod --ignore-scripts
49+
RUN pnpm install --filter @openmapx/data-manager... --frozen-lockfile --prod --ignore-scripts
4750

4851
FROM deps AS builder
4952
WORKDIR /app
5053

54+
COPY packages/db-schema/ packages/db-schema/
5155
COPY packages/hardlinks/ packages/hardlinks/
5256
COPY packages/motis-feed-proxy-config/ packages/motis-feed-proxy-config/
5357
COPY services/data-manager/ services/data-manager/
@@ -95,10 +99,11 @@ ENV PYTHONDONTWRITEBYTECODE=1
9599

96100
COPY --from=prod-deps /app/node_modules ./node_modules
97101
COPY --from=prod-deps /app/services/data-manager/node_modules ./services/data-manager/node_modules
98-
# The shared @openmapx/hardlinks and @openmapx/motis-feed-proxy-config packages
99-
# ship their TypeScript source directly; tsx/esm (preserved because it's a
100-
# prod dep) transpiles them on import. This matches how apps/api loads its
101-
# dynamic integration code.
102+
# The shared @openmapx/db-schema, @openmapx/hardlinks, and
103+
# @openmapx/motis-feed-proxy-config packages ship their TypeScript source
104+
# directly; tsx/esm (preserved because it's a prod dep) transpiles them on
105+
# import. This matches how apps/api loads its dynamic integration code.
106+
COPY packages/db-schema/ ./packages/db-schema/
102107
COPY packages/hardlinks/ ./packages/hardlinks/
103108
COPY packages/motis-feed-proxy-config/ ./packages/motis-feed-proxy-config/
104109
COPY --from=builder /app/services/data-manager/dist ./services/data-manager/dist
@@ -120,6 +125,6 @@ WORKDIR /app/services/data-manager
120125
EXPOSE 4000
121126
HEALTHCHECK --interval=30s --timeout=5s --retries=3 CMD curl -fs http://localhost:4000/status || exit 1
122127
# `--import tsx/esm` lets the compiled dist entry reach back into
123-
# @openmapx/hardlinks's and @openmapx/motis-feed-proxy-config's .ts source
124-
# without a separate build step.
128+
# @openmapx/db-schema's, @openmapx/hardlinks's, and
129+
# @openmapx/motis-feed-proxy-config's .ts source without a separate build step.
125130
CMD ["node", "--import", "tsx/esm", "dist/index.js"]

0 commit comments

Comments
 (0)