Dockerignore:忽略除文件和Dockerfile之外的所有内容

ctzwtxfj  于 2023-05-22  发布在  Docker
关注(0)|答案(4)|浏览(340)

因此,主要目的是将一个fat jar应用程序对接并将其放入Elasticbeanstalk中。问题在于背景。如果我只需要一个jar文件,那么在docker中添加这么多上下文是有点愚蠢的。
我一直在玩.dockerignore文件,但我迷路了。我试着用吉蒂格诺尔否定法,但没用。

*
!Dockerfile
*/
!target/
target/*
!target/*.jar

还有正则表达式,但似乎不支持复杂的正则表达式。

^((?!Dockerfile).)*$

我也试过在stackoverflow中搜索,这两个是我找到的:

这个问题可能与第二个问题类似,但我认为它略有不同,因为在这里,我只想在上下文中包含一个文件。
任何帮助将不胜感激。

gc0ot86w

gc0ot86w1#

如果您需要忽略除某些目录或文件之外的所有内容,并且还忽略允许目录中的一些不必要的文件,则可以使用以下.dockerignore文件:

# Ignore everything
*

# Allow files and directories
!/file.txt
!/src

# Ignore unnecessary files inside allowed directories
# This should go after the allowed directories
**/*~
**/*.log
**/.DS_Store
**/Thumbs.db
6mw9ycah

6mw9ycah2#

从dockerfile参考:
除了Go语言的filepath.Match规则,Docker还支持一个特殊的通配符字符串**,它可以匹配任意数量的目录(包括零)。例如,/*.go将排除所有目录中以.go结尾的所有文件,包括构建上下文的根目录。
所以一行只包含
的代码将忽略Dockerfile所在目录下的所有内容。
正如预期的那样,感叹号可以用来引用您希望发送到docker守护程序的任何文件。

axr492tv

axr492tv3#

这听起来可能很奇怪,但如果你只需要一个jar文件,你可以在你的构建系统中创建一个“docker”文件夹,其中包含你的Dockerfile。当你运行构建时,让构建脚本将单个jar文件复制到“docker”中,然后执行docker镜像构建(从“docker”文件夹中),并在完成后推送到你的docker注册表。

sz81bmfz

sz81bmfz4#

下面是一个可用于.dockerignore的示例文件

# Git
.git
.gitignore
.gitattributes

# CI
.codeclimate.yml
.travis.yml
.taskcluster.yml

# Docker
.docker
.dockerignore

# Byte-compiled / optimized / DLL files
**/__pycache__/
**/*.py[cod]

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.cache
nosetests.xml
coverage.xml

# Translations
*.mo
*.pot

# Django stuff:
*.log

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Virtual environment
.venv/
venv/

# PyCharm
.idea

# Python mode for VIM
.ropeproject
**/.ropeproject

# Vim swap files
**/*.swp

# VS Code
.vscode/

*.log

相关问题