dosubot[bot] commented on issue #7529: URL: https://github.com/apache/incubator-devlake/issues/7529#issuecomment-2134901058
<!-- Greeting --> Hello, @jayadeep-saaslabs! I'm here to assist you with any bugs, questions, or contributions you have. Let me know how I can help you today! <!-- Answer --> To resolve the error related to linking `libgit2.so` when building the backend Docker image, ensure that the `LD_LIBRARY_PATH` environment variable is correctly set to include the directory where `libgit2.so` is installed. This is done in the `devlake-base` stage of your Dockerfile. Here is the relevant part of the Dockerfile that sets up the `LD_LIBRARY_PATH`: ```dockerfile FROM --platform=linux/amd64 debian:bullseye as debian-amd64 RUN apt-get -y update && apt -y upgrade &&\ apt-get install -y libssh2-1-dev libssl-dev zlib1g-dev FROM golang:1.20.4-bullseye as builder # Base dependencies RUN apt-get -y update && apt -y upgrade &&\ apt-get install -y gcc binutils libfindbin-libs-perl cmake libssh2-1-dev libssl-dev zlib1g-dev \ gcc-x86-64-linux-gnu binutils-x86-64-linux-gnu COPY --from=debian-amd64 /usr/include /rootfs-amd64/usr/include COPY --from=debian-amd64 /usr/lib/x86_64-linux-gnu /rootfs-amd64/usr/lib/x86_64-linux-gnu COPY --from=debian-amd64 /lib/x86_64-linux-gnu /rootfs-amd64/lib/x86_64-linux-gnu ## Build libs/headers needed for gitextractor plugin RUN \ mkdir -p /tmp/build/x86_64 && cd /tmp/build/x86_64 && \ wget https://github.com/libgit2/libgit2/archive/refs/tags/v1.3.2.tar.gz -O - | tar -xz && \ cd libgit2-1.3.2 && \ mkdir build && cd build && \ cmake .. -DCMAKE_C_COMPILER=x86_64-linux-gnu-gcc -DBUILD_SHARED_LIBS=ON -DCMAKE_SYSROOT=/rootfs-amd64 -DCMAKE_INSTALL_PREFIX=/usr/local/deps/x86_64 &&\ make -j install &&\ mkdir -p /tmp/deps &&\ cp *libgit2* /tmp/deps/ &&\ cp -r ../include /tmp/deps/include FROM python:3.9-slim-bullseye RUN apt -y update && apt -y upgrade && apt -y install tzdata make tar curl gcc g++ pkg-config git \ libssh2-1 zlib1g libffi-dev \ default-libmysqlclient-dev \ libpq-dev # Install Libs/Headers from previous stage COPY --from=builder /tmp/deps/*.so* /usr/lib/ COPY --from=builder /tmp/deps/*.pc /usr/lib/x86_64-linux-gnu/pkgconfig/ COPY --from=builder /tmp/deps/include/ /usr/include/ ENV PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig # Install Golang RUN curl -L https://git.io/vQhTU | bash -s -- --version 1.20.4 RUN mv /root/go /go &&\ mv /root/.go /usr/local/go &&\ ln -sf /usr/local/go/bin/* /usr/bin # Install Golang Tools RUN export GOPATH=/go && \ go install github.com/vektra/mockery/v2@v2.20.0 && \ go install github.com/swaggo/swag/cmd/swag@v1.16.1 # Golang Env ENV GOPATH=/go # Make sure GOROOT is unset ENV GOROOT= ENV PATH=${GOPATH}/bin:${PATH} # Python Poetry package manager RUN curl -sSL https://install.python-poetry.org | python3 - RUN ln -sf /root/.local/bin/poetry /usr/local/bin ``` Ensure that the `libgit2.so` files are correctly copied from the build stage to the `/usr/lib` directory and that `ldconfig` is run to update the shared library cache. This setup should resolve the linking error for `libgit2.so` <sup>[[1]](https://github.com/apache/incubator-devlake/blob/main/backend/Dockerfile)</sup><sup>[[2]](https://github.com/apache/incubator-devlake/blob/main/devops/docker/lake-builder/Dockerfile)</sup>. <!-- Dosu Comment Footer --> <details open> <summary> #### Details </summary> **About Dosu** This response is meant to be useful and save you time. It is **not meant to be a precise solution**, but rather a starting point for your own research. Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant. </details> *To continue the conversation, mention @dosu.* -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@devlake.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org