gpt4 book ai didi

docker - Dockerignore:仅允许从任何子文件夹添加特定扩展名,例如* .json

转载 作者:行者123 更新时间:2023-12-02 19:30:06 24 4
gpt4 key购买 nike

我有一个.dockerignore文件,并且我试图允许Docker仅上传*.json文件,但可以从任何子文件夹上传。

例如,对于下一个文件结构:

public/readme.md
public/subfolder/a.json
public/subfolder/b.json
public/other/c.json
public/other/file.txt

我期望在图像中仅看到json文件:
public/subfolder/a.json
public/subfolder/b.json
public/other/c.json

当然,它们必须位于与原始源相同的目录中。

我尝试了几种方法,但没有成功。

上:我不知道在 public/目录中将创建多少个子文件夹,目录结构的深度。

最佳答案

我认为您可以依靠这样的.dockerignore来实现所需的目标:

public/*
!public/subfolder
public/subfolder/*
!public/other
public/other/*
!**/*.json

棘手的是,此文件的第一行是 public/*,但不是 public也不是 *(否则,后续的 !...行将不起作用)。

还请注意,您可能希望自动生成一个.dockerignore,以应对可能的树结构更改。

例如:

gen-dockerignore.sh



#!/usr/bin/env bash

{ echo '*' ; # header of the .dockerignore - to be changed if need be
find public -type d -exec echo -en "!{}\n{}/*\n" \; ;
echo '!**/*.json' ; } > .dockerignore
$ ./gen-dockerignore.sh将输出以下文件:

.dockerignore



*
!public
public/*
!public/other
public/other/*
!public/subfolder
public/subfolder/*
!**/*.json

关于docker - Dockerignore:仅允许从任何子文件夹添加特定扩展名,例如* .json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52247595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com