代码之家  ›  专栏  ›  技术社区  ›  MrSham

在父映像上运行Docker父映像和基本映像

  •  2
  • MrSham  · 技术社区  · 7 年前

    我是新来的码头工人。所以我有一个现有的Dockerfile,它看起来有点像下面:

    # Base image
    FROM <OS_IMAGE>
    
    # Install dependencies
    RUN zypper --gpg-auto-import-keys ref -s && \
        zypper -n install git net-tools libnuma1
    
    # Create temp user 
    RUN useradd -ms /bin/bash userapp
    
    # Creating all the required folders that is required for installment.
    RUN mkdir -p /home/folder1/
    RUN mkdir -p /home/folder2/
    RUN sudo pip install --upgrade pip
    
    
    RUN python3 code_which_takes_time.py
    
    # Many more stuff below this.
    

    所以 code_which_takes_time.py 运行需要时间,它会下载很多东西并执行。
    因此,只要我们在下面添加更多语句,就需要满足这一要求 RUN python3 code_which_takes_time.py 每次在构建映像时都将执行此python脚本。 所以我想把这张图片分成两个DockerFile。

    1. 一个文件只能运行一次。此文件将具有耗时的内容,在构建图像时只能运行一次。

    因为如果我跑 docker build -t "test" . 对于当前文件,它将一次又一次地执行我的python脚本。这很耗时,我不想一次又一次地运行它。

    我的问题是:

    1. 如何分割我上面提到的Dockerfile。?
    2. 如何使用2个图像文件构建图像。?
    3. 如何运行这两个文件?

    构建和运行: docker build -t "test" . && docker run -it "test"
    只需构建: docker构建-t“测试”。
    只需运行: docker run -it "test"

    1 回复  |  直到 7 年前
        1
  •  0
  •   Saad    7 年前

    在阅读该场景后,我可以建议您将工作流拆分为两个DockerFile,据我所知,您可以轻松地将它们拆分。

    code_which_takes_time.py 已执行,使用名称提交该图像 “根图像” 之后,当您要在其中添加其他任务时 “根图像” RUN python3 等等,只需创建一个新的Dockerfile并使用 FROM Root_image 在Dockerfile中,做你想做的事情。完成任务后,提交工作并将其命名为 “儿童图像” “根图像”

    推荐文章