zxCoder
V2EX  ›  问与答

请教关于基于 docker 开发的一个问题

  •  
  •   zxCoder · Apr 11, 2021 · 1882 views
    This topic created in 1946 days ago, the information mentioned may be changed or developed.

    我现在有一个 docker 镜像,里面装了一些基础工具,然后我的代码是需要用到这个环境,比如代码里写subprocess.run(["ls", "-l", "/dev/null"])执行一些这个环境的命令,然后再把我的代码基于这个镜像再打包成一个新的镜像。

    这个做法合理吗?我在开发的时候应该怎么做呢?

    是不管这个镜像,直接在本地装好这些环境,然后打包的时候再基于这个镜像打包呢?

    还是可以怎么利用上这个镜像,启动个容器再连接上去感觉也不太好,到时候打包还得改代码吧?

    11 replies    2021-04-12 11:32:19 +08:00
    binux
        1
    binux  
       Apr 11, 2021 via Android
    当然可以了,我也没见谁 FROM scratch 建一个镜像啊
    k9982874
        2
    k9982874  
       Apr 11, 2021 via iPhone
    合理,docker 也有方案。google docker multi stage build
    hanxiV2EX
        3
    hanxiV2EX  
       Apr 11, 2021 via Android
    基础镜像可以推到 hub 上去
    hanxiV2EX
        4
    hanxiV2EX  
       Apr 11, 2021 via Android
    但是一般为了保持很小镜像的,都会用楼上说的多个 stage 来写 dockerfile 的,区分编译阶段和运行阶段。
    zxCoder
        5
    zxCoder  
    OP
       Apr 11, 2021
    @hanxiV2EX 但我还是没懂本地开发要怎么做...
    shm7
        6
    shm7  
       Apr 11, 2021 via iPhone
    以 docker 基础镜像 为基础,添加自己的组件和代码,制成自己的镜像,是基本操作。没听说过这方面的法律问题,如果有这个基础镜像的制作者会专门说明,你去找找。
    psyer
        7
    psyer  
       Apr 11, 2021 via Android
    @hanxiV2EX 好家伙,搜了一下 multi stage,感觉很不错。我有个高可用 Hadoop HBase HA 镜像本地 1.5G 左右,不过仓库显示才 500 多 M,是真的大大大。
    SjwNo1
        8
    SjwNo1  
       Apr 11, 2021 via iPhone
    临时就起个基础镜像 exec 进去开发
    否则甚至可以 commit 打一个新镜像
    hanxiV2EX
        9
    hanxiV2EX  
       Apr 11, 2021 via Android
    @zxCoder 就是写 dockerfile 呀
    zxCoder
        10
    zxCoder  
    OP
       Apr 12, 2021
    @hanxiV2EX dockerfile 不是打包部署的时候用吗
    hanxiV2EX
        11
    hanxiV2EX  
       Apr 12, 2021 via Android
    @zxCoder 本地用 dockerfile 配合 docker-composer 可以很方便的管理
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2809 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 09:35 · PVG 17:35 · LAX 02:35 · JFK 05:35
    ♥ Do have faith in what you're doing.