我在Docker容器中有一个Golang程序(我使用Ubuntu 18)。 在使用此库之前,我应该这样安装libpcre++-dev :
须藤apt-get install libpcre ++-dev
但是我在Dockerfile中使用了golang:alpine,而这在alpine软件包中不是libpcre++-dev库。
我应该安装什么软件包而不是 libpcre++-dev ?
ps我试图安装libc6-compat , pcre pcre-dev , libpcrecpp但我看到此错误:
github.com/glenn-brown/golang-pkg-pcre/src/pkg/pcre /go/pkg/mod/github.com/glenn-brown/golang-pkg-pcre@v0.0.0-20120522223659-48bb82a8b8ce/src/ pkg / pcre / pcre.go:52:10:致命错误:pcre.h:没有这样的文件或目录#include ^ ~~~~~~~编译终止
我的Dockerfile:
FROM golang:alpine
RUN apk update
RUN apk upgrade
RUN apk add --update --no-cache build-base gcc g++ pcre pcre-dev libc6-compat
# Install git + SSL ca certificates.
# Git is required for fetching the dependencies.
# Ca-certificates is required to call HTTPS endpoints.
RUN apk update && apk add --no-cache curl git ca-certificates tzdata \
&& update-ca-certificates 2> /dev/null || true
我以这种方式构建应用程序:
- CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -ldflags="-w -s" -o bin/backend ./cmd/backend/main.go
编辑
我已经更改了Dockerfile(在下面添加行)
RUN apk add --update --no-cache build-base gcc g++ pcre pcre-dev libc6-compat
现在我有一个新错误:
加载共享库libpcre.so.1时出错:没有这样的文件或目录(/ bin / backend所需)