我目前正在使用 Go 设置 HTTPS 服务器,使用存储在cert.pem
和key.pem
用于开发的自签名签名。每当我在本地运行服务器时,它都能正常工作,允许我连接到我的 HTTPS 服务器。但是,当我构建 Dockerfile 并从那里运行它时,我的浏览器返回此页面:
我一直尝试在 Dockerfile 中使用ADD
和COPY
这两个文件,因为我不确定在构建 Go 项目后它是否被包含在我的 Go 项目中,但每当我尝试构建修改后的 Dockerfile 时,它都会给我一个错误,说它找不到文件。我正在运行的 docker 命令是sudo docker run -p 8080:8080 hxgo-skeleton
。如何将cert.pem
和key.pem
文件添加到我的 Golang Web 服务器的 Dockerfile 中?
Dockerfile
# Build
FROM golang:1.23.3-alpine AS build-env
ENV APP_NAME=hxgo-skeleton
ENV CMD_PATH=cmd/api/main.go
COPY . $GOPATH/src/$APP_NAME
COPY .env $GOPATH/src/$APP_NAME
WORKDIR $GOPATH/src/$APP_NAME
# Building the Go application
RUN CGO_ENABLED=0 go build -v -o /$APP_NAME $GOPATH/src/$APP_NAME/$CMD_PATH
# Run
FROM alpine:3.14
ENV APP_NAME=hxgo-skeleton
COPY --from=build-env /$APP_NAME .
COPY .env .
EXPOSE 8080
CMD ./$APP_NAME