我想在Golang项目中使用sqlite3。但是在Docker容器中运行它会出现一些错误。Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub
这是我的构建脚本
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main main.go
我无法在Mac电脑中使用CGO_ENABLED=1。
FROM golang:1.13-alpine
ENV WORK_DIR=/go
ENV TIME_ZONE=Asia/Singapore
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
WORKDIR $WORK_DIR
RUN mkdir -p logs
COPY main .
COPY config.conf .
COPY basic.db ./data
COPY db db
ENTRYPOINT ./main -c config.conf
如何在docker容器中使用sqlite3如何构建CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o main main.go
Golang项目
2条答案
按热度按时间xxhby3vn1#
@LinPy谢谢你的帮助。
https://www.x-cellent.com/blog/cgo-bindings/
我解决了问题。但是构建需要很长时间,大约10分钟,我仍然在寻找更好的解决方案。
镜像Dockerfile:https://github.com/sillyhatxu/alpine-build
6kkfgxo02#
使用正确的映像构建