我有自己的目录结构:
+projects
+project_1
+project_2
+node
+container_1
-Dockerfile
在我的Dockerfile中,我将project_1
复制到/var/www/project_1
目录,但不幸的是,它没有被复制:
#Dockerfile
FROM node:17
WORKDIR /var/www/project_1
COPY ../../projects/project_1 /var/www/project_1
RUN npm install
CMD ["npm","run","start:dev"]
错误:
=> ERROR [3/4] COPY ../../projects/project_1 /var/www/project_1 0.0s
------
> [3/4] COPY ../../projects/project_1 /var/www/project_1:
------
failed to solve: rpc error: code = Unknown desc = failed to compute cache key: "/projects/project_1" not found: not found
你不能这样做,因为docker创建者希望这样做,作为创建者,他们有很好的理由:简单和或安全。
Docker在构建时将只处理Dockerfile的同一文件夹中的文件或文件夹。
有一些变通方法,比如启动docker build
,并指定Dockerfile在另一个文件夹中的位置。
检查这些答案以获得更多细节:
https://stackoverflow.com/a/53298876/3957754
- https://stackoverflow.com/a/24540011/3957754
在构建时,您不应该依赖于外部文件夹或文件。您必须只需要一个带有一个应用程序源代码的git存储库。这是常见的,广泛使用的,并且与devops兼容。
构建时所需的任何其他依赖性,应由良好的工程部负责:
库:在您的情况下,一个nodejs/npm包是公共的还是私有的
docker基础映像:您可以创建另一个映像所需的文件/文件夹,并使用它继承从acme-base nodejs
或在docker多级要复制的文件应位于Dockerfile目录内,而不是外部(例如父目录)。
+projects
+project_1
+project_2
+node
+container_1
+Dockerfile # <-- move your Dockerfile to your project root.
更新Dockerfile中的文件位置:
...
COPY ./projects/project_1 /var/www/project_1
...
构建将在项目根运行时成功:
docker build-t
我想建立一个Docker图像,包括我的自定义Powershell模块。因此,我使用Microsofts图像,我想从这里创建我自己的图像,其中包括我的psm1文件。 我想把C:\temp\someDirectory中包含的文件复制到docker linux容器中。在构建映像时,我得到以下错误: C:\temp\docker_posh>docker build--rm-f dockerfile-t d
当我用- 我可以通过使用- 我可以看到它位于那里和文件是预期的在终端。
问题内容: 我有一个目录/ a / b / c,其中包含文件和子目录。我需要将/ a / b / c / *复制到/ x / y / z目录中。我可以使用哪些python方法? 我试过了,但是python尝试创建/ x / y / z并引发一个。 问题答案: 我发现此代码有效: 参考: Python 2:https://docs.python.org/2/distutils/apiref.html
我有下面的代码。似乎我不能将类的超类对象放入类型为集合的容器中
我需要在Go中复制一个切片,并读取文档。有一个复制功能可供我使用。 copy内置函数将元素从源片复制到目标片。(作为一种特殊情况,它还会将字节从字符串复制到字节片。)源和目标可能重叠。Copy返回复制的元素数,它是len(src)和len(dst)中的最小值。 但当我这样做的时候: 我的和以前一样是空的(我甚至尝试使用): 你可以去游乐场看看。那么为什么我不能复制一个切片呢?
我正在考虑使用Docker在持续集成(CI)服务器上构建我的依赖项,这样我就不必在代理本身上安装所有的运行时和库。 为了实现这一点,我需要将在容器中构建的构建构件复制回主机中。有可能吗?