背景
最近在看一个Golang
的开源项目,项目中使用到了GORM
但只支持了MySQL
和PostgreSQL
,为了练手尝试添加对SQlite
的支持。
1 | import ( |
编写完代码后在本地go run
运行很正常,但当使用alpine
构建docker
镜像时遇到了问题…
问题
编译会卡在sqlite3
,报错信息为:
1 | 12 73.08 # github.com/mattn/go-sqlite3 |
原因及解决方法
原因是因为官方并没有提供预编译的包,需要自己编译,但是直接编译的话会提示报错,需要在先安装一下g++
。
我们只要在Dockerfile
中添加以下内容:
1 | RUN apk add --no-cache --virtual .build-deps \ |
问题即可解决。
示例
Done.