相关疑难解决方法(0)

standard_init_linux.go:228: exec 用户进程导致:CGO 项目上没有这样的文件或目录

我有一个引用 C 库的 Go 服务,在尝试运行我的 docker 映像时收到以下错误:

standard_init_linux.go:228: exec user process caused: no such file or directory

这不是standard_init_linux.go:190: exec 用户进程导致“没有这样的文件或目录”的重复 - Docker,因为我没有带有 CR 行结尾的入口点 shell 脚本。该网站上的其他一些人建议CGO_ENABLED=0在编译时进行设置,但我当然不能这样做,因为这是一个 CGO 项目。

C 库安装在和/usr/local/lib/sgp4目录下,其中包含一堆 .so 文件。Linux/IFORTLinux/GFORTRAN

环境变量 LD_LIBRARY_PATH 设置为 /usr/local/lib/sgp4/Linux/IFORT。

在我的项目中,有一组包装器.h文件,CGO注释如下:

去设置

我的 Dockerfile 如下:

FROM [redacted]/alpine-base:3.17

RUN apk update && \
    apk add curl jq

COPY etc/cfg/propagator.properties /usr/local/[redacted]/etc/cfg/
COPY bin/sgp4 /usr/local/[redacted]/bin/sgp4
COPY propagator/wrappers /usr/local/[redacted]/bin/wrappers

# Download library files
RUN mkdir -p /usr/local/sgp4/lib
RUN curl --output /usr/local/sgp4/lib/SGP4.tar …
Run Code Online (Sandbox Code Playgroud)

c go cgo docker dockerfile

5
推荐指数
1
解决办法
231
查看次数

标签 统计

c ×1

cgo ×1

docker ×1

dockerfile ×1

go ×1