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

使用生成上下文和Dockerfile文件夹中的文件从任意文件夹合成

齐典
2023-03-14

我想编写一个服务,同时保持项目的文件结构整洁。但是Docker似乎在构建上下文之外的路径上有问题。我正在创建一个包,并想将所有与Docker相关的东西保存在项目根目录下的文件夹中。但是我找不到从docker-composeDockerfile引用项目文件的方法。创建容器时,必须复制项目中的文件。

这是我目前的项目结构:

root/
    docker/
        docker-compose.yml
        Dockerfile
        docker_resource.txt
        config
    src/
        project-files.whatever
    root-files.txt

现在,如果我$cd docker$docker-composing up,我尝试了两种可能性。要么我的Dockerfile使用COPY复制文件... /path/in/container,要么撰写文件具有构建指令,例如:

x-build: &my-build
    context: ..
    dockerfile: docker/Dockerfile

第一种方法不起作用。显然Dockerfile不能引用构建上下文之外的任何内容。第二种方法似乎可行,但只有在我从docker\u资源编辑复制命令之后。txt到docker/docker\u资源。txt。理想情况下,我希望保留从构建docker的能力/docker并保持整洁-不必担心Dockerfile中的组成上下文。这可能吗?

至少,我在寻找一种方法,将docker相关文件放在任意文件夹中,并且能够在撰写文件中指定构建上下文,而无需进行其他更改。

共有1个答案

邵飞鸿
2023-03-14

您需要处理src/project文件。不管怎样,就像一个自给自足的最小构建。我会在src里面放一个Dockerfile。它应该被视为项目的一部分,并且应该针对它。不过,您仍然需要编辑copy命令。

root/
    docker/
        docker-compose.yml
        docker_resource.txt
        config
    src/
        project-files.whatever
        Dockerfile
    root-files.txt

无论如何,您都希望将compose和Dockerfile以及资源分开。根据docker\u资源中的内容,您可能希望将其移动到src中。将图像视为程序本身,没有配置。我建议把资源/配置放在一个卷中,这样你就不必每次修改都从头开始重建。

另一种方法是将Dockerfile放在上面一层,并允许您的root作为构建上下文。在这种情况下,您的结构将是这样的:

/root
    Dockerfile
    docker-compose.yml
    docker_resource.txt
    config
    src/
        project-files.whatever
    root-Files/
        root-files.txt

不确定你是否喜欢。

 类似资料:
  • 问题内容: 我尝试解压缩150个zip文件。所有zip文件都使用不同的名称,它们都分散在一个大文件夹中,该文件夹分为许多子文件夹和子子文件夹。我想将每个存档提取到与原始zip文件名相同名称的单独文件夹中,与原始zip文件位于同一位置。我的代码是: 我运行代码后,什么都没有发生。在此先感谢您的任何帮助。 问题答案: 更新: 最后,这段代码对我有用:

  • 获取指定的文件或文件夹,每次一个。 Loop, FilePattern [, IncludeFolders?, Recurse?] 参数 FilePattern 单个文件或文件夹的名称或者通配符模式,例如 C:\Temp\*.tmp。如果未指定绝对路径则假定 FilePattern 在 %A_WorkingDir%。 支持星号和问号作为通配符使用. 当模式出现在文件的长/普通名称或其 8.3 短名

  • 问题内容: 现在,我正在使用Pyinstaller。我有一个脚本,可以从img文件夹中获取图像。 我生成.exe的脚本是 问题是仅生成.exe文件,但整个文件夹/ img被忽略。 问题:为了自动获取.exe文件+ / img文件夹,我需要在上一行中添加哪种附加语法? 更新12/18/2013 我的意思是:执行pyinstaller.py脚本并包含所有参数后,我必须在/ dist文件夹中看到:.ex

  • 试图从我的构建中提取文件夹,但以下操作不起作用: 有什么想法吗?

  • 我如何下载到我的笔记本电脑通过终端使用“wget”或python或任何相关的东西。

  • 我从我的IntelliJ Java 15 Gradle项目的resources文件夹中的子文件夹加载文件时遇到问题...