在Packer脚本中更改文件(使用sed)会使文件保持不变
问题描述:
当前我正在研究使用打包器和码头构建构建管道。 这是我packer.json:在Packer脚本中更改文件(使用sed)会使文件保持不变
{
"builders": [{
"type": "docker",
"image": "php:7.0-apache",
"commit": true
}],
"provisioners": [
{
"type": "file",
"source": "./",
"destination": "/var/www/html/"
},
{
"type": "shell",
"inline": [
"chown -R www-data:www-data /var/www/html",
"sed '/<Directory \\/var\\/www\\/>/,/<\\/Directory>/ s/AllowOverride None/AllowOverride all/' /etc/apache2/apache2.conf",
"sed '/<VirtualHost/,/<\\/VirtualHost>/ s/DocumentRoot \\/var\\/www\\/html/DocumentRoot \\/var\\/www\\/html\\/web/' /etc/apache2/sites-enabled/000-default.conf"
]
}
]
}
Shell脚本里面provisioners
部分包含更改Apache的配置里面的AllowOverride
和DocumentRoot
变量的一些sed命令。
当打包器运行这个脚本它工作得很好,我得到一个积极的sed输出,所以sed似乎工作正常。但是在码头图像中文件没有改变。 复制file
预配置器中的文件工作正常。
我在做什么错?
答
看来你在你的sed命令中缺少-i
(或--in-place
)标志。试一下:
"sed -i <expression> <file>"
请问您能否发布相同的预期输出? – RavinderSingh13