Windows Docker注册导入
我正在创建一个需要一些特殊字体(实际上是日语)的docker,我将所有字体复制到各自的文件夹中,但这还不够,它们需要注册。我创建了一个reg文件,以一种简单的方式来实现这一点,并且在容器内部运行良好(字体已安装),但是当我尝试将其包含在docker中时,我得到了一个警告,并且该过程似乎没有运行,字体也没有注册,我尝试了CMD和ENTRYPOINT,但什么都没有 这是docker文件的一部分:Windows Docker注册导入,windows,docker,fonts,registry,Windows,Docker,Fonts,Registry,我正在创建一个需要一些特殊字体(实际上是日语)的docker,我将所有字体复制到各自的文件夹中,但这还不够,它们需要注册。我创建了一个reg文件,以一种简单的方式来实现这一点,并且在容器内部运行良好(字体已安装),但是当我尝试将其包含在docker中时,我得到了一个警告,并且该过程似乎没有运行,字体也没有注册,我尝试了CMD和ENTRYPOINT,但什么都没有 这是docker文件的一部分: FROM microsoft/aspnet ... COPY YUGOTH*.TTC C:/wind
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)中运行,然后被删除,这可能是问题所在
我可以在docker外部使用exec参数进行同样的操作,但我需要字体安装自动运行,而不是手动运行
docker exec -d docker_image reg import c:\Fonts.reg
这是我在注册字体时检查的方式(docker内部)
这是Fonts.reg文件
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
"YUGOTHB"="YUGOTHB.TTC"
"YUGOTHL"="YUGOTHL.TTC"
"YUGOTHM"="YUGOTHM.TTC"
"YUGOTHR"="YUGOTHR.TTC"
尝试使用RUN代替CMD或ENTRYPOINT。
CMD
只设置容器启动时将运行的命令;它不会立即做任何事情。你的意思是在映像构建过程中运行该命令吗?我想注册文件应该在容器启动时运行,没关系,这就可以了,非常感谢
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
"YUGOTHB"="YUGOTHB.TTC"
"YUGOTHL"="YUGOTHL.TTC"
"YUGOTHM"="YUGOTHM.TTC"
"YUGOTHR"="YUGOTHR.TTC"