Можно ли создать том докера, в котором файлы и папки не могут быть переопределены или удалены? - PullRequest
2 голосов
/ 24 октября 2019

Можно ли иметь возможность записывать файлы на моем томе, только если они еще не вышли, и никогда не удалять мои предыдущие файлы?

У меня есть Dockerfile, который создаетизображение называется bot. На картинке у меня есть папка /models, которая может быть пустой. После того, как образ собран, он помещается в репозиторий Nexus / Dockerhub.

Для создания приложения на моей виртуальной машине у меня есть docker-compose.yml, который, помимо прочего, называется образом bot и также указывает, что папка /models должна находиться в томе.

Моя проблема в том, что у меня уже есть файлы (file_1, file_2, ...) на моей виртуальной машине в /models, если я сделаю docker-compose down, а затем docker-compose up -d, я сохраню этифайлы из-за моего объема. Но если у меня будет новая версия моего изображения bot, когда я сделаю docker-compose up -d, я назову новую версию своего изображения (это почти то, что я хочу), но я сотру папку /models в моем томе сновая папка /models из моего образа.

Таким образом, я хотел бы найти способ записать файл на моем томе, только если он еще не вышел, и никогда не удалять мои предыдущие файлы.

version: "3.2"

services:
  bot:
    restart: always
    tty: true
    volumes:
      - type: volume
        source: ModelsVolume
        target: /models
        volume:
          nocopy: true

volumes:
  ModelsVolume:

1 Ответ

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

В соответствии с комментариями @ masseyb, я выполняю любые проверки файлов во время сборки изображения и пишу небольшой файл (возможно, даже сценарий оболочки) внутри изображения, который сообщает мне, доступны ли файлы для записи для записи или нет,Затем скрипт, который вы вызываете в своей ENTRYPOINT, может использовать этот файл для выполнения соответствующей логики копирования.

Также возможно, чтобы ваш сценарий compose shell выполнил проверки на уровне хоста, запустив контейнер и найдя файл вашей сборкишаг написал в нем.

Надеюсь, это поможет!

...