我有一个带有C库依赖项的golang项目(例如pbc)。
我创建一个dockerfile:

 FROM golang:1.9.6-alpine3.7

 RUN mkdir -p /go/src/app

 WORKDIR /go/src/app

 COPY . /go/src/app

 RUN apk add --update git gcc build-base gmp flex bison

 RUN go-wrapper download

 RUN go-wrapper install

 CMD ["go-wrapper", "run", "-web"]

 EXPOSE 8000

但是我不明白如何提供pbc库,因为它是独立库-https://crypto.stanford.edu/pbc/howto.html

另外这个库是动态链接的。
我该怎么办?

最佳答案

添加docker命令以在docker镜像上下载,编译和安装该库。

RUN wget https://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz && \
    tar -xvf pbc-0.5.14.tar.gz && \
    cd pbc-0.5.14 && \
    ./configure --prefix=$HOME/.local && \
    make && make install

RUN rm pbc-0.5.14.tar.gz && rm -rf pbc-0.5.14

这当然是一种非常简单的方法,您需要知道如何对其进行编译以及要使用的自定义标志。

08-27 21:47