在容器化 CLI 和主机之间共享文件

问题描述 投票:0回答:1

我需要将一个现有的CLI容器化,它也可以读写文件。类似于容器化的cpkubectl 任何其他典型的bash命令。

有什么方法可以包裹docker命令来访问主机系统上的文件?

cat my_wrapper.sh:

#!/bin/sh

docker run --rm -it -v ??? \
    $IMAGE \
    "$@"

有什么方法可以挂载任何东西,比如 my_wrapper.sh 可以读取和写入文件,如 my_wrapper.sh --option /some/file/argument ?

澄清

当然,你可以简单地挂载文件所在的路径,但是这样的话。

  1. 我怎么才能保证参数的正确性?尤其是绝对路径。
  2. 如何避免在命令行中解析出类似文件的名称?
docker containers command-line-interface
1个回答
1
投票

事实上,你可以做一个 装订量:

$ my_wrapper.sh /some/file/argument

my_wrapper.sh的内容。

#!/bin/bash

if [ "$#" -ne 1 ]; then
    echo "Illegal number of parameters"
    exit 1
else
    if [ -f "$1" ]; then
        dir=$(dirname "$1")
    else
        echo "File doesn't exist"
        exit 2
    fi
fi

IMAGE=xxxx

docker run --rm -it -v "$dir":"$dir" \
    "$IMAGE" \
    "$1"
© www.soinside.com 2019 - 2024. All rights reserved.