Docker launcher fails with message «/pups/lib/pups/cli.rb:15:in `split': invalid byte sequence in US-ASCII» then container *.yml file contains non-ASCII symbols

docker

(Discourse.PRO) #1

Non-ASCII symbols in container *.yml file are needed for:

But now it fails:

root /usr/local/discourse # ./launcher rebuild app
Ensuring discourse docker is up to date
Fetching origin
Discourse Docker is up-to-date
Stopping old container

  • /usr/bin/docker stop -t 10 app
    app
    cd /pups && git pull && /pups/bin/pups --stdin
    From GitHub - discourse/pups: Simple yaml based bootstrapper for Linux machines
    8d972ab…7d741e1 master -> origin/master
    Updating 8d972ab…7d741e1
    Fast-forward
    README.md | 16 ++++++++++++++++
    1 file changed, 16 insertions(+)
    I, [2015-05-25T15:15:11.528613 #41] INFO – : Loading --stdin
    /pups/lib/pups/cli.rb:15:in split': invalid byte sequence in US-ASCII (ArgumentError) from /pups/lib/pups/cli.rb:15:inrun’
    from /pups/bin/pups:8:in `'
    06ed9e81b57dd6311fbe5b8d4e81228db044dc677c72ec25110952c757964ac4
    FAILED TO BOOTSTRAP

Maybe it can be fixed in pups/cli.rb at master · discourse/pups · GitHub

by adding the line like

conf = conf.encode("UTF-8")

before the line

split = conf.split("_FILE_SEPERATOR_")

(Sam Saffron) #2

I would not force encoding, instead amend launcher to pass the utf text.


#3

How exactly to go about this?

Someone had an “é” in their hostname earlier today and the same error came up.

I tried changing a few settings within the yaml file to france, but same error occurred.

Which setting to change, and where?

I tried to change:

from .english to france

and

to fr_FR.UTF-8

separately and in combination.


#4

Is there no easy answer here? I tried hacking in the launcher some as well, no dice.

I can convert the format in php before it ever touches the yaml/launcher, but would think this a last option. Am advertising in other languages across the globe, and would rather offer than limit.