我在使用Docker构建本地Web服务器时,在访问该服务器的静态文件时遇到问题。我正在使用github.com/xeipuuv/gojsonschema工具包通过使用本地JSON模式文件验证传入的JSON请求
schemaLoader := gojsonschema.NewReferenceLoader("file://C:/Users/user/Workspace/jsonschema.json")
但是当我试图用Docker访问文件时,它说“没有这样的文件或目录”。我正在使用的Docker文件是:
FROM golang:1.17-alpine
WORKDIR /app
COPY go.mod .
COPY go.sum .
COPY jsonschema.json .
RUN go mod download
COPY *.go ./
RUN go build -o /main
EXPOSE 8080
CMD ["/main"]
非常感谢你提前。最好的问候
我尝试将目录更改为,即
schemaLoader := gojsonschema.NewReferenceLoader("file://app/jsonschema.json")
但没有用。
1条答案
按热度按时间9ceoxa921#
您的修复几乎是正确的,但在file://路径中缺少一个/。
Here解释了file:/、file://和file:///之间的区别。
你想要这个:
这意味着:使用文件uri(file://)加载具有绝对路径的文件(/app/jsonschema.json)。