【发布时间】:2019-06-11 14:34:26
【问题描述】:
我在一台 linux 机器上有两个 docker 镜像。一个是运行 jenkins,另一个是 nodejs 服务。 jenkins 已连接到 gitlab 帐户,因此在我的管道中使用
git branch: 'master', credentialsId: '6bc7-41b5-a1d9-2583489ad967', url: 'https://gitlab.com/myservice'
每次构建项目时,我的主机文件夹 jenkins_home/workspace/MyJenkinsItem/myservicerepo 中都有最新的 git 版本。具有 jenkins 的 docker 映像使用以下命令运行:
docker run --rm -d --name jenkins -v $MYPATH/jenkins/jenkins_home:/var/jenkins_home -p 8081:8080 -p 50000:50000 jenkins/jenkins:lts
在主机的 nodejs 项目中,我有一个 bash 脚本,它将文件从 jenkins_home/workspace/MyJenkinsItem/myservicerepo(主机)复制到我选择的文件夹(例如 /mypath/nodejs)。然后它通过使用 Dockerfile 构建一个 docker 镜像并运行我想要的服务。
我想做的是从詹金斯自动化这个过程。这意味着每次我从我的 jenkins 容器构建 jenkins 管道时,我都必须访问 /mypath/nodejs 中的脚本并在另一个容器中运行 /mypath/nodejs 中的所有项目。
我不确定我该怎么做。我尝试的是复制
docker run --rm -d --name jenkins -v $MYPATH/nodejs/jenkins-script.sh:/var/scripts/jenkins-script.sh -v $MYPATH/jenkins/jenkins_home:/var/jenkins_home -p 8081:8080 -p 50000:50000 jenkins/jenkins:lts
但我有一个 jenkins 错误,即 jenkins_script.sh 在容器中找不到特定文件夹。好像我必须在我的 jenkins 容器中安装 nodejs 的所有内容并从那里实例化 nodejs 容器?
提前致谢
【问题讨论】:
-
你看过这篇关于在 docker 中运行 CI 的帖子吗,jpetazzo.github.io/2015/09/03/…?
-
我发现了类似的东西,建议安装 docker 命令,即。 docker run -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker。但是,由于没有足够的权限,我的权限被拒绝