Docker push命令无法找到我的docker文件的实际路径

pftdvrlh  于 2023-08-03  发布在  Docker
关注(0)|答案(1)|浏览(110)

我使用的是docker和github-action标记,因为这些标记似乎是最正确的。我是新来的,如果我能做得更好,请告诉我。
对于我正在学习的课程和将要做的演示,我将使用github-actions将容器推送到Azure,稍后将使用AcrPull执行部署步骤。
要使这些操作生效,这些操作必须正确地找到我设置的路径。
出现路径错误:

unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/runner/work/DockerDeployDemoVS22EntRepo/**DockerDeployDemoVS22EntRepo**/Dockerfile: no such file or directory

字符串
错误:进程已完成,退出代码为1。
没有听到任何从谷歌Git组在这方面的回应,我相信我没有被认真对待。
路径的粗体部分不能包含单词“Repo”,路径必须是...

/home/runner/work/DockerDeployDemoVS22EntRepo/DockerDeployDemoVS22Ent/Dockerfile


......才能让我创造的道路正常运转。事实上,这就是无法找到Docker文件的原因。“
或者,是我的错误?我是否必须不将路径DockerDeployDemoVS 22 EntRepo的“储存库”部分命名为“储存库”?而不命名路径DockerDeployDemoVS 22 Ent的代码部分?
我一定要把路径

/home/runner/work/DockerDeployDemoVS22EntRepo/DockerDeployDemoVS22EntRepo/Dockerfile or /home/runner/work/DockerDeployDemoVS22Ent/DockerDeployDemoVS22Ent/Dockerfile


为了使停靠容器推送(以及随后的拉取和部署)工作?
没有人回答这个问题。似乎用于获取要运行的/home/runner/work/段的路径生成没有获取实际路径,但假设DockerDeployDemoVS 22 EntRepo/DockerDeployDemoVS 22 EntRepo/Dockerfile或DockerDeployDemoVS 22 Ent/DockerDeployDemoVS 22 Ent/Dockerfile将是后面的路径元素。
我说错了吗?如果是这种情况,很容易修复,但我不明白为什么路径构造没有得到实际的路径。
谢谢你,谢谢

gzszwxb4

gzszwxb41#

Github action中Dockerfile的路径通常相对于Github仓库的根目录。在您的错误消息中,您似乎提供了一个绝对路径,这可能会导致一些问题。
根据你的问题,我假设你的仓库结构看起来像这样:

DockerDeployDemoVS22EntRepo
  |__ DockerDeployDemoVS22Ent
        |__ Dockerfile

字符串
在这种情况下,如果你正在定义你的Github操作,并且需要指定Dockerfile的路径,它将是DockerDeployDemoVS22Ent/Dockerfile。这是存储库根目录的相对路径。
因此,在Github操作步骤中,您构建Docker镜像,它看起来像这样:

- name: Build and push Docker images
  uses: docker/build-push-action@v2
  with:
    context: .
    file: DockerDeployDemoVS22Ent/Dockerfile
    push: true
    tags: user/image-name:tag


这应该正确指向您的Dockerfile并解决路径错误。
如果Dockerfile直接位于存储库的根目录下,则只需使用Dockerfile作为路径。
请试试这个,让我知道它是否适合你。如果您仍然遇到问题,请提供有关Github存储库结构和您正在使用的Github操作的更多信息,这可能有助于进一步进行故障排除。

相关问题