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/[email protected] && \
go install github.com/swaggo/swag/cmd/[email protected]
# 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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]