[英]Docker - Mantain folder and file in server when update
我是使用 docker 的新手,我想在更新容器時在服務器上維護我的媒體文件夾和 sqlite 文件,但我不知道如何制作它。
我的 dockerfile 有:
WORKDIR /app
ADD . /app
RUN mkdir media
RUN mkdir media/media
RUN mkdir media/projetos
RUN mkdir media/uploads
RUN chmod g+w /app
RUN chmod g+w /app/db.sqlite3
RUN chmod g+w media/
RUN chmod g+w media/media
RUN chmod g+w media/projetos
RUN chmod g+w media/uploads
而我的 docker-compose.yml 是:
version: '2.1'
services:
arq_web:
image: creativerender.azurecr.io/arq_web:latest
build: .
ports:
- 8000:8000
我不知道我是否必須在我的 docker compose 上使用卷標簽,我嘗試了類似的方法:
volumes:
- ./media:/app/media
但沒有成功。
當您在 docker-compose 中使用卷時,它將覆蓋您在構建時復制的所有內容。
volumes:
- ./media:/app/media
因此,在 Dockerfile 中復制的任何內容都將覆蓋它。
ADD . /app
要只保留來自主機的媒體和 sqllite 文件,您可以嘗試
volumes:
- ./media:/app/media/media
- ./db.sqlite3:/app/db.sqlite3
當您在 dockerfile 中創建時,我認為您的媒體文件夾是/app/media/media
。
RUN mkdir media/media
First, I suggest you upgrade to version 3 syntax of Docker Compose than I suggest you to use named volumes ( https://success.docker.com/article/different-types-of-volumes ) to handle volumes in your services because Docker將處理如何創建卷。
這是使用卷(包括命名卷)的docker-compose文件參考的鏈接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.