- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让 maven 离线构建在 docker 容器中工作。我已经启用了 buildkit。我跑了mvn dependency:go-offline -s ~/checkouts/settings.xml
缓存 /root/.m2
中的依赖关系的主机。我希望在构建 Maven 项目的容器中使用它。
这是我的 Dockerfile:
#syntax=docker/dockerfile:experimental
FROM maven:3.6.1-jdk-11 AS build
WORKDIR /
COPY . /
RUN --mount=type=cache,target=/root/.m2 mvn -o install
FROM scratch
COPY --from=build /admin/admin-
rest/target/admin-rest.war /webapps/ROOT.war
docker build
这个 Dockerfile,我收到以下错误:
Plugin org.codehaus.mojo:build-helper-maven-plugin:3.0.0 or one of its dependencies could not be resolved: Cannot access central (https://repo.maven.apache.org/maven2) in offline mode and the artifact org.codehaus.mojo:build-helper-maven-plugin:jar:3.0.0 has not been downloaded from it before. -> [Help 1]
Client:
Version: 18.09.6
API version: 1.39
Go version: go1.10.8
Git commit: 481bc77
Built: Sat May 4 02:35:57 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.1
API version: 1.40 (minimum version 1.12)
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:19:41 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.5
GitCommit: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc:
Version: 1.0.0-rc6+dev
GitCommit: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
docker-init:
Version: 0.18.0
GitCommit: fec3683
/root/.m2
从我的主机需要安装到
/root/.m2
在 docker 容器环境中?当我运行
mvn -o install
需要引用挂载的
/root/.m2
?
tail -f /dev/null
,删除了第二个构建阶段并更改了
mvn install
至
mvn version
使用完整的缓存安装指令进行调试。我看到容器内没有任何东西安装到/root/.m2 上。它是空的。 (不确定这是否是调试它的正确方法,因为它可能会在构建镜像后被卸载)
最佳答案
最好想到--mount=type=cache
就像 docker 中的命名卷一样,由 BuildKit 管理,如果 BuildKit 缓存已满或请求修剪,则可能会被删除。下次运行构建时,可能会使用相同的命名卷,从而显着减少下载依赖项所花费的构建时间。虽然非常有用,但这似乎不是您在此处寻找的内容。要使用这样的缓存,您需要包含 go-offline
作为 Dockerfile 中的较早步骤:
#syntax=docker/dockerfile:experimental
FROM maven:3.6.1-jdk-11 AS build
WORKDIR /
# copy just the pom.xml for cache efficiency
COPY ./pom.xml /
# go-offline using the pom.xml
RUN --mount=type=cache,target=/root/.m2 mvn dependency:go-offline
# now copy the rest of the code and run an offline build
COPY . /
RUN --mount=type=cache,target=/root/.m2 mvn -o install
FROM scratch
COPY --from=build /admin/admin-rest/target/admin-rest.war /webapps/ROOT.war
.m2
构建上下文目录中的目录,然后在 Dockerfile 中使用以下行:
RUN --mount=type=bind,source=./.m2,target=/root/.m2,rw mvn -o install
请注意,如果任何依赖项发生更改,Maven 可能会再次尝试通过网络连接。
关于maven - --mount=type=cache 在 buildkit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57581943/
我正在使用 Buildkit 探索 docker 构建过程。在调用 docker build 之前,我通过在 CLI 上设置环境变量 DOCKER_BUILDKIT=1 来启用它。来自 buildki
重新启动 buildkite 代理的命令是什么? 最佳答案 按照默认配置在 Ubuntu 上重新启动 Buildkite 代理应该是: sudo systemctl restart buildkite
我使用 --ssh docker buildkit 功能,它在本地运行良好。 我想在远程服务器上构建 Docker,为此我使用了 -A标记转发我的本地 github key ,例如: ssh -i "
我们有一个 monorepo,里面有 3 个系统。我想为每个系统创建一个单独的构建。 如何仅当特定文件夹中的文件更改时才触发管道? 我们正在使用github steps: - label: 'Li
有 Docker 构建工具包:https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/experimental.md
今天早上我发现了这个适用于 iOS 的自动化工具 here 。它看起来真的很有趣,但不幸的是我在安装它时遇到了这个错误: ERROR: Could not find a valid gem 'bui
我最近听说了 Buildkit,并一直在尝试将它与 Docker 一起使用。 我正在使用DOCKER_BUILDKIT=1 docker 构建。 -t 实验性的构建我的 Dockerfile。 由于缺
我试图让 maven 离线构建在 docker 容器中工作。我已经启用了 buildkit。我跑了mvn dependency:go-offline -s ~/checkouts/settings.x
据我了解: 它们都是构建容器镜像的工具 构建本身在容器中运行 构建可以发生在远程节点上,例如在 Kubernetes 集群 ( Kaniko , BuildKit ) 中 它们都提供高级功能,例如层缓
我试过 export DOCKER_BUILDKIT=1之前 docker-compose build命令,我没有看到预期的 BuildKit 输出。我错过了什么? 最佳答案 对 BuildKit 的
我从文档中得到了这个命令,但我真的不知道如何使用它或者我应该从哪里开始移动,我是 docker 新手,我仍然很难消化概念: $ DOCKER_BUILDKIT=1 docker build . 如何使
我正在尝试使用 builtKit 制作一个简单的图像生成器的原型(prototype)。 , Docker 的新镜像生成器。我没有使用命令行界面,而是使用 client .除了 examples 之外
我最近听说了 Buildkit,并一直在尝试将它与 Docker 一起使用。 我正在使用DOCKER_BUILDKIT=1 docker build . -t experimental构建我的 Doc
我正在使用 Build Toolkit 为每个微服务构建 docker 镜像。 ./build.sh export DOCKER_BUILDKIT=1 # .... docker build -t .
我在让 Windows 构建代理运行构建时遇到问题。代理无法 checkout 我的源代码。 (我使用的是 Windows 10)See GitHub issue 我在运行构建时看到以下错误: Bui
假设我正在使用 Docker Buildkit 构建一个镜像。我的图像来自多级 Dockerfile,如下所示: FROM node:12 AS some-expensive-base-image .
众所周知,您可以运行docker commit针对失败的构建过程拍摄容器快照以进行调试。容器 ID 来自 running in 文本。但是,在 Docker 较新的 BuildKit buildx 发
我有一个正在运行的 Buildkite 管道,但我们最近更改了我们的 git 存储库。如何将新存储库挂接到现有管道? 我知道您可以更改 repo url,但是 webhook url 怎么样? 似乎无
我正在尝试在 Google Cloud Build 上将 BuildKit 与 Docker 一起使用,以便我最终可以使用 --secret 标志。我使用 Build Enhancements for
我正在尝试使用docker的buildkit来缓存两次构建之间的 bundle 安装结果。我正在使用新的RUN mount=type-cache...选项来缓存bunder结果以用于后续构建。但是,似
我是一名优秀的程序员,十分优秀!