Warm tip: This article is reproduced from serverfault.com, please click

go-静态页面上的Golang Server 404

(go - Golang Server 404 on Static Pages)

发布于 2020-11-29 19:56:25

我正在编译的Golang服务器上工作,该服务器显示主页,上传页面和文件存储库。它还可以将文件上传到其后端。目的是将其放入容器中并使用。

代码:https//github.com/thatMacAdmin/go-webserver

如果我在本地计算机上执行以下操作: go run webserver.go

然后它按预期工作。/static/index.html载入页面我可以上传文件等(只要存储库位于正确的位置)。但是,当我构建它并将其放在docker容器中时,回购文件列表有效,并且上载终结点存在,但是两个静态html页面均出现404错误。

我究竟做错了什么?为什么http:// localhost:8080不能在容器中显示我的主页,但是它可以与go run方法一起使用?

谢谢,埃德

Questioner
Edward S.
Viewed
0
Edward S. 2020-12-18 12:33:55

这里的问题是,/除非另行说明,否则Docker将其用作相对路径。在这种情况下,我的代码期望相对路径是服务器二进制文件所在的位置。就我而言:

/server

在我的Dockerfile中正确设置WORKDIR选项可以解决此问题。

例子:

FROM alpine:latest
RUN mkdir -p /server/static
COPY webserver /server
COPY static /server/static
WORKDIR /server
ENTRYPOINT ["/server/webserver"] 
EXPOSE 8080