donglengyuan6826 2016-10-12 16:20
浏览 311
已采纳

Dockerfile中的Protobuf的Go Get错误

Here's my Dockerfile:

FROM golang
RUN apt-get update
RUN go get -u github.com/golang/protobuf/{proto,protoc-gen-go}

This generates this error:

package github.com/golang/protobuf/{proto,protoc-gen-go}: invalid github.com/ import path "github.com/golang/protobuf/{proto,protoc-gen-go}"

But, if I take out that RUN directive, and just load up /bin/bash in the docker container, I can run the go get command just fine.

What's going on?

  • 写回答

2条回答 默认 最新

  • dongxie3352 2016-10-12 17:45
    关注

    It works if I use another shell, like bash, and put double quotes for the go command

    RUN bash -c "go get github.com/golang/protobuf/{proto,protoc-gen-go}"

    By the way, you can do all in only one RUN, see Dockerfiles best practices

    https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?