jenkinsci/docker-安装的库不会在重建中持久化
我正在为一个laravel项目在服务器上设置一些构建自动化 使用命令jenkinsci/docker-安装的库不会在重建中持久化,docker,jenkins,Docker,Jenkins,我正在为一个laravel项目在服务器上设置一些构建自动化 使用命令dockerrun-p8080:8080-p50000:50000-vjenkins_home:/var/jenkins_home jenkins/jenkins:lts,一切正常启动,我创建管理员登录,创建项目并将所有这些链接在一起 昨天,我将库下载到这个命令在docker中提供给我的容器中,使用docker exec-u 0-it/bin/bash以root身份进入容器,安装php、composer、noodejs/npm等
dockerrun-p8080:8080-p50000:50000-vjenkins_home:/var/jenkins_home jenkins/jenkins:lts
,一切正常启动,我创建管理员登录,创建项目并将所有这些链接在一起
昨天,我将库下载到这个命令在docker中提供给我的容器中,使用docker exec-u 0-it/bin/bash
以root身份进入容器,安装php、composer、noodejs/npm等内容。完成后,我构建了项目,并获得了成功构建
今天,我使用上面相同的命令启动docker容器,构建项目,构建失败。容器不再具有任何已下载的库(php、composer、node)
我的理解是,在启动docker容器的命令中包含jenkins_home:/var/jenkins_home
,数据将保持不变。这是错误的吗
所以我的问题是,我怎样才能使这些库保存在它构建的docker容器中
我昨天才开始学习这些工具,所以我不完全确定我是否做得最好。我所需要的只是能够登录到Jenkins的服务器,并构建项目/将代码发送到我们的临时/实时服务器
旁注:我目前没有使用Dockerfile。我可以以root用户身份下载容器中的工具。您的理解是正确的:您应该使用持久卷,否则每次重新创建容器时都会丢失数据 我知道您正在使用docker在一台机器上运行容器。您需要在卷定义的本地文件夹中放置完整路径或相对路径,以确保数据持续存在,请尝试:
docker run -p 8080:8080 -p 50000:50000 -v ./jenkins_home:/var/jenkins_home jenkins/jenkins:lts
查看本地文件夹上的/
这是我的docker-compose.yml,我已经用了很长时间了
version: '2'
services:
jenkins:
image: jenkins/jenkins:lts
volumes:
- ./jenkins:/var/jenkins_home
ports:
- 80:8080
- 50000:50000
基本相同,但在yaml格式中我收到此错误
docker:来自后台程序的错误响应:create./jenkins_home:“./jenkins_home”包含本地卷名的无效字符,仅允许“[a-zA-Z0-9][a-zA-Z0-9_914;。-]”。如果要传递主机目录,请使用绝对路径。
edit:有没有一种简单的方法可以让我像您这样做,将其放入某个文件中?请确保在启动容器之前创建文件夹,Docker不会为您创建它。