gpt4 book ai didi

sqlite - 是否可以通过 docker golang :alpine image? 构建静态 sqlite Go 应用程序

转载 作者:数据小太阳 更新时间:2023-10-29 03:12:18 25 4
gpt4 key购买 nike

我正在尝试构建我的应用程序,其中包含 docker 的 go-sqlite3。

主.go

package main

import (
"database/sql"

_ "github.com/mattn/go-sqlite3"
)

func main() {
sql.Open("sqlite3", "test.db")
}

docker 文件

FROM golang:alpine
RUN apk add --no-cache git
RUN apk add --no-cache sqlite-libs sqlite-dev
RUN apk add --no-cache build-base
WORKDIR /go/src/app
COPY *.go ./
RUN go-wrapper download
RUN go-wrapper install

我使用此命令将编译后的程序复制到我的主机操作系统 (Arch Linux)。

docker build -t mygo .
docker run --rm -v $$PWD:/usr/src/app mygo /bin/cp /go/bin/app /usr/src/app

问题是编译后的程序缺少动态库

$  ldd app
...
libc.musl-x86_64.so.1 => not found

我期待的样子

$  ldd app
not a dynamic executable

最佳答案

引用how to create a statically linked golang executable with go 1.5+

将 Dockerfile 的 go-wrapper install 行更改为

RUN go-wrapper install -ldflags "-linkmode external -extldflags -static"   

关于sqlite - 是否可以通过 docker golang :alpine image? 构建静态 sqlite Go 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48144135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com