问题遇到的现象和发生背景
Docker执行命令:
sudo ./build_docker.sh
报错,无法成功
运行结果及报错内容
Testing assembler support for CFI directives... yes
Testing linker support for '-no-pie' / '-nopie' option... yes, '-no-pie'
Testing Coq... version 8.16.0 -- UNSUPPORTED
Error: CompCert requires a version of Coq between 8.12.0 and 8.15.2
Testing OCaml... version 4.14.0 -- good!
Testing OCaml native-code compiler... yes
Testing OCaml .opt compilers... yes
Testing Menhir... version 20220210 -- good!
Testing GNU make... version 4.3 (command 'make') -- good!
One or several required tools are missing or too old. Aborting.
==> ERROR: A failure occurred in build().
Aborting...
-> error making: compcert-git
我的解答思路和尝试过的方法
昂,完全没有头绪所以反复执行了./build_docker.sh
还是报同样的错(排除网络问题?
补充
build_docker.sh文件内容如下:
#!/bin/sh
set -e
echo "Building container tagged deaddocker. This will take some time..."
docker build . -t deaddocker
echo "Creating docker volume named deadpersistent..."
docker volume create deadpersistent
echo "Preparing volume..."
docker run -it \
-v deadpersistent:/persistent\
-v $(realpath ./patches/):/patches \
deaddocker \
sudo su -c "cp /patches/patchdb.json /persistent/patchdb.json &&\
mkdir /persistent/logs && mkdir /persistent/compiler_cache &&\
chown dead:dead -R /persistent"
docker run -it \
-v deadpersistent:/persistent\
deaddocker \
sh -c "chmod 770 /persistent/compiler_cache &&\
chmod g+rws /persistent/compiler_cache"
docker run -it \
-v deadpersistent:/persistent\
deaddocker \
sh -c "touch /persistent/casedb.sqlite3"
docker run -it \
-v deadpersistent:/persistent\
deaddocker \
sh -c "cd /persistent && git clone git://gcc.gnu.org/git/gcc.git"
docker run -it \
-v deadpersistent:/persistent\
deaddocker \
sh -c "cd /persistent && git clone https://github.com/llvm/llvm-project"