我有一个带有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
这当然是一种非常简单的方法,您需要知道如何对其进行编译以及要使用的自定义标志。