编辑 docker run 命令不包含 -v 标志

时间:2021-04-21 21:36:06

标签: docker protocol-buffers

我正在尝试使 grpc-wiremock 的示例工作:本质上就是这个

docker run -p 8888:8888 -p 50000:50000 -v $(pwd)/example/proto:/proto -v $(pwd)/example/wiremock:/wiremock adven27/grpc-wiremock

命令,我想编辑它的 Dockerfile 以避免使用卷,但是当我尝试时:

# https://github.com/Adven27/grpc-wiremock/blob/master/Dockerfile#L12-L13
COPY . /usr/src/java-code/
COPY example/my_proto /usr/src/java-code/proto <--- added line
WORKDIR /usr/src/java-code

然后

➜  grpc-wiremock git:(master) ✗ docker build -t foo . 
➜  grpc-wiremock git:(master) ✗ docker run -it -p 8888:8888 -p 50000:50000 foo

该服务似乎没有选择该 proto 目录:

Registered services:
 * grpc.reflection.v1alpha.ServerReflection
# expected to see some new services

当我执行一个容器时,我可以看到有 proto 目录并且它不是空的但它仍然没有被拾取(我希望它会取代 -v $(pwd)/example/my_proto:/proto):

root@44704a7f07ad:/usr/src/java-code# ls
build  build.gradle  Dockerfile  example  gradle  gradle.properties  gradlew  gradlew.bat  LICENSE  proto  README.md  settings.gradle  src
root@44704a7f07ad:/usr/src/java-code# cd proto/
root@44704a7f07ad:/usr/src/java-code/proto# ls
bar.proto foo_folder_with_other_protos

如何编辑 Dockerfile 以避免完全使用卷?

1 个答案:

答案 0 :(得分:0)

看来我需要添加

COPY example/my_proto /proto # instead of /usr/src/java-code/proto
相关问题