docker - 如何使用 "&"创建 Dockerfile 以运行命令?

标签 docker dockerfile

我在 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/

相关文章:

docker - 在 Debian 8 上启动 Docker : No Sockets Found

docker - 如何使用主机网络进行docker compose?

docker - 如何在Docker sh入口点修复 'Permission denied'

docker - 无法将 github 公共(public)存储库克隆到 Dockerfile 的运行顺序中

python - 错误: can't chdir to 'app' when using docker start container

docker - Dockerfile:有什么方法可以从.env文件读取变量

docker - 无法停止或终止 Docker 镜像

r - 构建 Docker 镜像并指定端口后,Shiny 应用程序未显示

index.html 中的 Docker Swarm 服务发现

docker - 操作方法 : Dockerfile layer(s) reuse/reference