apt install gccgo-go不会在Docker映像构建中安装ggcgo,但是在从映像容器运行时会安装D3。
我有一个Ubuntu20.04Docker映像,我创建它是为了测试我编写的一些简单的Go应用程序。当我在构建映像时apt install golang-go和gccgo-go包时,构建完成时不会出现错误。但是当我打开并附加到一个容器并尝试用go build -compiler gccgo构建我的Go应用程序时,我会发现一个错误,没有找到gccgo。当我尝试which gccgo时,它什么也不返回,即没有安装gccgo可执行文件。然后,当我从容器中运行apt install -y gccgo-go时,安装就完成了,我可以使用gccgo可执行文件成功构建和运行应用程序。
我的项目是这里 on GitHub。Dockerfile是这里,Go源代码树启动这里。我在macOS 11.3.1上运行Desktop 3.3.1,并使用这个序列构建Ubuntu映像并附加到容器上:
docker system prune -adocker compose builddocker compose up -ddocker compose exec ubuntu bash在为这个问题收集数据时,我在构建Docker映像时意外地安装了包gccgo而不是ggcgo-go。这实际上是在我启动容器时在映像中安装了gccgo可执行文件。它甚至成功地“构建”了go/sieve,但是这是一个实用程序包,所以它只是验证包是可构建的。当我试图构建go/app2时,编译器失败了,因为它需要go v1.16 ( golang-go安装的go为1.13)。显然,golang-go只应该与'gccgo-go, not gccgo. also found a golangpackage but that is also v1.3, not the v1.6 thatgccgo‘要求配对。
总之,apt install gccgo-go在映像构建中不工作,但在图像容器中工作。
我不知道这是不是问这个问题的合适地方,但它似乎是一个好的起点。谢谢你能帮我的忙。
https://askubuntu.com/questions/1336831
复制相似问题