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似乎很愚蠢,这样我可以更改一行。所以我认为正确的答案是
docker build -t djangodocker .
从图像中构建图像(正确的单词?)为仅用于Web服务的Dockerfile创建
FROM djangodocker:latest
CMD gunicorn --bind 0.0.0.0:$PORT djangodocker.wsg
,然后为队列消耗创建一个Dockerfile,如下所示:
FROM djangodocker:latest
python manage.py rqworker high medium low
这是正确的方法吗?