diff --git a/project/server/Dockerfile b/project/server/Dockerfile index ec466df..d92c738 100644 --- a/project/server/Dockerfile +++ b/project/server/Dockerfile @@ -14,12 +14,25 @@ COPY --from=schema . ./ RUN make build -FROM golang:1.25 AS sqlc-builder +FROM --platform=$BUILDPLATFORM golang:1.25 AS sqlc-builder WORKDIR /usr/src RUN git clone --depth=1 https://github.com/OHF-Device-Database/sqlc.git WORKDIR /usr/src/sqlc -RUN go build ./cmd/sqlc +RUN go build -o /usr/bin/sqlc ./cmd/sqlc + +# sqlc emits platform independent typescript +FROM --platform=$BUILDPLATFORM sqlc-builder AS query-builder + +WORKDIR /app + +COPY sqlc.yaml ./ +COPY src/service/database/schema/ ./src/service/database/schema/ +COPY src/service/database/query/ ./src/service/database/query/ + +COPY --from=sqlc-plugin plugin.wasm ./ + +RUN sqlc generate FROM node:24 AS app-builder @@ -39,12 +52,11 @@ COPY --from=schema-builder /schema/out/typescript/categories.ts src/ COPY --from=schema-builder /schema/out/categorized-integrations.json src/ COPY --from=schema-builder /schema/categorization/categories.json src/ -COPY --from=sqlc-builder /usr/src/sqlc/sqlc /usr/bin/ - -COPY --from=sqlc-plugin plugin.wasm . +COPY --from=query-builder /app/src/service/database/query/ src/service/database/query/ -RUN make SQLC_BIN='/usr/bin/sqlc' --file make/common.mk build -RUN make SQLC_BIN='/usr/bin/sqlc' --file make/dev.mk tool +# queries are already generated by `query-builder` and copied in with their mtimes intact +RUN make --file make/common.mk build +RUN make --file make/dev.mk tool RUN npm prune --omit=dev