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

Reply via email to