【发布时间】:2019-12-10 11:22:19
【问题描述】:
我有一个运行 django 应用程序的容器,有时我会进入容器的外壳并运行 ./manage makemigrations 为我的应用程序创建迁移。
文件创建成功并在主机和容器之间同步。
但是在我的主机中,我无法修改在容器中创建的任何文件。
这是我的Dockerfile
FROM python:3.8-alpine3.10
LABEL maintainer="Marek Czaplicki <marek.czaplicki>"
WORKDIR /app
COPY ./requirements.txt ./requirements.txt
RUN set -ex; \
apk update; \
apk upgrade; \
apk add libpq libc-dev gcc g++ libffi-dev linux-headers python3-dev musl-dev pcre-dev postgresql-dev postgresql-client swig tzdata; \
apk add --virtual .build-deps build-base linux-headers; \
apk del .build-deps; \
pip install pip -U; \
pip --no-cache-dir install -r requirements.txt; \
rm -rf /var/cache/apk/*; \
adduser -h /app -D -u 1000 -H uwsgi_user
ENV PYTHONUNBUFFERED=TRUE
COPY . .
ENTRYPOINT ["sh", "./entrypoint.sh"]
CMD ["sh", "./run_backend.sh"]
和run_backend.sh
./manage.py collectstatic --noinput
./manage.py migrate && exec uwsgi --strict uwsgi.ini
如何才能在我的主机中修改这些文件?我不想每次创建每个文件或目录时都chmod。
出于某种原因,有一个项目在容器中创建的文件可以由主机编辑,但我找不到这两者之间的任何区别。
【问题讨论】:
-
您需要提供更多信息,如果您不使用卷,您应该如何更改文件?码头工人cp?你到底想做什么?
-
您通常根本不会尝试像这样在容器文件系统中进行更改。您应该能够在 Python 虚拟环境中从主机系统源代码树中运行类似的命令,可选择指向 Docker 托管的数据库。
标签: django docker docker-compose dockerfile