cs-course/bigdata-storage-experiment

thumbor的问题

xxxxzgxxxx opened this issue · 3 comments

如何在docker容器里面安装thumbor...... 已经在ubuntu里连接到docker ,但是没有查找到如何安装thumbor.....

传统方法:

  1. 需要抓取 thumbor docker 镜像: docker pull apsl/thumbor
  2. 运行之 docker run --name thumbor -p 8000:8000 apsl/thumbor
  3. docker exec -it thumbor /bin/bash 进入镜像内部,执行 pip 或者修改配置,继续实验

进阶方法1:

参考 https://github.com/APSL/docker-thumbor/tree/master/thumbor

  1. 抓取: git clone https://github.com/APSL/docker-thumbor.git
  2. 进入这里面 thumbor 文件夹,"docker build -t thumbor-docker ." 自制镜像,名为thumbor-docker
  3. 若2顺利,参考 http://studygolang.com/articles/9572 直接修改 Dockerfile,追加 pip install tc_aws 环节,准备好相应配置文件 COPY 进去,然后重新docker build,制作正式版本镜像

后面就直接用这个新镜像即可,一般需要调试几次,直至镜像内容满足需要,比方说通过 docker-entrypoint.sh 所用环境变量,或者命令行参数来传两个 KEYs。

进阶方法1+:

甚至可以直接将 https://dl.minio.io/server/minio/release/linux-amd64/minio 下载拷贝进去,写进 docker-entrypoint.sh 运行与 thumbor 之前,将对象存储与应用装进一个镜像,就实验而言更容易实现。

进阶方法2:

  1. 用 docker-compose 来按照具体配置运行 thumbor 容器: https://github.com/APSL/docker-thumbor/blob/master/configuration_examples/docker-compose/aws-s3-storage.yml
  2. 用 docker 跑 minio: https://github.com/minio/minio
  3. 综合上述两者,修改 1 中 docker-compose.yml,使其 'link' 依赖 minio 容器(将后者所有网络端口开放给apsl/thumbor容器),然后用一句 docker-compose up 一起运行两个容器,完成任务。

如果尝试 swift 或者 ceph,同样可以这么做,今后可以进一步学习 docker swarm 或者 google k8s。