问题标签 [docker-build]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 使用 Docker 图像/标签添加自定义清单文件
就像我们可以在 Jar 文件中添加我们自己的自定义清单文件一样。有没有办法在 Docker 图像/标签中添加自定义清单。就像如果我想添加一个版本中固定的所有 JIRA id,我可以将它们添加到该标签的清单文件中吗
谢谢, 阿莫尔
python - 使用 PyQt4 库使用 python 应用程序构建 docker 映像
我正在尝试 dockerise 一个小型 python 应用程序。python 代码使用 PyQt4 库。该应用程序有一些我在构建图像时运行的测试单元。类似于以下内容:
python 代码中的 PyQt4 库需要一台 X 服务器来完成它的工作,但 docker 没有,因此,不幸的是,当我构建映像时,我收到以下错误:
在其他类似的堆栈问题上,我发现一个可能的解决方案是简单地将 X 服务器的套接字挂载为 Docker 卷,并告诉 Docker 使用它。
但是如何在图像构建时做到这一点?上述命令仅在映像已经构建时才有效,在 'docker run' 时。此外,如果主机是 aws 实例(因此没有 x 服务器),那会起作用吗?我不这么认为...
docker - 如何在声明性 Jenkins 管道中使用 Docker 的 --cache-from 构建标志?
我正在使用声明性 Jenkinsfile 在 Docker 容器内运行一些阶段。该过程运行良好,但构建时间通常非常慢,因为我们的 CI 有很多从属设备,如果构建发生在没有层缓存的从属设备上,则整个构建需要一段时间。
--cache-from
我已经读过,如果指定了标志,Docker 可以加快构建速度。如何指定缓存来源标志以及外部注册表的 URL 和凭据?
security - 在 docker 1.10 之后有没有办法访问从中间层删除的文件?
在 docker 1.10 之后,docker history
如果您从其他地方拉取图像,则不再显示图像的中间层,而不是在本地构建。
这个 github issue讨论了这个变化,并且还提到使用docker save
and docker load
,你可以利用中间层作为缓存。
这是否意味着,如果构建了一个图像并简单地将其上传到存储库(即没有 tar 文件),那么下载该图像的人就无法恢复中间层?
我特别想知道的是:
像上面这样写Dockerfile,并假设(除非docker中有未知漏洞)这个敏感文件不会被其他人访问,是否可以?
我知道还有其他处理凭据或敏感文件的方法,例如设置本地服务器和RUN wget file && use file && rm file
swarm 的 docker secret,或使用 docker vault。我不是在寻找不同的方法来处理敏感文件;相反,我只是对上述方法是否使文件可访问感兴趣。谢谢!
docker - 在 Jenkins(在 docker 容器中)管道中构建 docker 映像
我使用 docker 容器中的 Jenkins。我想在 Jenkins 管道中构建 docker 映像,但 docker 在这个容器(Jenkins 所在的位置)中不存在。
Docker Compose部署的Jenkins容器,yml文件:
我们可以做些什么来在 Jenkins 管道中构建 docker 镜像?我们可以使用 docker 部署一些 docker 容器并使用一次来构建 docker 映像吗?或者是其他东西?你和他们相处得如何?
编辑:
谢谢@VonC,我检查了你的信息,但是......“权限被拒绝”
Docker撰写文件:
詹金斯文件:
结果:
编辑: “权限被拒绝”的最后一个问题修复了:
工作状态:
呼叫主持人:
Docker撰写文件:
詹金斯文件:
我的决心:
我在 Jenkinsfile 中添加了一些步骤并得到:
docker - 防止 docker 在更改代码后从头开始构建映像
一个docker新手,尝试在docker容器中开发;我有一个问题,每次我对代码进行单行更改并尝试重新运行容器时,docker 都会从头开始重建图像,这需要很长时间;我应该如何正确设置项目以便充分利用缓存?可以肯定的是,只要我对源代码进行一些更改,它就不必重新安装所有apt-get
和pip install
s(顺便说一句,我正在使用 python 开发)。任何人都知道我错过了什么。感谢任何帮助。
我当前的泊坞窗文件:
docker - 如何创建大于 20GB 的 windows docker 镜像?
几天来,我一直在尝试构建一个大型 Windows docker 映像,但在任何地方都找不到解决此问题的答案。
我不是在尝试构建生产容器解决方案。我只是想创建我的服务原型,但在 Windows 容器中运行。问题是我的服务现在依赖于大约 40GB 的数据,并且这些数据是从磁盘读取的。显然,这不是一个很好的方法,在我们可以将服务托管在生产环境中之前,必须对其进行重构。
我只想要一个快速而肮脏的解决方案来构建一个图像,所有这些数据都存储在容器的磁盘上,这样我就可以了解更多关于服务如何在容器内运行的信息。
我的图像结构最终将如下所示:
microsoft/windowsservercore -> mine/data_image -> mine/binary_image
数据.docker文件:
构建命令:
一段时间后,构建失败并显示以下消息:无法复制文件:无法复制目录:写入\?\Volume{8cf8bb9b-c1dd-46a3-b353-3c2198754bf8}\data:磁盘空间不足。
我知道这与 windowsfilter 磁盘驱动程序有关,但我无法在网上找到有关此驱动程序的文档。就好像它不存在一样。
欢迎任何与此问题相关的见解!
docker - 构建Dockerfile时如何使用docker机器的环境变量
创建新映像时,我的 Dockerfile 需要调用 npm install。这也需要在代理后面工作。此时,以下 Dockerfile 代码可以工作:
但是,我希望我可以将 ENV 变量设置为与我设置的 docker-machine 相同
即我希望 npm install 命令使用这些环境变量。这将确保此 Dockerfile 的映像可以在任何具有可用代理设置的环境中构建。
我已经使用命令将创建的机器设置为 env
dockerfile - Dockerfile 构建错误:无法找到
我正在尝试构建以下 Radare2 dockerfile,但我认为我可能有一些格式错误。我似乎无法弄清楚如何正确安装和构建所有内容。任何帮助,将不胜感激。
尝试构建此 dockerfile 时出现以下错误:
docker - 如何在构建时在 docker-compose 中指定 $docker build --network="host" 模式
在构建 docker 映像docker build -t name:tag --network="host"
时,它将在构建期间为 RUN 指令设置网络模式(默认为“默认”)
所以我正在尝试使用 DOKCER-COMPOSE 构建 Docker 映像:
因此,按照上面的撰写文件,我正在尝试构建映像,但是如何在构建时在 docker-compose 中指定 --network="host" 模式