我有这个Dockerfile:
FROM ubuntu:18.04
ENV KERNEL /kernel-git
ENV IMAGEDIR /buildroot-git
ENV SYZKALLER /syzkaller-git
ENV SYZKALLER_WORKDIR /syzkaller_workdir
ENV SYZKALLER_DIR $SYZKALLER/gopath/src/github.com/google/syzkaller/
ENV SYZKALLER_BIN $SYZKALLER/gopath/src/github.com/google/syzkaller/bin/
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR .
COPY rootfs.ext3 /buildroot-git/rootfs.ext3
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
apt-get -y install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu && apt-get -y install vim subversion snapd build-essential flex bison libc6-dev libc6-dev-i386 \
linux-libc-dev libgmp3-dev libmpfr-dev libmpc-dev git debootstrap qemu-system-aarch64 wget sed make binutils gcc g++ bash patch gzip bzip2 perl tar cpio unzip rsync file bc wget git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
RUN DEBIAN_FRONTEND=noninteractive wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-VERSION.tar.xz
RUN DEBIAN_FRONTEND=noninteractive apt update && apt -y install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu golang-go && DEBIAN_FRONTEND=noninteractive mkdir $KERNEL && tar -xf linux-VERSION.tar.xz -C $KERNEL && cd $KERNEL/linux-VERSION && \
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make defconfig && \
sed -i '/CONFIG_KCOV=/d' .config && \
sed -i '/CONFIG_KCOV /d' .config && \
sed -i '/CONFIG_KASAN_INLINE=/d' .config && \
sed -i '/CONFIG_KASAN_OUTLINE=/d' .config && \
sed -i '/CONFIG_KASAN_OUTLINE /d' .config && \
sed -i '/CONFIG_KASAN_INLINE /d' .config && \
sed -i '/CONFIG_KASAN_INLINE=/d' .config && \
sed -i '/CONFIG_KASAN=/d' .config && \
sed -i '/CONFIG_KASAN /d' .config && \
sed -i '/CONFIG_DEBUG_INFO=/d' .config && \
sed -i '/CONFIG_DEBUG_INFO /d' .config && \
sed -i '/CONFIG_KCOV_INSTRUMENT_ALL=/d' .config && \
sed -i '/CONFIG_KCOV_INSTRUMENT_ALL /d' .config && \
sed -i '/CONFIG_DEBUG_FS=/d' .config && \
sed -i '/CONFIG_DEBUG_FS /d' .config && \
sed -i '/CONFIG_NET_9P=/d' .config && \
sed -i '/CONFIG_NET_9P /d' .config && \
sed -i '/CONFIG_NET_9P_VIRTIO=/d' .config && \
sed -i '/CONFIG_NET_9P_VIRTIO /d' .config && \
sed -i '/CONFIG_CROSS_COMPILE=/d' .config && \
sed -i '/CONFIG_CROSS_COMPILE /d' .config && \
sed -i '/CONFIG_CMDLINE=/d' .config && \
sed -i '/CONFIG_CMDLINE /d' .config && \
sed -i '/CONFIG_HAVE_ARCH_KASAN=/d' .config && \
sed -i '/CONFIG_HAVE_ARCH_KASAN /d' .config && \
sed -i '/CONFIG_CONSTRUCTORS=/d' .config && \
sed -i '/CONFIG_CONSTRUCTORS /d' .config && \
sed -i '/CONFIG_VMAP_STACK=/d' .config && \
sed -i '/CONFIG_VMAP_STACK /d' .config && \
sed -i '/CONFIG_STACKDEPOT=/d' .config && \
sed -i '/CONFIG_STACKDEPOT /d' .config && \
sed -i '/CONFIG_KASAN_EXTRA=/d' .config && \
sed -i '/CONFIG_KASAN_EXTRA /d' .config && \
sed -i '/CONFIG_TEST_KASAN=/d' .config && \
sed -i '/CONFIG_TEST_KASAN /d' .config && \
sed -i '/CONFIG_STACKDEPOT=/d' .config && \
sed -i '/CONFIG_STACKDEPOT /d' .config && \
sed -i '/CONFIG_STACKTRACE=/d' .config && \
sed -i '/CONFIG_STACKTRACE /d' .config && \
printf 'CONFIG_KCOV=y\nCONFIG_KASAN=y\nCONFIG_KASAN_INLINE=y\nCONFIG_HAVE_ARCH_KASAN=y\nCONFIG_DEBUG_INFO=y\nCONFIG_CMDLINE="console=ttyAMA0"\nCONFIG_KCOV_INSTRUMENT_ALL=y\nCONFIG_DEBUG_FS=y\nCONFIG_NET_9P=y\nCONFIG_NET_9P_VIRTIO=y\nCONFIG_CROSS_COMPILE="aarch64-linux-gnu-"\nCONFIG_CONSTRUCTORS=y\nCONFIG_VMAP_STACK=y\nCONFIG_STACKDEPOT=y\nCONFIG_KASAN_EXTRA=y\n# CONFIG_KASAN_OUTLINE is not set\nCONFIG_TEST_KASAN=m\n#CONFIG_STACKTRACE is not set\n' >> .config && \
yes | make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- oldconfig && \
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j$(nproc) && \
mkdir $SYZKALLER && cd $SYZKALLER \
mkdir gopath && \
export GOPATH=`pwd`/gopath && \
export PATH=$GOPATH/bin:$PATH && \
go get -u -d github.com/google/syzkaller/prog && \
cd $SYZKALLER/gopath/src/github.com/google/syzkaller/ && \
make && printf '{\n "name": "QEMU-aarch64",\n "target": "linux/arm64",\n "http": ":56700",\n "workdir": "$SYZKALLER_WORKDIR",\n "syzkaller": "$SYZKALLER/gopath/src/github.com/google/syzkaller/",\n "image": "$IMAGEDIR/rootfs.ext3",\n "procs": 8,\n "type": "qemu",\n "vm": {\n "count": 1,\n "qemu": "qemu-system-aarch64",\n "cmdline": "console=ttyAMA0 root=/dev/vda",\n "kernel": "$KERNEL/arm64/boot/Image",\n "cpu": 2,\n "mem": 2048\n }\n}\n' >> $SYZKALLER/gopath/src/github.com/google/syzkaller/arm64.conf && \
./syzkaller-git/gopath/src/github.com/google/syzkaller/bin/syz-manager -config $SYZKALLER/gopath/src/github.com/google/syzkaller/arm64.conf如您所见,我正在编译一个go应用程序。当我尝试运行最后一个命令时,它失败了,并显示以下错误:
/bin/sh: 1: /syzkaller-git/gopath/src/github.com/google/syzkaller/bin/syz-manager: not found我已经检查了文件是否真的存在,它确实存在。我试着上网找,但没什么用。我还尝试将此特定命令从单行RUN命令中分离出来,但无济于事。
发布于 2020-05-13 21:16:33
您已经位于此路径$SYZKALLER/gopath/src/github.com/google/syzkaller/
Dockerfile
cd $SYZKALLER/gopath/src/github.com/google/syzkaller/ && \并且您正在尝试访问该路径中的文件
./syzkaller-git/gopath/src/github.com/google/syzkaller/bin/syz-manager看起来您需要将上面的内容更新为绝对路径,或者使用下面的命令
./bin/syz-managerhttps://stackoverflow.com/questions/61773171
复制相似问题