【发布时间】:2020-09-29 03:30:37
【问题描述】:
我正在尝试将主机中的 aws 路径发送到将在 docker 容器中运行的 jenkins。因此,我下载了 jenkins 映像,并尝试在 jenkins 管道中使用 aws cli 命令来构建 nodejs 应用程序,然后将其部署到 s3 存储桶。对于我需要通过 docker 运行的 jenkins 映像中的 aws cli。据我所知,一旦你在 docker 容器中运行任何图像,那么它本身就是一个单独的环境,所以詹金斯不会知道我在我的 mac 中安装了 aws,除非我在我的 mac 中发送它的 aws 地址,这就是我正在尝试处理
-v $(which aws): $(which aws)
命令。
docker run -d -p 8080:8080 -p 50000:50000 -v ~/jenkins_directory:/var/jenkins_home -v $(which aws):$(which aws) jenkins/jenkins:2.190.2
但是在我在命令行中运行这个容器后,它会显示以下错误响应
docker:来自守护程序的错误响应:安装被拒绝: 路径 /usr/local/bin/aws 不从 OS X 共享,也不为 Docker 所知。
根据我在 stackoverflow 中找到的一些答案,我尝试在 Docker 文件共享面板中添加 aws 的地址。当我在docker中添加aws的地址时,再次显示
路径 /usr 由 Docker 保留,但可以导出特定的子目录。
我已经能够解决这个问题。我尝试添加整个
usr/local/bin/aws
在 docker 文件共享面板中,但仍然显示相同的问题。有谁知道我们可以做些什么其他事情来将我的本地容器中的 aws 地址发送到我试图在 docker 容器中运行的 jenkins 映像?
【问题讨论】:
-
目前还不清楚您要达到的目标。请在您的问题中添加更多详细信息。具体来说,“向 Jenkins 发送 aws 地址”是什么意思? Docker 的
-v src:dst(==--volume=src:dst) 将主机 (src) 上的卷(目录)挂载到容器(也在主机上运行)目录 (dst) 中。我怀疑这不是你想要的。要将配置数据(例如地址)传递给容器,您可以使用环境变量(即docker run ... --env=ADDR=${ADDR} ...,其中ADDR是环境变量名称,${ADDR}是它的值),但图像必须预期这一点。
标签: macos amazon-web-services docker jenkins