当使用Ubuntu Docker构建时,出现SIGABRT: abort错误的解决方法
在使用 Docker build 命令时中止操作。
这完全是我的个人备忘录。因为使用了局部解决方法,所以并不推荐作为有效的解决方案。
我遇到了一个以前从未见过的错误。它显示了寄存器的内容,这是一个我从未见过的错误。
free(): invalid pointer
SIGABRT: abort
PC=0x7efdc7a07fb7 m=0 sigcode=18446744073709551610
signal arrived during cgo execution
goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0x4afd50, 0xc420047cc0, 0xc420047ce8)
/usr/lib/go-1.8/src/runtime/cgocall.go:131 +0xe2 fp=0xc420047c90 sp=0xc420047c50
github.com/docker/docker-credential-helpers/secretservice._Cfunc_free(0x8d6da0)
github.com/docker/docker-credential-helpers/secretservice/_obj/_cgo_gotypes.go:111 +0x41 fp=0xc420047cc0 sp=0xc420047c90
github.com/docker/docker-credential-helpers/secretservice.Secretservice.List.func5(0x8d6da0)
/build/golang-github-docker-docker-credential-helpers-cMhSy1/golang-github-docker-docker-credential-helpers-0.5.0/obj-x86_64-linux-gnu/src/github.com/docker/docker-credential-helpers/secretservice/secretservice_linux.go:96 +0x60 fp=0xc420047cf8 sp=0xc420047cc0
github.com/docker/docker-credential-helpers/secretservice.Secretservice.List(0x0, 0x756060, 0xc420078000)
/build/golang-github-docker-docker-credential-helpers-cMhSy1/golang-github-docker-docker-credential-helpers-0.5.0/obj-x86_64-linux-gnu/src/github.com/docker/docker-credential-helpers/secretservice/secretservice_linux.go:97 +0x217 fp=0xc420047da0 sp=0xc420047cf8
github.com/docker/docker-credential-helpers/secretservice.(*Secretservice).List(0x77e548, 0xc420047e88, 0x410022, 0xc4200142e0)
<autogenerated>:4 +0x46 fp=0xc420047de0 sp=0xc420047da0
github.com/docker/docker-credential-helpers/credentials.List(0x756ba0, 0x77e548, 0x7560e0, 0xc42000e018, 0x0, 0x10)
/build/golang-github-docker-docker-credential-helpers-cMhSy1/golang-github-docker-docker-credential-helpers-0.5.0/obj-x86_64-linux-gnu/src/github.com/docker/docker-credential-helpers/credentials/credentials.go:145 +0x3e fp=0xc420047e68 sp=0xc420047de0
github.com/docker/docker-credential-helpers/credentials.HandleCommand(0x756ba0, 0x77e548, 0x7ffc7fd4e79f, 0x4, 0x7560a0, 0xc42000e010, 0x7560e0, 0xc42000e018, 0x40e398, 0x4d35c0)
/build/golang-github-docker-docker-credential-helpers-cMhSy1/golang-github-docker-docker-credential-helpers-0.5.0/obj-x86_64-linux-gnu/src/github.com/docker/docker-credential-helpers/credentials/credentials.go:60 +0x16d fp=0xc420047ed8 sp=0xc420047e68
github.com/docker/docker-credential-helpers/credentials.Serve(0x756ba0, 0x77e548)
/build/golang-github-docker-docker-credential-helpers-cMhSy1/golang-github-docker-docker-credential-helpers-0.5.0/obj-x86_64-linux-gnu/src/github.com/docker/docker-credential-helpers/credentials/credentials.go:41 +0x1cb fp=0xc420047f58 sp=0xc420047ed8
main.main()
/build/golang-github-docker-docker-credential-helpers-cMhSy1/golang-github-docker-docker-credential-helpers-0.5.0/secretservice/cmd/main_linux.go:9 +0x4f fp=0xc420047f88 sp=0xc420047f58
runtime.main()
/usr/lib/go-1.8/src/runtime/proc.go:185 +0x20a fp=0xc420047fe0 sp=0xc420047f88
runtime.goexit()
/usr/lib/go-1.8/src/runtime/asm_amd64.s:2197 +0x1 fp=0xc420047fe8 sp=0xc420047fe0
goroutine 17 [syscall, locked to thread]:
runtime.goexit()
/usr/lib/go-1.8/src/runtime/asm_amd64.s:2197 +0x1
rax 0x0
rbx 0x7ffc7fd4e000
rcx 0x7efdc7a07fb7
rdx 0x0
rdi 0x2
rsi 0x7ffc7fd4dd90
rbp 0x7ffc7fd4e100
rsp 0x7ffc7fd4dd90
r8 0x0
r9 0x7ffc7fd4dd90
r10 0x8
r11 0x246
r12 0x7ffc7fd4e000
r13 0x1000
r14 0x0
r15 0x30
rip 0x7efdc7a07fb7
rflags 0x246
cs 0x33
fs 0x0
gs 0x0
Sending build context to Docker daemon 8.704kB
产生的原因
以下是所写的内容。
在使用Docker构建过程中出现奇怪的错误 · 问题 #103 · docker/docker-credential-helpers
除了在Ubuntu上安装compose会引入golang-docker-credential-helpers依赖项并触发问题开始出现之外,我认为没有其他链接指向docker-compose。使用dpkg -r –force-depends命令移除凭据助手软件包可以解决这个问题,并且使docker-compose正常工作。为了更实用的解决方法,可以通过pip或Docker文档站点上的脚本进行安装。
这似乎是由以下包引起的错误。
问题#1792824“golang-docker-credential-helpers是不必要的依赖项”:错误:docker-compose软件包:Ubuntu
解决方案 (jiě jué àn)
由于`dpkg`命令在我的环境中无法正常工作,所以我使用了`pip3`。
因为这只是一个练习用的虚拟环境,所以解决方法比较粗糙。不建议采用这种方式。
sudo apt-get purge docker-compose
sudo apt-get autoremove
sudo apt-get install python3-pip
## ここからが雑な解決法
# pip自身をアップデート
sudo pip3 install -U pip
# パッケージを一括アップデート
pip list --outdated | tail -n +3 | awk '{print $1}' | xargs sudo pip install -U
# docker-composeをインストール
sudo pip3 install docker-compose
请参照以下内容。
使用pip批量更新Python模块的方法。