登录
首页 >  Golang >  Go问答

如何在 GitHub Actions 中使用 Docker 容器?

来源:stackoverflow

时间:2024-02-07 12:33:21 457浏览 收藏

大家好,今天本人给大家带来文章《如何在 GitHub Actions 中使用 Docker 容器?》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

我正在尝试使用 github 操作设置单元测试工作流程。

有一个单元测试必须使用的 docker 容器。

在我的工作流程中,我提取并运行 docker 映像(在后台),然后运行一个本地 go 应用程序,该应用程序通过与其交互来运行测试。

docker pull xxxx.dkr.ecr.us-west-2.amazonaws.com/my-container
          docker run -d xxxx.dkr.ecr.us-west-2.amazonaws.com/my-container
          sleep 10 # make sure container setup finishes
          docker exec my-container apk add curl
          docker exec my-container curl http://localhost:1234 -I

          go test .

我能够将 docker exec 进入容器并检查它是否运行成功,因此我知道容器实际上正在工作。

单元测试在本地工作,但是在 github 操作中,当尝试连接到 docker 容器时,无论主机名如何,我都会收到来自 go 应用程序的错误:

post "http://127.0.0.1:1234": 拨打 tcp 127.0.0.1:1234: connect: 连接被拒绝

post "http://localhost:1234": 拨打 tcp [::1]:1234: 连接: 连接被拒绝

即使在使用名称运行容器并尝试连接后,我也会收到错误:

post "http://my-container:1234": 拨打 tcp: 查找 my-container: 名称解析暂时失败

我相信更简单的解决方案是使用 github actions services 来运行容器,但是我不知道如何从私有 ecr 中提取。

感谢任何帮助!


正确答案


我发现了我的问题,即使 Dockerfile 中有 EXPOSE,我也需要使用端口标志 docker run -p 1234:1234 ... 运行容器才能从主机访问它。

今天关于《如何在 GitHub Actions 中使用 Docker 容器?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>