Django docker exec在本地文件中看到更改
我在docker玩django项目,现实情况与我有限的理解相矛盾:Django docker exec在本地文件中看到更改,django,docker,Django,Docker,我在docker玩django项目,现实情况与我有限的理解相矛盾: 更改文件tests.py并运行 docker exec{my_container}python manage.py测试 它知道我所做的这些本地更改(例如,我可以编写新的测试,它将运行)。 但我认为docker容器是孤立的,我需要重新创建或至少将更新的文件复制到一个容器中,以便更新文件的状态 我已阅读,但未找到有关其更新容器中文件能力的信息。 那么,为了理解正在发生的事情,我需要知道什么 编辑 Dockerfile的内容: FR
更改文件tests.py并运行
docker exec{my_container}python manage.py测试
它知道我所做的这些本地更改(例如,我可以编写新的测试,它将运行)。
但我认为docker容器是孤立的,我需要重新创建或至少将更新的文件复制到一个容器中,以便更新文件的状态 我已阅读,但未找到有关其更新容器中文件能力的信息。
那么,为了理解正在发生的事情,我需要知道什么
编辑 Dockerfile的内容:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD . /code/
RUN pip install -r requirements.txt
docker-compose.yml:
version: '3'
services:
ankete_db:
image: postgres
ports:
- "54320:5432"
container_name: ankete_db
ankete:
build: .
container_name: ankete
command: gunicorn -b 0.0.0.0:8000 ankete.wsgi
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- ankete_db
在docker-compose.yml中,您可以这样做。删除
卷后
所做的更改不会反映在容器中。exec命令不会更新主机和容器之间的文件。导致文件在容器和主机之间同步的是在compose文件中声明的卷
卷声明将目录
装载到容器内的/code
,以便对主机当前目录内的任何文件所做的任何更改都反映在容器内的/code
目录中,反之亦然 启动容器的命令是什么?docker compose up-d--force recreate docker文件中有卷吗?docker文件中没有,但我知道docker-compose.ymlnice中有卷,但是你能在明确说明的地方添加链接和/或引号吗?@GrailFinder这是docker中绑定装载的想法。你可以在“是的,我的意思是把它加到你的答案中”下读到更多