Python Docker for django开发自动更新
使用的软件:Python Docker for django开发自动更新,python,django,docker,Python,Django,Docker,使用的软件: Django 2.2.7 Docker 19.03.4社区 OS=Ubuntu 18.04 我来自一个流浪者的背景,在此之前,我建立了一个环境,在这个环境中,我基本上有一个看起来很像的virtualenv,但在一个虚拟机中。就是说,;我启动了vagrant机器,并使用资源调配安装了所有必需的软件包和需求。然后在我的主机上安装了Eclipse并找到了django项目。对我来说,最后一步是使用共享资源将它们绑定在一起。通过这种方式,我确保始终拥有最新的代码 对于那些不熟悉Djang
- Django 2.2.7
- Docker 19.03.4社区
- OS=Ubuntu 18.04
FROM python:3.7.5-stretch
ADD requirements.txt requirements.txt
RUN pip install -r requirements.txt
RUN mkdir /app
WORKDIR /app
ADD . /app/
ENV PYTHONUNBUFFERED 1
ENV LANG C.UTF-8
ENV DEBIAN_FRONTEND=noninteractive
# install environment dependencies
RUN pip3 install --upgrade pip
EXPOSE 8000
EXPOSE 8280
CMD ["python", "manage.py", "makemigrations"]
CMD ["python", "manage.py", "migrate"]
CMD ["python", "/app/manage.py", "runserver", "0.0.0.0:8000"]
这意味着为了在每次更改时更新代码,我需要构建映像并重新运行服务器。考虑到我每分钟要做多次,这似乎是一个巨大的过度消耗
我知道卷,但它们似乎安装在容器级别,而不是映像级别。实际上,这意味着所有命令都将在手动初始化后运行。但在此之前,容器将停止
长话短说:如果可能的话,我可以做些什么来模拟类似流浪汉的情况,即代码将由容器自动读取(或推送)
TLDR:我希望我可以在docker中实时更新django代码,而无需持续重建图像。有什么选择吗?我在评论中的链接是错误的。我想把这联系起来。给定的解决方案可能比您的卷解决方案简单一些 如果您有一个图像,并大致通过以下命令启动它:
$ docker run --rm -it <image_name>
文件更改现在应该重新启动容器中的Django服务器。尝试使用中所述的
--mount
选项。@ikkuh:这似乎可以解决问题。我必须在docker文件中创建一个卷,然后在docker运行时装载该卷。然后我创建了命名卷,将_数据文件夹与我自己的开发存储库进行符号链接,并运行服务器。有点复杂,但它似乎有效。你能把你的评论变成一个答案,这样我就可以把它标记为正确的吗?把这个标记为正确的答案,因为它工作完美无瑕。我也可以在其他软件中使用同样的技术,这是很有用的。Windows中还不支持这种技术,如果我错了,请纠正我。围绕这一点提出了许多问题。
$ docker run --rm -it --mount src="$(pwd)",target=/app,type=bind <image_name>