为了账号安全,请及时绑定邮箱和手机立即绑定

将 Go 应用程序部署到 docker 时遇到问题

将 Go 应用程序部署到 docker 时遇到问题

Go
慕尼黑5688855 2022-01-17 18:29:41
,这是我第一次使用 docker 将应用程序打包到容器中。我正在开发应用程序位于目录下的 linux VM:/home/core/app/app-name 在 dir app-name 中有 main.go 程序和 Dockerfile。Dockerfile 包含以下内容:FROM golang:latestRUN mkdir /appADD . /home/core/app/app-nameWORKDIR /app/app-nameRUN go build -o main .CMD ["/app/main"]EXPOSE 8080我尝试从 dir /home/core/app/app-name 运行:docker build -t app-image .但我得到了这个错误:无法加载包:包。:/app/stars-app 中没有可构建的 Go 源文件命令“/bin/sh -c go build -o main.” 返回一个非零代码:1我究竟做错了什么?编辑: 我能够使用 Dockfile 在我的 Windows 机器上构建图像:FROM golang:latestAdd . /app/app-nameEXPOSE 8080CMD ["/app/app-name/main"]通过运行:docker build -t star-image .当我运行“docker images”时,我可以看到图像,但是当我尝试使用以下命令运行它时:docker run -p 3000:8080 --name goapp --rm app-name我收到此错误:docker: Error response from daemon: Container command '/app/app-name/main' not found or does not exist..
查看完整描述

2 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

我也有这个问题,但不知何故基于这个指南,这对我有用。


# ...AS builder ...


FROM golang:1.14

WORKDIR /go/src/app

# In your case, ./main.go or just .

COPY ./server.go .

COPY --from=builder ./app/build .


RUN go get -d -v ./...

RUN go install -v ./...


CMD ["app"]


查看完整回答
反对 回复 2022-01-17
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

这可能对你有用...

  • 图像的 GOPATH 设置为 /go

  • 在 /go/src 下安装你的源代码

  • 假设 gopath 已设置并且源在 GOPATH 内

  • 将工作目录设置为 /app

  • 执行构建,输出应该存在于工作目录中

Dockerfile


FROM golang:latest

ADD ./app /go/src/app

RUN mkdir /app

WORKDIR /app

RUN go build -o main app/app-name

CMD ["/app/main"]

EXPOSE 8080

应用程序/应用程序名称/main.go


package main


import "fmt"


func main() {

    fmt.Printf("hello, world\n")

}

docker build -t app-image .

docker run app-image

输出


hello, world


查看完整回答
反对 回复 2022-01-17
  • 2 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信