2017年9月26日火曜日

user: could not determine current user from environment

概要

packer でプラグインを docker 上で動作させる際に発生しました
原因と対処方法を紹介します

環境

  • Ubuntu 16.04.2
  • docker 17.03.0-ce
  • packer 1.1.0

原因

まず原因ですが、USER 環境変数が設定されていないのが原因です
docker コンテナの場合 USER 環境変数はデフォルトで設定されていません
これが殻の場合以下の部分でエラーになります
https://github.com/hashicorp/packer/blob/master/provisioner/ansible/provisioner.go#L146

対処方法

単純に USER を設定してあげれば OK です
Dockerfile ないのどこかで以下を追加してあげましょう

ENV USER root

これで docker コンテナ上でも packer のプラグインが使えるようになります
正直これでいいのかは何ともですがとりあえず今回のエラーを回避したい場合には使えると思います

0 件のコメント:

コメントを投稿