如何使用Docker在构建期间配置文件
我有一些配置文件需要添加到容器中,带有动态变量。例如:如何使用Docker在构建期间配置文件,docker,dockerfile,Docker,Dockerfile,我有一些配置文件需要添加到容器中,带有动态变量。例如: # # -= One of my app configuration files =- # string SERVER = "127.0.0.1"; string LANG = "{dynamic_value}"; string OTHERVAR = "{other_dynamic_value}"; 是否可能有一个存储所有这些变量的外部配置文件 # # -= My Docker centralised config file =-
#
# -= One of my app configuration files =-
#
string SERVER = "127.0.0.1";
string LANG = "{dynamic_value}";
string OTHERVAR = "{other_dynamic_value}";
是否可能有一个存储所有这些变量的外部配置文件
#
# -= My Docker centralised config file =-
#
dynamic_value = "English";
other_dynamic_value = "North";
因此,添加到容器中的结果文件如下所示:
#
# -= One of my app configuration files =-
#
string SERVER = "127.0.0.1";
string LANG = "English";
string OTHERVAR = "North";
谢谢
您可以使用env文件,也可以在启动容器时使用下面的命令调用它们
-e var='value'
您可以使用env文件,也可以在启动容器时使用下面的命令调用它们
-e var='value'使用您选择的脚本语言(如ruby)创建脚本文件
require 'json'
myconfigfile = 'config1.json'
j= ''
File.open(myconfigfile, "r") do |f|
j = JSON.parse(f.read)
end
File.open('appconfig.txt','w') do |f|
f.write 'string SERVER = "127.0.0.1"' + "\n"
f.write 'string LANG = ' + j['dynamic_value'].to_s + "\n"
f.write 'string OTHERVAR = ' + j['other_dynamic_value'].to_s + "\n"
end
`docker build .`
在这个示例中,我假设您的集中式配置文件是json格式的
{
"dynamic_value" : "English",
"other_dynamic_value" : "North"
}
在Dockerfile中,将这样创建的appconfig.txt文件复制到容器中。使用您选择的脚本语言(例如ruby)创建脚本文件
require 'json'
myconfigfile = 'config1.json'
j= ''
File.open(myconfigfile, "r") do |f|
j = JSON.parse(f.read)
end
File.open('appconfig.txt','w') do |f|
f.write 'string SERVER = "127.0.0.1"' + "\n"
f.write 'string LANG = ' + j['dynamic_value'].to_s + "\n"
f.write 'string OTHERVAR = ' + j['other_dynamic_value'].to_s + "\n"
end
`docker build .`
在这个示例中,我假设您的集中式配置文件是json格式的
{
"dynamic_value" : "English",
"other_dynamic_value" : "North"
}
在Dockerfile中,将这样创建的appconfig.txt文件复制到容器中。尝试使用envfile@Kilian你能再多告诉我一点吗?在我的作品中,我在Docker文件中使用ENV,或者在run命令中使用--e。你可以在你的容器里使用它们。您可以在容器内的bash中使用“env”命令进行验证file@Kilian你能再多告诉我一点吗?在我的作品中,我在Docker文件中使用ENV,或者在run命令中使用--e。你可以在你的容器里使用它们。您可以在容器内的bash中使用“env”命令进行验证。