【问题标题】:Docker image to pipe std in to an executable to std out将标准输入通过管道传输到标准输出的 Docker 映像
【发布时间】:2022-07-05 19:24:55
【问题描述】:

我需要一个 Docker 映像,其中包含一个 Linux 可执行文件,当像这样运行它时,我可以将输入文件通过管道输入:

docker run --rm -i myContainer < myInputFile > myOutputFile

在我的例子中,它是可执行文件cucumber-json-formatter-linux-386,它将 NDJSON Cucumber 消息转换为 JSON 文件(例如用于Xray)。

【问题讨论】:

    标签: docker cucumber jira-xray


    【解决方案1】:

    假设您已经安装了 Docker,请创建一个文件夹,其中包含以下名为“Dockerfile”的文件:

    FROM ubuntu
    COPY cucumber-json-formatter-linux-386 /bin/cucumber-json-formatter-linux-386
    ENTRYPOINT /bin/cucumber-json-formatter-linux-386
    

    还将二进制文件 (cucumber-json-formatter-linux-386) 复制到同一文件夹中。

    然后 cd 进入该文件夹并像这样构建容器:

    docker build -t cucumber-json-formatter .
    

    现在你可以像这样运行容器了:

    docker run --rm -i cucumber-json-formatter < input.ndjson > output.json
    
    • --rm 参数在使用后删除容器。
    • 需要参数-i 才能正确处理输入(但不确定原因)。

    我在 Windows 主机上试过这个,但在 Linux 上应该也能正常工作。

    【讨论】:

      最近更新 更多