我有一个docker文件应该构建一个容器来运行一个简单的蓝牙扫描程序,该程序用nodejs编写,依赖于bluez,Ubuntu和Noble.js,但是当我运行它时,我得到以下错误阻止我建立运行docker build -t
时的容器。这是Dockerfile。而错误,
48 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
wget: invalid option -- 'f'
wget: invalid option -- 's'
Usage: wget [OPTION]... [URL]...
Try `wget --help' for more options.
The command '/bin/sh -c apt-get update && apt-get install -y vim python3 python3-dev python3-pip python3-virtualenv python3-wheel gcc build-essential libglib2.0-dev libbluetooth-dev libboost-python-dev git libdbus-1-dev libudev-dev libical-dev libreadline-dev wget curl --no-install-recommends && wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.49.tar.xz tar -xf bluez-5.49.tar.xz cd bluez-5.49 ./configure make make install curl -sL https://deb.nodesource.com/setup_9.x -o nodesource_setup.sh bash nodesource_setup.sh apt-get update && apt-get install -y apt-get install nodejs ln -s /usr/bin/nodejs /usr/bin/node rm -rf /var/lib/apt/lists/*' returned a non-zero code: 2
答案 0 :(得分:0)
请查看以下部分,尤其是首次调用tar的地方:
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.49.tar.xz tar -xf bluez-5.49.tar.xz cd bluez-5.49 ./configure make make install curl -sL https://deb.nodesource.com/setup_9.x -o nodesource_setup.sh bash nodesource_setup.sh apt-get update && apt-get install -y apt-get install nodejs ln -s /usr/bin/nodejs /usr/bin/node rm -rf /var/lib/apt/lists/*
在一行上连续执行多个命令时,需要将这些命令与&&
之类的运算符分开。
&&
运算符将运行命令,但仅在第一个成功||
运算符将运行命令,但仅在第一个命令失败时才会运行;
运算符将运行命令,无论第一个成功还是失败此外,您的命令中有一个迷路apt-get install
,很可能是复制/粘贴错误。上面的部分应如下所示:
wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.49.tar.xz && tar -xf bluez-5.49.tar.xz && cd bluez-5.49 && ./configure && make && make install && curl -sL https://deb.nodesource.com/setup_9.x -o nodesource_setup.sh && bash nodesource_setup.sh && apt-get update && apt-get install -y nodejs && ln -s /usr/bin/nodejs /usr/bin/node && rm -rf /var/lib/apt/lists/*
作为补充说明,ln -s /usr/bin/nodejs /usr/bin/node
可能是不必要的并且会导致错误,因为nodejs包已经显示为创建/usr/bin/node
。