如何在Docker容器中运行命令

如何在Docker容器中运行命令,docker,clang,jpeg,Docker,Clang,Jpeg,您好,我正在尝试按照步骤guid在windows上构建jpeg xl I m,并尝试为linux构建x64版本 之后: docker run -u root:root -it --rm -v C:\Users\fred\source\tools\jpegxl\jpeg-xl-master -w /jpeg-xl gcr.io/jpegxl/jpegxl-builder 我已运行容器,但不知道如何在其中运行命令: CC=clang-6.0 CXX=clang++-6.0 ./ci.sh opt

您好,我正在尝试按照步骤guid在windows上构建jpeg xl I m,并尝试为linux构建x64版本

之后:

docker run -u root:root -it --rm -v C:\Users\fred\source\tools\jpegxl\jpeg-xl-master -w /jpeg-xl gcr.io/jpegxl/jpegxl-builder
我已运行容器,但不知道如何在其中运行命令:

CC=clang-6.0 CXX=clang++-6.0 ./ci.sh opt
我尝试了CC=clang-6.0 CXX=clang++-6.0./ci.sh opt,我得到了./ci.sh:没有这样的文件或目录当我这样做时,命令似乎不起作用,它什么也不显示


有人知道如何构建它吗?

确保在容器内启动bash终端:

docker run -u root:root -it --rm -e CC=clang-6.0 -e CXX=clang++-6.0 -v C:\Users\fred\source\tools\jpegxl\jpeg-xl-master -w /jpeg-xl gcr.io/jpegxl/jpegxl-builder /bin/bash
docker运行-it/bin/bash
我相信您的docker run命令中缺少/bin/bash。因此,您正在自己的环境中执行clang命令,而不是容器。

您可以使用-e设置环境变量

范例

-e CC=clang-6.0 -e CXX=clang++-6.0
登录到容器的完整命令:

docker run -u root:root -it --rm -e CC=clang-6.0 -e CXX=clang++-6.0 -v C:\Users\fred\source\tools\jpegxl\jpeg-xl-master -w /jpeg-xl gcr.io/jpegxl/jpegxl-builder /bin/bash

他们已经更新了图像,但没有更新命令,因此命令是无效的

CC=clang-7 CXX=clang++-7 ./ci.sh opt
讨论如下:

您好,它也不起作用,事实上,在我发出命令后,我得到了与您给我的相同的bash终端。同样在docker中,如果单击CLI按钮并键入/bin/bash,我也会显示bash提示符,但我仍然无法运行CC命令,甚至ls也不会显示任何要验证的内容。看起来您正在使用一个应该安装了clang的现有映像。如果在容器cd~中执行以下命令,然后执行find,该怎么办-名字ci.sh?后者将尝试查找要执行的文件。如果执行上面的docker run命令,将得到一个bash提示。如果我执行docker exec-it container\u id bash,我也会得到bash提示符,如果我执行docker run-it/bin/bash,它也会给我bash提示符。如果单击docker中的CLI按钮并键入/bin/bash,也会得到命令提示符。但是在所有这些中,如果我使用CC=clang-6.0 CXX=clang++-6.0./ci.sh opt,我会得到。/ci.sh:没有像我用-e命令尝试的那样的文件或目录,而且似乎clang仍然是未知的clang版本。知道吗?对不起,不知道。也许,文档中有一些错误