Puppet: invalid byte sequence in US-ASCII

Puppet probeert een bestand te parsen, denkt dat het ASCII is, maar dat is het niet en faalt dus. Een à gebruiken doe je niet ongestraft.

Dit is geen probleem met Puppet, maar met de locale die ingesteld staat op het systeem. Op zich eenvoudig op te lossen, ware het niet dat het “systeem” in kwestie een CentOS docker container is.

Om een lang verhaal kort te maken, je moet in de Dockerfile de locale-environment variables toevoegen (het uitvoeren van localegen is op CentOS niet nodig).

ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
ENV LANGUAGE en_US:en

En zo staat de locale ingesteld op UTF-8, waardoor de puppet parser dit overneemt en de foutmelding magisch verdwijnt.

Hoera!