From a022b864acb42cf7108031893ed9430cffe9db1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20M=C3=B3ricz?= Date: Tue, 29 Jul 2025 21:10:42 +0200 Subject: [PATCH] fix(go): experiment: build go lib in the final container --- apps/api/.dockerignore | 1 + apps/api/Dockerfile | 32 +++++++++++++++++++------------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/apps/api/.dockerignore b/apps/api/.dockerignore index 679a66475..f69501003 100644 --- a/apps/api/.dockerignore +++ b/apps/api/.dockerignore @@ -2,3 +2,4 @@ /dist/ .env *.csv +sharedLibs/**/*.so \ No newline at end of file diff --git a/apps/api/Dockerfile b/apps/api/Dockerfile index 103f53a7f..a3910adf0 100644 --- a/apps/api/Dockerfile +++ b/apps/api/Dockerfile @@ -13,16 +13,6 @@ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-l FROM base AS build RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install && pnpm run build -# Install Go -FROM golang:1.24 AS go-base -COPY sharedLibs/go-html-to-md /app/sharedLibs/go-html-to-md - -# Install Go dependencies and build parser lib -RUN cd /app/sharedLibs/go-html-to-md && \ - go mod download && \ - go build -o html-to-markdown.so -buildmode=c-shared html-to-markdown.go && \ - chmod +x html-to-markdown.so - # Install Rust FROM rust:1-slim AS rust-base COPY sharedLibs/html-transformer /app/sharedLibs/html-transformer @@ -47,13 +37,29 @@ RUN cd /app/sharedLibs/crawler && \ FROM base COPY --from=build /app/dist /app/dist COPY --from=prod-deps /app/node_modules /app/node_modules -COPY --from=go-base /app/sharedLibs/go-html-to-md/html-to-markdown.so /app/sharedLibs/go-html-to-md/html-to-markdown.so COPY --from=rust-base /app/sharedLibs/html-transformer/target/release/libhtml_transformer.so /app/sharedLibs/html-transformer/target/release/libhtml_transformer.so COPY --from=rust-base /app/sharedLibs/pdf-parser/target/release/libpdf_parser.so /app/sharedLibs/pdf-parser/target/release/libpdf_parser.so COPY --from=rust-base /app/sharedLibs/crawler/target/release/libcrawler.so /app/sharedLibs/crawler/target/release/libcrawler.so -# Install git -RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/* +# Install Go, Git, and CGO build tools +RUN apt-get update && \ + apt-get install -y wget git build-essential && \ + wget https://go.dev/dl/go1.24.5.linux-amd64.tar.gz && \ + rm -rf /usr/local/go && \ + tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz && \ + rm go1.24.5.linux-amd64.tar.gz && \ + rm -rf /var/lib/apt/lists/* + +# Add Go to PATH +ENV PATH="/usr/local/go/bin:${PATH}" +ENV CGO_ENABLED=1 + +# Build Go HTML-to-MD library +RUN cd /app/sharedLibs/go-html-to-md && \ + ls -la && \ + go mod download && \ + go build -o html-to-markdown.so -buildmode=c-shared html-to-markdown.go && \ + chmod +x html-to-markdown.so # Start the server by default, this can be overwritten at runtime EXPOSE 8080