gpt4 book ai didi

docker - 在Docker环境中使用命令行应用程序的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-02 20:21:01 25 4
gpt4 key购买 nike

为了撰写通过端口(-p 5000:5000)通过网络公开的服务,docker提供了各种帮助(例如docker-compose)。
我正在寻找的是一种在Docker容器中提供某些二进制应用程序作为服务的方法。例如:

  • 编译器(例如gcc)
  • 生成器(例如用于 Protocol Buffer )
  • ...

  • 运行一个命令

    我当前的方法是有一个小的shell脚本来传递参数,并负责映射当前目录:
    runbox(){
    current_dir=${PWD##*/}
    docker run --rm -it \
    -v ${PWD}:/home/dev/${current_dir} \
    -w /home/dev/${current_dir} \
    box:latest \
    /bin/bash -c "$@"
    }

    使用它看起来像这样:
    runbox "g++ --version"

    与本地运行相比:
    g++ --version

    编写多个命令

    现在让我们说我有这样的服务,如何将它们全部组合成可以在另一个容器中使用的方式(例如在ci上运行)?
                                 Services running
    in Docker containers
    +---------------------+
    | | +---------+
    | CI Docker Container +-----> | gcc |
    | | +---------+
    | |
    | make +-----> +---------+
    | | | protoc |
    | | +---------+
    +----------------+----+
    | +---------+
    +----------> | clang |
    +---------+

    经常调用命令的开销又如何呢?

    最佳答案

    只要CI允许您(通过套接字或端口)访问docker引擎,它是否在容器中运行都没有关系。

    如果您正在使用make并从容器中运行项目任务,则可能对dobi感兴趣。这是一种针对您所描述的内容而设计的工具。您可以定义用于构建项目的图像,容器,安装架等。

    您可以像运行make目标(dobi <taskname>)一样运行每个任务。您可以为gcc,protoc,clang等执行一项任务。

    关于docker - 在Docker环境中使用命令行应用程序的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38567407/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com