2017-10-28 4 views
0

現在、packerとdockerを使用してビルドパイプラインを構築しています。 provisionersセクションでは、Apache設定内AllowOverrideDocumentRoot変数を変更するためのいくつかのsedコマンドが含まれている内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" 
     ] 
    } 
    ] 
} 

シェルスクリプト: は、これが私のpacker.jsonです。

パッカーがこのスクリプトを実行すると、すべてうまく動作しています。正のsed出力を得ているので、sedはうまく動作しているようです。しかし、ドッカー画像では、ファイルは変更されません。 fileプロビジョナのファイルをコピーしても問題ありません。

私は間違っていますか?

+0

同じ出力を期待してください。 – RavinderSingh13

答えて

2

sedコマンドに-i(または--in-place)フラグがありません。試してみてください:

"sed -i <expression> <file>" 
関連する問題