【问题标题】:Create Docker Image From Github and Publish to Hub从 Github 创建 Docker 镜像并发布到 Hub
【发布时间】:2022-01-31 07:51:47
【问题描述】:

我的 github 存储库链接是 https://github.com/ferdasonmez/oyente。我分叉了一个 github 站点,并对一些 lib 版本进行了 sme 更改。现在我想把它推送到 Docker。我已经在我的 docker 帐户下创建了一个存储库。 ferdaozdemir/oyente

使用下面的 yml 文件,我正在尝试创建图像,但没有任何反应。我已经在 Github 设置下创建了 Docker 的秘密。这可以通过分叉存储库并输入您自己的秘密轻松地重新创建。

name: Build Docker Container Image
on: push
jobs:
  build-container:
    name: Build container
    runs-on: ubuntu-latest
    steps:
      - name: Push to Docker Hub
        uses: docker/build-push-action@v1
        with:
          username: ${{ secrets.DOCKER_USER_NAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}
          repository: ferdaozdemir/oyente
          tags: latest

【问题讨论】:

    标签: docker github github-actions


    【解决方案1】:

    您可能缺少步骤。我有一些具有类似设置的存储库(顶级目录中的Dockerfile),但我也运行步骤

    • 结帐
    • build(我现在使用 buildx)
    • 登录 Docker Hub
    • 构建和推送
    • 还报告和提交时间戳(强制缓存更改)

    我在下面包括其中之一(来源是here。它可能不是最小的设置,但它对我来说非常可靠,包括通过预定( cron)操作。我在这里跳过最后两项(完整文件请参阅here):

    name: docker
    on:
      push:
      schedule:
      - cron: "22 2 * * 1"
        
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
        - name: Checkout
          uses: actions/checkout@v2
    
        #- name: Set up QEMU
        #  uses: docker/setup-qemu-action@v1
    
        - name: Buildx
          uses: docker/setup-buildx-action@v1
    
        - name: Login
          uses: docker/login-action@v1
          with:
            username: ${{ secrets.DOCKER_USERNAME }}
            password: ${{ secrets.DOCKER_PASSWORD }}
            
        - name: Build and push
          uses: docker/build-push-action@v2
          with:
            context: .
            push: true
            tags: rocker/drd:latest
    

    【讨论】:

    • 我更新了工作流文件
    • 太棒了。如果您发现答案有帮助,请随意赞成(点击向上的三角形)或接受(点击您是 OP 看到的刻度线),因为这就是 SO 倾向于传播业力的方式。
    • 现在,我收到此错误:buildx failed with: error: failed to solve: failed to parse stage name "CLI": invalid reference format: repository name must be smallcase
    • 你有什么想法吗?
    • 我可以向你保证(我的仓库中的操作的公共日志也会显示)是它对我有用。如果您的Dockerfile 不同,您需要找出原因和方式。提示:context: . 已经指定了顶级Dockerfile。登录已经发生。我不使用repository,而是使用tags 来表示目标repo,tags 应该是owner/repository:tag
    猜你喜欢
    • 2021-09-30
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    相关资源
    最近更新 更多