NodeJS Bluez Ubuntu Dockerfile错误

时间:2018-04-24 02:31:20

标签: node.js ubuntu docker

我有一个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

1 个答案:

答案 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