首页 文章

如何将SSH从JENKINS主机复制到DOCKER容器?

提问于
浏览
0

我可以't copy the file from the host into the container using the Dockerfile, because i' m只需not allowed to,如Docker文档中所述:

路径必须位于构建的上下文中;你不能COPY ../something / something,因为docker build的第一步是将上下文目录(和子目录)发送到docker守护进程 .


我也无法从jenkins工作中执行此操作,因为作业命令在docker容器的shell中运行,无法与父级(jenkins主机)通信 .


This jenkins plugin本可以节省生命,但正如第一部分所述:由于未解决的安全漏洞,此插件的分发已暂停 .

1 回答

  • 2

    这是我使用Dockerfile将文件从主机复制到docker镜像的方法

    我有一个名为 tomcat 的文件夹

    在里面,我有 tar fileDockerfile

    命令只是为了理解而完成整个过程

    $ pwd
    /home/user/Documents/dockerfiles/tomcat/
    
    $ ls
    apache-tomcat-7.0.84.tar.gz  Dockerfile
    

    Sample Docker file:

    FROM ubuntu_docker
    COPY apache-tomcat-7.0.84.tar.gz /home/test/
    ...
    

    Docker commands:

    $ docker build -it testserver .
    
    $ docker run -itd --name test1  testserver
    
    $ docker exec -it bash
    

    Now you are inside docker container

    # ls
    apache-tomcat-7.0.84.tar.gz
    

    如您所见,我能够将 apache-tomcat-7.0.84.tar.gz 从主机复制到Docker容器 .

    请注意您共享的Docker文档第一行

    路径必须位于构建的上下文中;

    因此,只要在构建期间可以访问路径,您就可以复制 .

    Another way of doing this would be using volume

    docker run -itd -v $(pwd)/somefolder:/home/test  --name test1  testserver
    

    注意 -v 参数

    你告诉Docker将 Current_Directory/somefolder 挂载到Docker的路径 /home/test

    一旦容器启动并运行,您只需将任何文件复制到 $(pwd)/somefolder ,它将被复制到容器内 /home/test

相关问题