在docker 中运行go 编译报 fatal error: wrapper.h: No such file or directory 错误
docker 镜像基于 golang:1.17-alpine
项目中有使用 这个。
/*
#cgo darwin CFLAGS: -I${SRCDIR}/../../../cgo
#cgo darwin LDFLAGS: -L${SRCDIR}/../../../cgo -lpinyin -lstdc++
#cgo linux CFLAGS: -I/tmp/vivipos/cgo
#cgo linux LDFLAGS: -L/tmp/vivipos/cgo -lpinyin -lstdc++
#include "wrapper.h"
*/
gf run main.go
在启动项目的时候会报错
fatal error: wrapper.h: No such file or directory
8 | #include "wrapper.h"
| ^~~~~~~~~~~
compilation terminated.
exit status 2
请问是需要安装什么依赖?
dockerfile 如下
FROM golang:1.17-alpine
ARG TARGETPLATFORM
ARG BUILDPLATFORM
ARG VERSION
LABEL maintainer="lidong@xyhelper.cn"
LABEL org.label-schema.schema-version="1.0"
LABEL org.label-schema.name="golang-app"
LABEL org.label-schema.version=$VERSION
LABEL org.label-schema.build-platform=$BUILDPLATFORM
LABEL org.label-schema.target-platform=$TARGETPLATFORM
# 更换镜像源为 aliyunRUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 安装 Git 和 upx,以及设置时区
RUN apk add --no-cache git tzdata upx bash libc-dev gcc
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && rm -vrf /var/cache/apk/*
ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.cn,direct
RUN mkdir /go/src/gf
COPY gf_linux_arm64 /go/src/gf
RUN cd /go/src/gf &&
chmod +x gf_linux_arm64 &&
./gf_linux_arm64 install -y &&
rm ./gf_linux_arm64
EXPOSE 8080 9111
WORKDIR /opt
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
需要这个文件wrapper.h和引入的go文件同目录
看看是哪个包的报错
RUN apk update && apk add -gcc musl-dev libffi-dev openssl-dev
是不是应该使用arm的镜像?