Docker - Сохранять папку и файл на сервере при обновлении - PullRequest
0 голосов
/ 23 октября 2019

Я новичок в использовании docker и хочу сохранить свою папку мультимедиа и файл sqlite на сервере при обновлении контейнера, но я не знаю, как это сделать.

Мой файл docker имеет:

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

Я не знаю, должен ли я использовать тег громкости в моем докере compose, я попробовал что-то вроде:

volumes:
- ./media:/app/media

Но безуспешно.

Ответы [ 2 ]

0 голосов
/ 25 октября 2019

Во-первых, я предлагаю вам обновить синтаксис Docker Compose до версии 3, а затем использовать именованные тома (https://success.docker.com/article/different-types-of-volumes) для обработки томов в ваших службах, поскольку Docker будет обрабатывать то, как будет создаваться том.

Это ссылка на ссылку на файл docker-compose для использования томов (включая именованные тома) https://docs.docker.com/compose/compose-file/#volumes

0 голосов
/ 23 октября 2019

Когда вы используете тома в docker-compose, он переопределяет все, что вы скопировали во время сборки.

volumes:
  - ./media:/app/media

То есть все, что копируется в Dockerfile, том переопределяет.

ADD . /app

Если вы хотите сохранить только файлы мультимедиа и sqllite с хоста, вы можете попробовать

volumes:
  - ./media:/app/media/media
  - ./db.sqlite3:/app/db.sqlite3 

Я думаю, что ваша папка мультимедиа /app/media/media при создании в файле dockerfile.


RUN mkdir media/media
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...