Che*_*lix 29 python git deployment continuous-integration docker
我有一个Docker文件试图将Django代码部署到容器中
FROM ubuntu:latest
MAINTAINER { myname }
#RUN echo "deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -sc) main universe" >> /etc/apt/sou$
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y tar git curl dialog wget net-tools nano buil$
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python python-dev python-distribute python-p$
RUN mkdir /opt/app
WORKDIR /opt/app
#Pull Code
RUN git clone git@bitbucket.org/{user}/{repo}
RUN pip install -r website/requirements.txt
#EXPOSE = ["8000"]
CMD python website/manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)
然后我构建我的代码docker build -t dockerhubaccount/demo:v1 .,这将我的代码从Bitbucket拉到容器.我运行它docker run -p 8000:8080 -td felixcheruiyot/demo:v1,事情似乎工作正常.
现在我想更新代码,即自从我使用以来git clone ...,我有这样的困惑:
sea*_*mcl 21
您可以使用几种方法.
docker build --no-cache以避免使用Git克隆的缓存.git pull.因此python manage.py,CMD cd /repo && git pull && python manage.py如果事情更复杂,那么您可能会使用启动脚本而不是运行.我倾向于选择2.你也可以运行一个cron作业来更新你容器中的代码,但这样做的工作要多一些,并且有点违背了Docker的理念.
Adr*_*uat 10
我建议您检查主机上的代码并将COPY其签入图像.这样,无论何时进行更改,它都会更新.此外,在开发期间,您可以将源目录绑定到容器中的代码目录,这意味着任何更改都会立即反映在容器中.
检查上次更新的git存储库的docker命令虽然非常有用!
另一种方法.
只要指令字符串与缓存图像完全相同,Docker构建命令就会使用缓存.所以,如果你写
RUN echo '2014122400' >/dev/null && git pull ...
Run Code Online (Sandbox Code Playgroud)
在下次更新时,您将更改如下.
RUN echo '2014122501' >/dev/null && git pull ...
Run Code Online (Sandbox Code Playgroud)
这可以防止docker使用缓存.
| 归档时间: |
|
| 查看次数: |
12825 次 |
| 最近记录: |