我在 Dockerfile 中有以下命令。每次创建新图像时都会执行该操作。问题是这个命令失败,因为我有一个 &
在 Xvfb :99 &
.有什么好的解决方法?添加引号没有帮助。
RUN set -ex \
&& apt-get update -yqq \
&& apt-get upgrade -yqq \
&& apt-get install -yqq --no-install-recommends \
python3-pip \
python3-requests \
software-properties-common \
python-software-properties \
xvfb \
&& Xvfb :99 & \
&& export DISPLAY=:99
这是确切的错误:
/bin/sh: 1: Syntax error: "&&" unexpected
最佳答案
当尝试使用后台进程运行多个命令时,您必须将命令和 &
分组。使用 ()
.
所以运行语句应该如下所示。
RUN set -ex \
&& apt-get update -yqq \
&& apt-get upgrade -yqq \
&& apt-get install -yqq --no-install-recommends \
python3-pip \
python3-requests \
software-properties-common \
python-software-properties \
xvfb \
&& ( Xvfb :99 & ) \
&& export DISPLAY=:99
引用:Run multiple commands as bg in Linux
关于docker - 如何使用 "&"创建 Dockerfile 以运行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52323215/