扩展/组织dockerfile的正确方法?

时间:2018-06-21 13:39:04

标签: docker dockerfile

Docker的新手,试图把我的头缠住。

我第一次尝试创建Dockerfile的过程是这样的(修剪了一下):

FROM heroku/heroku:16

# install python and some other stuff
RUN apt-get install -y python python-pip bash

# add my dependencies
ADD ./requirements.txt /tmp/requirements.txt
RUN pip install --no-cache-dir -q -r /tmp/requirements.txt

# copy my code
ADD . /opt/webapp
WORKDIR /opt/webapp

# run my server
CMD gunicorn --bind 0.0.0.0:$PORT djangodocker.wsgi

事情真是太棒了!我有一个不错的HTTP服务器。它把事情放在队列中。

现在,我需要运行一些操作以排空队列。我需要完整的代码库,Web过程和队列排出过程之间的唯一区别是最后的命令行:

 # run my server
CMD gunicorn --bind 0.0.0.0:$PORT djangodocker.wsgi

成为

 # drain my queues
 python manage.py rqworker high medium low

其中“高”,“中”和“低”是我的队列的名称

但是对我来说复制和粘贴我的整个Dockerfile似乎很愚蠢,这样我可以更改一行。所以我认为正确的答案是

  1. 创建一个“基本” Dockerfile,该文件将执行除CMD之外的所有操作。
  2. 使用docker build -t djangodocker .从图像中构建图像(正确的单词?)
  3. 为仅用于Web服务的Dockerfile创建 FROM djangodocker:latest CMD gunicorn --bind 0.0.0.0:$PORT djangodocker.wsg

  4. ,然后为队列消耗创建一个Dockerfile,如下所示: FROM djangodocker:latest python manage.py rqworker high medium low

这是正确的方法吗?

0 个答案:

没有答案