Пусть dockerfile перезаписывает файл в томе - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть Dockerfile, который содержит:

COPY config.xml /path/to/data/config.xml

И когда я запускаю контейнер, я использую том, который сам содержит config.xml файл

volume:
   - "/data:/path/to/data

Когда я собираю и запустите контейнер, я хочу config.xml из образа, чтобы получить приоритет (и перезаписать) копию, которая может уже существовать в подключенном томе.

Возможно ли это?

1 Ответ

1 голос
/ 23 февраля 2020

Когда вы добавляете том к вашим Docker сервисам, данные на томе будут перезаписывать любые существующие данные из образа Docker. Если вы хотите иметь файлы изображений Docker, которые можно использовать в качестве файлов по умолчанию, вам необходимо выполнить следующие действия:

  • Сохранить файлы в предопределенном файле Docker изображения ie. (/ path / to / default)
  • Добавьте точку входа в ваш файл Docker, эта точка входа должна позаботиться о копировании файла по умолчанию из /path/to/default в путь к тому /path/to/data

Dockerfile

From ruby:2.4.5
COPY config.xml /path/to/default/config.xml
ENTRYPOINT  [ "/docker-entrypoint.sh" ]

docker -входная точка. sh

#!/bin/sh -e

cp -r /path/to/default/config.xml /path/to/data
exec "$@" # or replace this by the command need to run the container
...