我正在尝试在 Docker 容器中运行我的 Go 应用程序,但它失败并给出错误退出代码 1。该应用程序在我的本地机器上运行良好,但在 Docker 中运行不佳。
下面是我的 Dockerfile。
FROM golang:1.8 as goimage
RUN go get -u github.com/golang/dep/cmd/dep
COPY . src/github.com/aditmayapada/tryout
WORKDIR src/github.com/aditmayapada/tryout
ENV PORT 9090
RUN dep ensure
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/main
FROM alpine:3.6 as baseimagealp
RUN apk add --no-cache bash
ENV WORK_DIR=/docker/bin
WORKDIR $WORK_DIR
# RUN mkdir src/github.com/aditmayapada/tryout/bin
# WORKDIR src/github.com/aditmayapada/tryout/bin
COPY --from=goimage /go/src/github.com/aditmayapada/tryout/bin ./
ENTRYPOINT /docker/bin/main
EXPOSE 9090
下面是我想在 Docker 中部署的应用程序存储库 https://github.com/aditmayapada/tryout
我尝试使用 docker events 获取日志,但我只得到了这个 Logs
然后我尝试在 docker 中使用 --logs 但它没有显示任何内容。
我在这里遗漏了什么吗?因为我的应用程序在我的本地机器上运行良好...谢谢。
最佳答案
我简要地查看了您的代码,发现当 connection.Ping()
返回错误时,应用程序可能会完成
https://github.com/aditmayapada/tryout/blob/master/main.go#L44
我建议在此空间中添加一些日志记录以确定退出点。在 docker 中连接到 DB 似乎有问题。
关于docker - 转到 Docker 容器失败 : "Exit Code 1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52818689/