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

huangapple go评论76阅读模式
英文:

How to access static file for webserver build via docker

问题

我在使用Docker构建本地Web服务器时遇到了访问静态文件的问题。我正在使用github.com/xeipuuv/gojsonschema工具包,通过本地的JSON模式文件验证传入的JSON请求,代码如下:

schemaLoader := gojsonschema.NewReferenceLoader("file://C:/Users/user/Workspace/jsonschema.json")

但是当我尝试在Docker中访问该文件时,显示"没有该文件或目录"。我使用的Dockerfile如下:

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")

但没有起作用。

英文:

I am having an issue with accessing a static file for my local webserver when I am building it with docker. I am using the github.com/xeipuuv/gojsonschema tool kit for validating incoming json request with a local json schema file via

schemaLoader := gojsonschema.NewReferenceLoader("file://C:/Users/user/Workspace/jsonschema.json")

But when I am trying to access the file with docker it says "no such file or directory". The Dockerfile I am using is:

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"]

Thank You very much in advance.
Best regards

I tried changing the directory to, i.e.

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

but it didn't help.

答案1

得分: 1

你的修复方法几乎正确,但是在 file:// 路径中缺少一个斜杠。

这里有一个解释 file:/、file:// 和 file:/// 之间的区别。

你需要这样写:

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

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

英文:

Your fix is nearly correct but you are missing a single / in the file:// path.

Here is an explanation of the difference between file:/, file://, and file:///.

You want this:

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

which means: use the file uri (file://) to load file with absolute path (/app/jsonschema.json).

huangapple
  • 本文由 发表于 2023年1月17日 04:58:14
  • 转载请务必保留本文链接:https://go.coder-hub.com/75139633.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定