1
binux 2014-12-10 13:02:29 +08:00
把这个Python3.0打包进去
|
2
icylogic 2014-12-10 13:24:41 +08:00 via Android 1
python 官方有 3.3 和 3.4 的dockerfile,改一下 version以后 build 一个自己的 3.0 image 应该就可以了。
|
3
DjvuLee OP @binux 如果多个程序都有这样一个类似的需求,那是每个程序都需要打包一个呢?这样的话,那很浪费空间了。还是说程序之间会共享呢?
|
4
icylogic 2014-12-10 13:47:57 +08:00 via Android
@DjvuLee image 之间没有关系,一般来讲除非遇到这种用 python 3.0 的非主流需求,否则,比如 python 3.3 或者 3.4 或者 2.7 你可以直接在dockerfile里一句 from python:3.3 解决
|
6
binux 2014-12-10 14:13:36 +08:00
@DjvuLee 层可以共享,可以叠加,但是不能混合,比如你可以基于 unbuntu 的层,做一个 python3.0 的层,再基于 python3.0 做各个程序,这时候的 python3.0 可以共享。
但是你不能做一个 python3.0 的层,同时需要 mysql,这时不能把 mysql 混进来,只能在 python3.0 的层上装 mysql,或者在 mysql 的层上装 python3.0 |
9
DjvuLee OP @fwee 硬盘是不值钱。但是如果app体积很大,那么下载,上传或者迁移都很耗费网络流量吧!今天的data center里面网络还是一个很稀缺的资源。不知道Docker在这方面有没有一些什么策略?
|
11
DjvuLee OP @xiaket Docker允许上层基于多个底层不?比如我一个Docker App同时基于MySQL和Python3.0的层,就像多继承一样。
|
13
siteshen 2014-12-31 10:54:01 +08:00
@DjvuLee 上传下载image是一次性的,参照不用docker时搭建服务器环境,比如安装 mysql, redis,架构确定了后,基本一个月不会变的。
叠加的话,底层是“不会”变的,虽然你可以从一个历史commit里新增内容,但某一个commit里面的内容 **永远** 不会变。参考 git 里面的历史纪录,尽管可以 git commit --amend 但 amend 之后是另外一个commit,ID和原来的commit不同。 |
14
siteshen 2014-12-31 11:11:26 +08:00
@DjvuLee 如果是叠加的话,底层的进行了变更,还是有可能导致上层应用出现问题吧?
刚我说的可能和你说的问题有些偏差。对应到不用docker的部署流程,升级系统或者升级 redis 可能会导致问题。正常的部署流程,同样也要面对升级问题,这属于应用/运维层的事,docker不可能照顾到各式各样的应用。docker 做了 image 之后,相当于把相应的服务器和软件版本冻结了。如果要升级系统,image 就得重新 build,重新build之后是否还能工作,只能靠人去确保。 |