2017-05-27 153 views
0

我尝试在ubuntu上构建v8(使用docker,因为我的开发环境没有root权限)。在Ubuntu上构建v8(docker)

我尝试按照这里https://github.com/v8mips/v8mips/wiki/Get-the-code

的指令,我可以得到depot_tools但是当我运行fetch v8,我得到以下错误:

Error: Command '/usr/bin/python v8/third_party/binutils/download.py' 
    returned non-zero exit status 1 in /home 
Traceback (most recent call last): 
    File "/home/depot_tools/fetch.py", line 300, in <module> 
    sys.exit(main()) 
    File "/home/depot_tools/fetch.py", line 295, in main 
    return run(options, spec, root) 
    File "/home/depot_tools/fetch.py", line 289, in run 
    return checkout.init() 
    File "/home/depot_tools/fetch.py", line 132, in init 
    self.run_gclient(*sync_cmd) 
    File "/home/depot_tools/fetch.py", line 76, in run_gclient 
    return self.run(cmd_prefix + cmd, **kwargs) 
    File "/home/depot_tools/fetch.py", line 66, in run 
    return subprocess.check_output(cmd, **kwargs) 
    File "/usr/lib/python2.7/subprocess.py", line 574, in check_output 
    raise CalledProcessError(retcode, cmd, output=output) 
subprocess.CalledProcessError: Command '('gclient', 'sync', '--with_branch_heads')' 
    returned non-zero exit status 2 

做谁知道可能是什么问题?这里是我的Dockerfile

FROM ubuntu:latest 
RUN apt-get update 
RUN apt-get install -y git 
RUN apt-get install -y python 
WORKDIR /home 
RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 
ENV PATH /home/depot_tools:"$PATH" 

然后,我docker run -it v8build(泊坞窗图像的名称)运行泊坞窗和运行fetch v8

编辑(把版本信息):

  • Ubuntu的:16.04
  • git:2.7.4
  • python:2.7.12

回答

0

我已经弄清楚是什么问题,这里是答案。希望有人能够从中受益。

事实证明,您可以运行fetch -n v8来查看将要运行的所有命令。和命令如下:如由错误输出描述的gclient sync --with_branch_heads发生

fetch -n v8 
Running: gclient root 
Running: gclient config --spec 'solutions = [ 
    { 
    "url": "https://chromium.googlesource.com/v8/v8.git", 
    "managed": False, 
    "name": "v8", 
    "deps_file": "DEPS", 
    "custom_deps": {}, 
    }, 
] 
' 
Running: gclient sync --with_branch_heads 
cd /home/x/v8 
Running: git submodule foreach 'git config -f $toplevel/.git/config submodule.$name.ignore all' 
Running: git config --add remote.origin.fetch '+refs/tags/*:refs/tags/*' 
Running: git config diff.ignoreSubmodules all 

该错误。

我一个一个地运行命令来手动复制该过程,以便可以打印出运行fetch v8隐藏的消息。 而错误原来是ubuntu:latest泊坞窗图像没有lbzip2

安装可解决问题。

更新Dockerfile

FROM ubuntu:latest 
RUN apt-get update 
RUN apt-get install -y git python lbzip2 && apt-get clean 
WORKDIR /home 
RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 
ENV PATH /home/depot_tools:"$PATH" 
RUN cd /home && fetch v8 

旅程继续...