У меня есть программа Golang внутри контейнера докера (я использую Ubuntu 18).Также я использую github.com / glenn-brown / golang-pkg-pcre / src / pkg / pcre для регулярных выражений в своем приложении Golang.Перед использованием этой библиотеки я должен установить libpcre++-dev
следующим образом:
sudo apt-get установить libpcre ++ - dev
Но я использую golang: alpine в моем Dockerfile, и этонет библиотеки 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)