alpine 编译c语言,docker - 我应该安装什么软件包而不是libpcre ++-dev来在Alpine Golang中使用C代码? - 堆栈内存溢出...

我在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所需)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用docker run命令来运行Alpine Linux的docker容器,并在启动容器时指定您想要连接的端口号。例如,要运行一个名为mycontainer的Alpine Linux容器并将远程端口设置为1234,可以使用以下命令:docker run -p 1234:1234 mycontainer。 ### 回答2: 要在Alpine Linux启动一个可以远程连接的Docker容器,需要执行以下步骤: 1. 首先,确保已经在Alpine Linux安装Docker。可以运行`apk add docker`命令来安装Docker。 2. 接下来,启动Docker守护进程。可以通过运行`service docker start`来启动守护进程。 3. 在Docker守护进程启动后,可以使用`docker run`命令来创建一个运行在Docker容器的实例。为了使容器可以被远程连接,可以添加`-p`参数来指定要映射的端口。例如,可以运行以下命令: ``` docker run -p <host_port>:<container_port> <image_name> ``` 其,`<host_port>`是宿主机上用于远程连接的端口号,`<container_port>`是容器内部应用程序实际运行的端口号,`<image_name>`是要在容器运行的Docker镜像名称。 4. 在Docker容器运行的应用程序实例启动后,可以使用远程连接工具,如SSH或VNC等,连接到Alpine Linux容器。根据连接工具的不同,可以使用容器的IP地址或者宿主机的IP地址连接到容器。 以上步骤完成后,即可在Alpine Linux启动一个可以远程连接的Docker容器。 ### 回答3: 要在Docker启用远程连接,可以按照以下步骤进行操作: 1. 首先,确保已在Docker主机上安装Docker Engine。在Alpine Linux,可以使用以下命令进行安装: ``` apk add docker ``` 2. 安装完成后,启动Docker服务: ``` service docker start ``` 3. 接下来,编辑Docker的配置文件`/etc/docker/daemon.json`,添加以下内容: ``` { "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"] } ``` 这将允许Docker监听来自远程主机的连接请求。 4. 保存并退出编辑器后,重新启动Docker服务以使更改生效: ``` service docker restart ``` 5. 确保防火墙允许连接到2375端口。如果有防火墙配置,请确保允许流量通过。 现在你应该可以远程连接到Docker主机了。可以使用Docker客户端来连接,例如,你可以在另一台主机上运行以下命令: ``` docker -H tcp://<docker-host>:2375 <docker-command> ``` 其`<docker-host>`是Docker主机的IP地址或主机名,`<docker-command>`是你要在Docker主机上执行的命令。 希望这能帮助到你。请注意,在允许远程连接到Docker主机时,请确保采取适当的安全措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值