jenkinsci/docker-安装的库不会在重建中持久化

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等

我正在为一个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等内容。完成后,我构建了项目,并获得了成功构建

今天,我使用上面相同的命令启动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不会为您创建它。