簡體   English   中英

Docker - 更新時維護服務器中的文件夾和文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM