在Docker中(适用于Windows)如何在构建映像时批量添加注册表项?

时间:2017-09-18 08:35:15

标签: windows docker registry

我使用Docker for Windows并使用Dockerfile构建docker镜像,如下所示:

FROM mydockerhublogin/win2k16-ruby:1.0

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
ADD . /app


# Make port 80 available to the world outside this container
EXPOSE 80

# Define environment variable
ENV NAME World

RUN powershell -Command \
    $ErrorActionPreference = 'Stop'; \
  New-Item "HKLM:\Software\WOW6432Node\ExampleCom" -Force ; \
  New-ItemProperty "HKLM:\Software\WOW6432Node\ExampleCom" -Name MenuLastUpdate -Value "test" -Force

RUN powershell -Command \
    $ErrorActionPreference = 'Stop'; \
  New-Item "HKLM:\Software\ExampleCom" -Force ; \
  New-ItemProperty "HKLM:\Software\ExampleCom" -Name MenuLastUpdate -Value "test" -Force
# Run ruby script when the container launches
CMD ["C:/Ruby23-x64/bin/ruby.exe", "docker_ruby_test.rb"]

请注意,我正在向Windows注册表添加一些注册表项,容器内的代码将访问该注册表项。虽然这种添加注册表项的方法适用于少数条目,但我的要求是添加Windows应用程序所需的几十个条目。有没有办法以更简洁的方式做到这一点?

1 个答案:

答案 0 :(得分:1)

尝试为您的注册表项创建一个文件,并将其复制到容器中。

然后尝试运行Invoke-Command -ScriptBlock {regedit /i /s C:\shared\settings.reg}