2016-05-23 12 views
0

In meinem deploy/development.rb, ich habe die folgende Zeile ein: -Was bedeutet dieser Capistrano-Fehler, wenn eine AWS-Datei über Cap-Aufgaben abgerufen wird?

set :env_path, 's3api get-object --bucket <bucket_name> --key <file_name> <file_name>' 

In meiner Mütze Datei habe ich die folgende Aufgabe definiert:

task :download_configs do 
      on roles(:all) do 
        within release_path do 
          execute :aws, "#{fetch(:env_path)}" 
        end 
      end 
      # on roles(:db) do 
      #  within release_path do 
      #    execute :aws, "#{fetch(:env_path)}" 
      #  end 
      # end 
end 

Aber Kappe deploy, ich bin die folgenden Fehler sehen: -

cap aborted! 
SSHKit::Runner::ExecuteError: Exception while executing as [email protected]: aws exit status: 1 
aws stdout: Traceback (most recent call last): 
    File "/usr/bin/aws", line 15, in <module> 
    import awscli.clidriver 
    File "/usr/share/awscli/awscli/clidriver.py", line 30, in <module> 
    from awscli.help import ProviderHelpCommand 
    File "/usr/share/awscli/awscli/help.py", line 20, in <module> 
    from docutils.core import publish_string 
    File "/usr/lib/python3/dist-packages/docutils/core.py", line 20, in <module> 
    from docutils import frontend, io, utils, readers, writers 
    File "/usr/lib/python3/dist-packages/docutils/frontend.py", line 41, in <module> 
    import docutils.utils 
    File "/usr/lib/python3/dist-packages/docutils/utils/__init__.py", line 20, in <module> 
    import docutils.io 
    File "/usr/lib/python3/dist-packages/docutils/io.py", line 18, in <module> 
    from docutils.utils.error_reporting import locale_encoding, ErrorString, ErrorOutput 
    File "/usr/lib/python3/dist-packages/docutils/utils/error_reporting.py", line 47, in <module> 
    locale_encoding = locale.getlocale()[1] or locale.getdefaultlocale()[1] 
    File "/usr/lib/python3.4/locale.py", line 556, in getdefaultlocale 
    return _parse_localename(localename) 
    File "/usr/lib/python3.4/locale.py", line 484, in _parse_localename 
    raise ValueError('unknown locale: %s' % localename) 
ValueError: unknown locale: UTF-8 
aws stderr: Nothing written 

SSHKit::Command::Failed: aws exit status: 1 
aws stdout: Traceback (most recent call last): 
    File "/usr/bin/aws", line 15, in <module> 
    import awscli.clidriver 
    File "/usr/share/awscli/awscli/clidriver.py", line 30, in <module> 
    from awscli.help import ProviderHelpCommand 
    File "/usr/share/awscli/awscli/help.py", line 20, in <module> 
    from docutils.core import publish_string 
    File "/usr/lib/python3/dist-packages/docutils/core.py", line 20, in <module> 
    from docutils import frontend, io, utils, readers, writers 
    File "/usr/lib/python3/dist-packages/docutils/frontend.py", line 41, in <module> 
    import docutils.utils 
    File "/usr/lib/python3/dist-packages/docutils/utils/__init__.py", line 20, in <module> 
    import docutils.io 
    File "/usr/lib/python3/dist-packages/docutils/io.py", line 18, in <module> 
    from docutils.utils.error_reporting import locale_encoding, ErrorString, ErrorOutput 
    File "/usr/lib/python3/dist-packages/docutils/utils/error_reporting.py", line 47, in <module> 
    locale_encoding = locale.getlocale()[1] or locale.getdefaultlocale()[1] 
    File "/usr/lib/python3.4/locale.py", line 556, in getdefaultlocale 
    return _parse_localename(localename) 
    File "/usr/lib/python3.4/locale.py", line 484, in _parse_localename 
    raise ValueError('unknown locale: %s' % localename) 
ValueError: unknown locale: UTF-8 
aws stderr: Nothing written 

Bitte helfen Sie mir zu identifizieren, was hier falsch läuft!

Antwort

0

Schuss im Dunkeln (Ich bin kein Python dev), aber man könnte hinzufügen können, folgendes deploy.rb:

set :default_env, { 
    'LANG' => 'en_US.UTF-8' 
} 

Abgeleitet meist aus https://github.com/matplotlib/matplotlib/issues/5420#issuecomment-154454607

ich überprüfen würde, wenn zu sehen Sie können den Befehl manuell auf dem Server ausführen. Wenn Sie nicht können, dann finden Sie heraus, wie ohne Capistrano. Wenn Sie können, vielleicht sehen, ob es eine Konfiguration in .bashrc oder .bash_profile gibt, die der Capistrano-Konfiguration hinzugefügt werden kann.