#container #run-command #container-image #running #wrapper #opinionated #directory

app container-run

用于在容器中运行命令的具有偏见的包装器

10 个不稳定版本 (3 个破坏性更新)

0.6.0 2022年12月31日
0.5.0 2022年11月11日
0.4.1 2022年9月16日
0.4.0 2022年5月3日
0.3.1 2021年12月27日

#241配置

Download history 2/week @ 2024-03-10 54/week @ 2024-03-31

每月75次下载

GPL-3.0-or-later

25KB
391

container-run

container-run 是一个用于在容器中运行命令的具有偏见的包装器。container-run 自动关联目录与容器镜像以及工作目录,以便在容器内运行命令。

如何使用 container-run

container-run 二进制程序会尝试在路径中查找容器引擎(首先 podman,然后 docker),然后运行命令后面的任何参数(例如 container-run /bin/run --this=stuff --inside=container)在具有当前目录挂载并具有读写权限的容器中运行。这样,可以使用容器环境在宿主文件系统上读取和写入文件,同时配置文件组织常见的容器选项。

安装

使用 cargo 从 crates.io 安装。

  1. cargo安装 container-run

创建配置文件

在以下三个位置之一创建一个文件

  • ./.container-run.conf
  • ~/.container-run.conf
  • ~/.config/container-run/container-run.conf
{
    "basenames": {
        "myproject": {"profile": "golang-github"}
    },
    "profiles": {
        "golang-github": {
            "image": "docker.io/library/golang:1.16",
            "mountpoint": "/go/src/github.com/{basename}"
        }
    }
}

有关更多信息,请参阅 container-run.conf 文档

调用 container-run

通常,container-run 用于在构建了所有必要构建工具的容器范围内执行面向软件开发的命令。

更改目录到您要在容器内执行命令的路径,并通过在命令前添加 container-run 来执行命令(例如 $ container-run make test build)。

示例用法

/home/me/myproject 的工作目录中,并使用配置文件部分中的配置文件,运行命令 container-run make test 将执行以下操作

  • 确定要使用的容器引擎(podman 或 docker)
  • 启动运行容器
    • 使用图像 docker.io/library/golang:1.16
    • 将主机目录 /home/me/myproject/ 挂载到容器中,作为 /go/src/github.com/myproject
    • 将容器中的工作目录设置为 /go/src/github.com/myproject
    • 执行命令 make test
  • 将执行传递给容器引擎进程,这将将从其运行的shell返回所有输出和状态

启用调试日志

要启用将调试日志打印到终端,并创建一个本地的 container-run.log 文件,在执行之前在您的shell中设置环境变量 CONTAINER_RUN_VERBOSITY=debug

依赖关系

~4.5MB
~89K SLoC