dosubot[bot] commented on issue #7529: URL: https://github.com/apache/incubator-devlake/issues/7529#issuecomment-2135201929
<!-- Answer --> To resolve the error related to `libgit2` when building the backend Docker image, ensure that the `libgit2` library is correctly downloaded, built, and installed for the `x86_64` architecture. The provided `Dockerfile` already includes the necessary steps to achieve this. Here is the relevant section of the `Dockerfile` that handles the `libgit2` installation: ```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 ``` This script does the following: 1. Creates a build directory for the `x86_64` architecture. 2. Downloads the `libgit2` source code. 3. Configures the build environment using `cmake` with the appropriate compiler and sysroot for the `x86_64` architecture. 4. Builds and installs `libgit2` to the specified prefix. 5. Copies the built libraries and headers to the final image. Ensure that this section is included in your `Dockerfile` and that the necessary dependencies (`gcc-x86-64-linux-gnu`, `binutils-x86-64-linux-gnu`, `cmake`, etc.) are installed as shown in the `Dockerfile`. If you still encounter issues, verify that the `wget` command successfully downloads the `libgit2` tarball and that the `cmake` and `make` commands complete without errors <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> <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