【问题标题】:Building docker on yocto在 yocto 上构建 docker
【发布时间】:2017-06-17 23:37:15
【问题描述】:

尝试在 yocto 上构建 docker 时出现以下错误

ERROR: Task 104 (/var/mshehery/Release_7.3/sheheryar/yocto/fido/meta/meta-virtualization/recipes-devtools/go/golang-cross_1.3.bb, do_compile) failed with exit code '1'

我正在使用 yocto 的“fido”分支,元虚拟化和元开放嵌入。谁能详细说明这个问题?

除了上面的错误,我还得到了一些日志数据。我正在发布可能会深入了解问题的部分

日志数据如下:

| DEBUG: Executing shell function do_compile
| GOARCH i586
| CC_FOR_TARGET gcc
| + set -e
| + [ ! -f run.bash ]
| + uname
| + grep gold.* 2\.20
| + ld --version
| + [ -d /selinux -a -f /selinux/booleans/allow_execstack -a -x /usr/sbin/selinuxenabled ]
| + [ -d /sys/fs/selinux -a -f /sys/fs/selinux/booleans/allow_execstack -a -x /usr/sbin/selinuxenabled ]
| + uname -s
| + [ Linux == GNU/kFreeBSD ]
| ./make.bash: 104: [: Linux: unexpected operator
| + rm -f ./pkg/runtime/runtime_defs.go
| + echo # Building C bootstrap tool.
| # Building C bootstrap tool.
| + echo cmd/dist
| cmd/dist
| + cd ..
| + pwd
| + export GOROOT=/var/mshehery/Documents/git/fido/build/tmp/work/x86_64-poky-linux/golang-cross/1.3-r0/go
| + GOROOT_FINAL=/var/mshehery/Documents/git/fido/build/tmp/sysroots/x86_64-linux/usr/lib/i586-poky-linux/go
| + DEFGOROOT=-DGOROOT_FINAL="/var/mshehery/Documents/git/fido/build/tmp/sysroots/x86_64-linux/usr/lib/i586-poky-linux/go"
| + mflag=
| + uname
| + [ Linux == Darwin ]
| ./make.bash: 124: [: Linux: unexpected operator
| + type -t gcc
| + type -t clang
| + [ -z gcc  -a -z -t: not found
| gcc is /usr/bin/gcc -a -n -t: not found
| clang: not found ]
| + gcc -O2 -Wall -Werror -o cmd/dist/dist -Icmd/dist -DGOROOT_FINAL="/var/mshehery/Documents/git/fido/build/tmp/sysroots/x86_64-linux/usr/lib/i586-poky-linux/go" cmd/dist/arm.c cmd/dist/buf.c cmd/dist/build.c cmd/dist/buildgc.c cmd/dist/buildgo.c cmd/dist/buildruntime.c cmd/dist/goc2c.c cmd/dist/main.c cmd/dist/plan9.c cmd/dist/unix.c cmd/dist/windows.c
| + ./cmd/dist/dist env -p
| go tool dist: unknown $GOARCH i586
| + echo FAIL=true
| + eval FAIL=true
| + FAIL=true
| + [ true = true ]
| + exit 1
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /var/mshehery/Documents/git/fido/build/tmp/work/x86_64-poky-linux/golang-cross/1.3-r0/temp/log.do_compile.31971)

【问题讨论】:

  • 好吧,你能给我们错误信息吗?上面这行只告诉我们在编译 go 交叉编译器时出了点问题。
  • @Anders 这是唯一打印的错误消息。但是,我还打印了一个非常冗长的日志数据以及错误。您想看一下日志数据吗?
  • 好吧,你应该发布它,或者至少是日志中显示错误的部分。
  • @Anders 请检查已编辑的帖子。日志数据可能有用。
  • @Anders 我已经添加了整个日志数据。看看你是否能找出问题所在。

标签: linux docker yocto lxc


【解决方案1】:

go tool dist: 未知 $GOARCH i586

这是你的答案。请查看available GOARCH values

如果您需要更多帮助,您需要澄清已使用的 bitbake 参数。还有层/食谱:

bitbake-layers show-layers

【讨论】:

    【解决方案2】:

    当你docker build你得到不同的层次。

    可以运行失败前创建的最后一张图片,例子

    ---> Using cache ---> a03f050edd2f Step 4 : ENTRYPOINT

    在那种情况下

    docker run -it a03f050edd2f bash

    然后发出失败的命令,看看会发生什么

    如果这不是秘密,请发布复制器,Dockerfile..

    【讨论】:

    • 我正在使用 yocto 中的命令 bitbake docker 构建 docker。我需要为嵌入式设备构建 docker。 docker run -it a03f050edd2f bash这个命令不是要求docker已经安装了吗?
    • 是的,你需要安装 docker 才能运行 docker build
    • 我正在尝试通过元虚拟化层构建 docker,该层允许构建基于 OE 的虚拟化解决方案。恐怕我无法在为我的嵌入式设备构建 docker 之前安装它。
    • @user2915097 我相信你没有仔细阅读这个问题。他不是在构建 Docker 映像。他正在构建 docker 本身。
    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 1970-01-01
    相关资源
    最近更新 更多