Импорт Docker reg

#windows #docker #fonts #registry

#Windows #docker #шрифты #реестр

Вопрос:

Я создаю docker, которому нужны некоторые специальные шрифты (на самом деле японские), я скопировал все шрифты в соответствующую папку, но этого недостаточно, их необходимо зарегистрировать. Я создаю reg-файл, чтобы сделать это простым способом, и внутри контейнера работает хорошо (шрифты установлены), но когда я попытался включить его в docker, я получил предупреждение, а также появился процесс, который не запускался, и шрифты не зарегистрированы, я попробовал с помощью CMD и ENTRYPOINTно ничего

Это часть файла docker:

 FROM microsoft/aspnet

...

COPY YUGOTH*.TTC C:/windows/fonts/
COPY Fonts.reg /
CMD reg import C:Fonts.reg
# ENTRYPOINT ["reg import C:Fonts.reg"]
 

Это сборка, на самом деле кажется, что импорт выполняется в отдельном контейнере (501a7ca70d2b), а затем удаляется, это может быть проблемой?

вывод импорта reg

Я мог бы сделать то же самое вне docker, используя параметр exec, но мне нужно, чтобы установка шрифта выполнялась автоматически, а не вручную.

 docker exec -d docker_image reg import c:Fonts.reg
 

Таким образом я проверяю, когда шрифты зарегистрированы (внутри docker)

 reg query "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionFonts" /s
 

шрифты зарегистрированы

и это файл Fonts.reg

 Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionFonts]
"YUGOTHB"="YUGOTHB.TTC"
"YUGOTHL"="YUGOTHL.TTC"
"YUGOTHM"="YUGOTHM.TTC"
"YUGOTHR"="YUGOTHR.TTC"
 

Комментарии:

1. CMD просто задает команду, которая будет выполняться при запуске контейнера; он ничего не делает немедленно. Вы имеете в RUN виду эту команду как часть сборки образа?

2. Я предполагаю, что файл регистра должен запускаться при запуске контейнера, ну, неважно, это помогает, большое спасибо

Ответ №1:

Попробуйте использовать RUN вместо CMD или ENTRYPOINT.