【问题标题】:GNU parallel to keep docker-compose in attached modeGNU 并行保持 docker-compose 处于附加模式
【发布时间】:2016-02-28 23:21:10
【问题描述】:

我正在尝试使用 GNU 并行运行一堆 docker-compose 命令。但由于某种原因,它看起来像是在分离模式下启动 parallel force docker-compose,所以我不能再访问容器输出了。

我希望parallel 只是保持连接docker-compose 并在处理完成后按顺序打印输出。

这是我的命令

echo 'tests/test_foo.py' | parallel -X docker-compose --project-name bar run --rm test py.test $*

有没有办法强制docker-compose 保持连接状态?

【问题讨论】:

  • 我不知道 docker-compose,但这可能取决于是否有终端。可以试试parallel --tmux吗?

标签: docker docker-compose gnu-parallel


【解决方案1】:

run 没有分离模式,它应该始终将日志行打印到终端。这似乎对我来说只需要一行输入。

但是,计算容器名称是不恰当的,因此尝试像这样运行多个实例可能会导致名称冲突错误。您可能需要使用--name 作为run 的选项来为每个选项设置一个唯一名称。

您也可以考虑使用 pytest-xdist 在单个 test 容器内并行运行测试。

【讨论】:

    【解决方案2】:

    除了dnephin's answer,您可以使用parallel 的位置参数命名每个容器,这样就不会出现命名争用

    echo -e "1\ttest1\n2\ttest2\n3\ttest3" | parallel -X --colsep '\t' docker-compose run --name proj{1} web echo {2}
    

    在此演示中,制表符用于分隔第一个字段(用于名称)和第二个字符串用于命令。

    您需要使用来自tests/test_foo.py 的现有字段作为名称,或者如果您在该文件中的内容不是唯一的,则添加此附加信息。

    【讨论】:

      猜你喜欢
      • 2016-11-27
      • 1970-01-01
      • 2016-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多