如何解决需要指导创建临时 docker 容器以在主机上生成文件
我想创建一个可以读取名为 helloworld.proto 的文件并运行命令的 docker 容器
protoc --dart_out=grpc:lib/src/generated -Iprotos protos/helloworld.proto
容器将从所有依赖项开始,并使用主机可访问的 gRPC 生成所需文件。这可以实现吗?
解决方法
如果您的进程的主要目标是从主机系统读取文件并将文件写回主机系统,您会发现直接在主机系统上运行该进程而不涉及 Docker 会容易得多。
原则上您可以使用 Docker bind mounts 使主机目录对容器可见。但是,特别是对于一次性命令,启动容器所需的命令行长度将比您尝试运行的命令的长度长:
sudo \ # docker run can take over the host so root is required
docker run \
--rm \ # delete the container when done
-v "$PWD:/data" \ # make host directive visible to container
-w /data \ # make mounted directory current working directory
-u $(id -u):$(id -g) \ # write files as current host user
some-image-containing-protoc \
proton --dart-out=grpc:lib/src/generated -Iprotos protos/helloworld.proto
通常只需一个命令 (sudo apt-get install protobuf-compiler
,brew install protobuf
) 即可在您的主机系统上全局安装 protoc
,这通常更易于管理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。