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

使用前端dockerfile求解失败

简嘉赐
2023-03-14

我对Docker很陌生,尝试用普通html构建Docker图像,但我有一条错误消息,说用前端dockerfile解决问题失败。v0:无法读取dockerfile:open/var/lib/docker/tmp/buildkit-mount602954594/dockerfile:没有这样的文件或目录

我的文件夹目录如下

C:\Users\hailey\Desktop\GitTest
                               |- Dockerfile.txt
                               |- README.md
                               |- testHelloWorld.html

在Dockerfile里面,我有

FROM ubuntu  
WORKDIR C/Users/hailey/Desktop/GitTest
COPY testHelloWorld.html .
EXPOSE 8080
CMD ["html","testHelloWorld.html"]

我做了我的命令docker构建。在目录C:\用户\hailey\桌面\GitTest中。然后得到

[+] Building 0.1s (2/2) FINISHED
 => [internal] load build definition from Dockerfile                                                                                                                           
 => => transferring dockerfile: 2B                                                                                                                                             
 => [internal] load .dockerignore                                                                                                                                              
 => => transferring context: 2B                                                                                                                                               
failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount602954594/Dockerfile: no such file or directory

还有谁知道我做错了什么吗?

共有3个答案

凤修为
2023-03-14

我想在一个答案中总结不同答案中的信息,并添加我自己的经验,从而引出这个问题:

  1. 确保您在运行命令的目录中包含dockerfile(运行lsdir取决于您分别使用Linux或Windows/cmd shell来确定用于构建docker容器的文件是否存在)
  2. Docker将接受至少两个(也许只有两个?)dockerfile的默认名称:dockerfileDockerfile。如果文件名中有其他大写字母,它很可能会失败。还要注意,默认文件名没有文件扩展名(例如,如果您要在记事本中创建文件,它可能是. txt或其他默认扩展名)。这里还有另一个答案,显示了如何在没有记事本文件名的情况下保存它,但您也可以在Linux和Windows命令提示符下分别使用以下命令:
    mvdockerfile.txtdockerfile
    rendockerfile.txtdockerfile
  3. 如果您需要使用不同的名称而不是默认的dockerfile/Dockerfile,那么您可以使用选项-f(链接到文档),该选项声明:

-f、 --Dockerfile的文件字符串名称(默认值为“路径/Dockerfile”)

根据另一个答案,下面是一个如何使用该命令的示例:

  docker build . -f Dockerfile.base -t helloworld

为了将它们结合在一起,构建容器后您不需要再次使用文件名,因此您可以使用以下命令运行它:

docker run --rm -it helloworld
程彭祖
2023-03-14

可以使用-f提供docker文件的文件名。

例如,如果您的docker文件名为Dockerfile。base,按如下方式调用build命令:

docker build . -f Dockerfile.base -t helloworld

然后,可以使用以下命令启动生成映像:

docker run --rm -it helloworld
蒙化
2023-03-14

docker文件的名称没有扩展名,只是Dockerfile大写D小写f

您还可以指定docker文件名,例如docker build-f Dockerfile。如果你想给它起个别的名字

 类似资料:
  • 我试图为我的盖茨比应用程序建立我的Docker形象。每当我运行命令docker build时-t gatsbyapp,它给了我一个错误: 同时,我的Dockerfile如下所示:

  • 鸿蒙arkts 请求失败了 mock 请求地址:https://dummyjson.com/quotes axios 发起请求 官网Http库

  • 错误消息:未能部署“Dockerfile:DockerNew”:com。fasterxml。杰克逊。数据绑定。JsonMappingException:数值(4294967295)超出int的范围(-2147483648-2147483647)在[源:(okio.RealBufferedSource$1);行:8,列:34](通过引用链:com.github.dockerjava.api.mode

  • 我有这个应用程序编写的Golang作为后端和Typescript作为前端。我需要对传输的数据进行加密,所以选择RSA加密,基本步骤如下: *后端* null 如果前端从后端获取jwk 导入 然后导出 将导出的密钥发送回后端 后端将jwk转换回rsa公钥,它等于Redis中保存的公钥 后端接收int数组并将其转换为后,其长度和内容与前端的相等 代码如下: null null

  • 与手上其他项目一样,axios.create的二次封装是一样的,而 API 模块从链式调用改成了单个函数导出调用。 然后,接口调用时出了问题,期望有大佬能够帮忙看看如何解决。 以下是部分代码: 提供项目接口目录:

  • 问题内容: 所有人,我正在尝试将文件从主机持久复制到映像,以便基于该映像启动的每个容器都可以使用这些文件。在debian wheezy 64bit上以virtualbox guest身份运行。 Dockerfile非常简单(安装八度映像): 发出构建命令后,我得到以下跟踪: Docker绝对拒绝将此文件从主机复制到映像中。不用说文件loadjson.m存在(猫显示),我所有更改路径(相对,绝对等)