Dockerfile编码是哪一个?

定义我的Dockerfile我到了这一行:

 ... MAINTAINER Ramón <ramon@example.com> ... 

我应该使用哪种编码来保存这个文件?

我应该逃避非ASCII字符?

考虑到Docker是在Go中完成的,而Go对utf-8有本地支持 ,所以最好保存一个直接用UTF-8编码的Dockerfile。

这样, 所有字符(ASCII或不)都被支持。

请参阅“ 在Go中处理编码 ”。

即使Go对UTF-8有很好的支持(并且对UTF-16的支持最less),但它没有内置的对任何其他编码的支持。
如果您必须使用其他编码(例如在处理用户input时),则必须使用第三方包,例如go-charset 。

在这里,最好是Dockerfile直接用UTF-8编码。


Docker 1.12-rc5增加了2016年7月更新:

  • PR 23372 :支持parseWords中的unicode字符
  • PR 23234 :如果存在,则从Dockerfile和.dockerignore跳过UTF-8 BOM字节

你需要正确设置区域设置,删除重音,用基本的docker run -it container env检查编码,然后把正确的编码,这个“圣经”是http://jaredmarkell.com/docker-and-语言环境/