Использование команды Docker ADD для многократных файлов
Я хочу скопировать некоторые файлы в мои изображения, и я хочу использовать команду ADD. Я прочитал в документации Docker о регулярном выражении для ADD, но я не знаю, какое выражение я могу использовать?
Мне нужно что-то вроде этого
FROM registry:5000/ubuntu:14.04
MAINTAINER Me
# some stuffs
ADD Sources/{file1,file2,load_file} /etc/Sources/
# more stuffs
Примечание: выражение неверно, но я сделал это, чтобы показать вам, что я ожидаю от команды ADD. (Я думал об этом в регулярных выражениях оболочки).
Итак, как я могу это сделать? Я не могу получить доступ к ссылке filepath.Match. Если у кого есть эти правила, сообщите мне об этом?
Update
Я использую эту ссылку Docker docs
Я использую эту версию:
Client version: 1.3.0
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): c78088f
OS/Arch (client): linux/amd64
Server version: 1.3.0
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): c78088f
Ответы
Ответ 1
Команда ADD
и COPY
оба позволяют Golang filepath.Match
подстановочные знаки
Вы можете найти несколько примеров в тестовом коде для Go: https://golang.org/src/pkg/path/filepath/match_test.go
Правила, воспроизводимые здесь для тех, кто в Китае, которые не могут получить доступ к Google/golang.org:
'*' matches any sequence of non-Separator characters
'?' matches any single non-Separator character
'[' [ '^' ] { character-range } ']'
character class (must be non-empty)
c matches character c (c != '*', '?', '\\', '[')
'\\' c matches character c
character-range:
c matches character c (c != '\\', '-', ']')
'\\' c matches character c
lo '-' hi matches character c for lo <= c <= hi
Ответ 2
Обычно вы помещаете все соответствующие файлы в подкаталог, а затем просто ADD
этот каталог, чтобы принести их в изображение.
Ответ 3
Пример того, как добавить файлы с ext SO в каталог:
ADD modules/*.so /usr/local/apache2/modules/
или вы можете добавить все файлы в каталог
ADD modules/* /usr/local/apache2/modules/