Go语言 如何通过Docker访问Web服务器构建的静态文件

tquggr8v  于 2023-01-18  发布在  Go
关注(0)|答案(1)|浏览(149)

我在使用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")

但没有用。

9ceoxa92

9ceoxa921#

您的修复几乎是正确的,但在file://路径中缺少一个/。
Here解释了file:/、file://和file:///之间的区别。
你想要这个:

schemaLoader := gojsonschema.NewReferenceLoader("file:///app/jsonschema.json")

这意味着:使用文件uri(file://)加载具有绝对路径的文件(/app/jsonschema.json)。

相关问题