当前位置: 首页 > 知识库问答 >
问题:

有没有方法用github动作插件docker设置docker构建的路径/build-push-action@v1

董权
2023-03-14

我有一个docker构建操作如下

      - name: build-push
        uses: docker/build-push-action@v1
        with:
          username: ${{ DOCKER_USERNAME }}
          password: ${{ DOCKER_PASSWORD }}
          repository: <repo>
          tags: tag
          push: true
          dockerfile: ./<path-to-dockerfile>/Dockerfile

dockerfile 有将几个文件添加到 docker 镜像的说明,如下所示

ADD file1 .
ADD file2 .
ADD file3 .

GitHub的结构是:

-.github
-folder1------------
                   |
                   folder2-------------
                                       |
               -----------------------docker--------
               |             |           |          |
            file1          file2        file3      Dockerfile

问题是GitHub操作无法找到file1、file2和file3,因为它正在文件夹1的级别中查找。生成的错误是

ADD failed: file not found in build context or excluded by .dockerignore: file1: file does not exist

我不想将dockerfile中的路径修改ADD./folder1/folder2/file1.。那么如何使用docker/build-push-action@v1从GitHub操作部分添加路径或更改目录呢?

共有3个答案

戚森
2023-03-14
      context: "{{defaultContext}}:subdirectory"

https://github.com/docker/build-push-action#git-context

濮书
2023-03-14
- name: Login to Docker Hub
    uses: docker/login-action@v3
    with:
      username: ${{ secrets.DOCKER_USERNAME }
      password: ${{ secrets.DOCKER_PASSWORD }}
  - name: build-push
        uses: docker/build-push-action@v3
        with:
          context: ./folder1/folder2/docker/
          tags: tag
          push: true
          file: ./<path-to-dockerfile>/Dockerfile
桂杰
2023-03-14

不要使用docker/build-push-action@v1,而是使用docker/build-push-action@v2,因为v1是较旧的版本。修改GitHub动作如下

  - name: Login to Docker Hub
    uses: docker/login-action@v1
    with:
      username: ${{ secrets.DOCKER_USERNAME }
      password: ${{ secrets.DOCKER_PASSWORD }}
  - name: build-push
        uses: docker/build-push-action@v2
        with:
          context: ./folder1/folder2/docker/
          tags: tag
          push: true
          dockerfile: ./<path-to-dockerfile>/Dockerfile

在github操作中使用上下文将解决这个问题。上下文仅适用于v2版本。

 类似资料:
  • 我是GitHub操作的新手。我有下面的DockerFile 我正在尝试使用GitHub操作发布Docker,下面是我的操作代码 生成失败,出现以下错误 我假设它无法获取目标文件夹下的jar文件。我是否应该在docker Build之前为Maven Build添加另一个步骤,确保用Jar生成目标文件夹。 我更新了我的操作如下,但仍然存在相同的错误 请参阅我在git上的repo以获取确切代码:http

  • 当我尝试从我的容器内连接到另一个容器的端口时,我不成功并得到, 从docker主持人那里我成功了, 如果我检查iptables,我可以看到问题, 所以我添加了以下内容,一切都很好, 我错过什么了吗? 谢谢

  • Publishes docker containers This Action for Docker uses the Git branch as the Docker tag for building and pushing the container.Hereby the master-branch is published as the latest-tag. Usage Example p

  • 未使用其缓存。 生成与此相同的输出: 我正在修改Dockerfile,在文件末尾添加命令。所以前面的层应该被缓存并且有效。 我有足够的磁盘空间。 有什么想法吗? Docker版本17.06.1-ce,构建874a737 Dockerfile:

  • 我想做我的第一个码头集装箱 我安装了dokcer-ce,遵循ubuntu的docker教程。 我创建一个文件夹,并把我的Dockerfile在它。 在这个文件夹中,我做了一个: 我总是有这样的输出 编辑:我在sshd,没有工作?!

  • 除了没有之外,我似乎可以运行每个docker命令。我注意到这一点是因为在最近的部署过程中,启动服务的脚本突然失败了。该脚本包括以下命令 很长一段时间以来,它一直保持不变,工作没有问题,但显然系统中的某些东西已经改变了。我已经尝试按照Stack Overflow和其他站点上的许多类似问题中概述的步骤,建议的解决方案是将用户添加到docker组并重新启动服务。例如,从Docker自己的论坛。但问题还是

  • Docker编写版本3.0。jar_file参数用于将jar-file复制到docker容器下的spring-boot jar