使用 docker 构建时出现 pkg_config_path 错误

Posted

技术标签:

【中文标题】使用 docker 构建时出现 pkg_config_path 错误【英文标题】:pkg_config_path error on building with docker 【发布时间】:2018-05-04 13:29:42 【问题描述】:

当我通过 docker 为我的 Go 应用程序构建映像时,我收到以下错误:

# pkg-config --cflags oci8

在 pkg-config 搜索路径中找不到包 oci8。 也许您应该添加包含 `oci8.pc' 的目录 到 PKG_CONFIG_PATH 环境变量 找不到包“oci8” pkg-config: 退出状态 1

我也在我的 Dockerfile 中设置了环境变量。但问题仍然存在。 我的 Dockerfile 是:

*FROM golang:1.9
ARG app_env
ENV APP_ENV $app_env
ENV GOPATH /home/nupur/mapi-go
ENV PKG_CONFIG_PATH /home/nupur/mapi-go
ENV ORACLE_HOME /usr/include/oracle/11.2/client64
ENV LD_LIBRARY_PATH /usr/lib/oracle/11.2/client64/lib
WORKDIR /home/nupur/mapi-go/src/DockerApp/blDocker
ADD . .
RUN go build /home/nupur/mapi-go/src/DockerApp/blDocker/launch.go
ENTRYPOINT ["./launch"]
EXPOSE 8093*

请提出解决方案。

【问题讨论】:

【参考方案1】:

我不确定你是否解决了这个问题,因为这个问题两年前就被问过了...... 在您的 Dockerfile 中,您已经设置了 PKG_CONFIG_PATH,但是在设置 WORKDIR 之后,您使用了 ADD 命令,因此您将不包括 PKG_CONFIG_PATH 的文件添加到您的 WORKDIR。我认为您应该将ls 用于您的PKG_CONFIG_PATH,以查看是否退出了任何名为oci8.pc 的文件。在这种情况下,我建议使用COPY 命令专门将oci.pc 移动到PKG_CONFIG_PATH

【讨论】:

以上是关于使用 docker 构建时出现 pkg_config_path 错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 docker-compose 构建容器时出现“php_network_getaddresses:getaddrinfo failed:Temporary failure in name reso

在ARM Docker容器中构建OPENCV时出现问题

构建 docker 映像时出现问题,运行 dotnet restore:VS2019 中的“No such host is known”,Windows

使用 spring 和 docker 引发运行时异常时出现 cors 问题

使用 rust 二进制文件运行 docker 映像时出现权限被拒绝错误

在 ac-docker win10 中编译时出现构建错误,要求重建已编译的标头,因为自预编译标头以来文件已被修改