2016-05-05 7 views
1

Wenn ich folgendes in einem Divio Cloud (früher bekannt als "Aldryn") Projekt ausführen:Divio Cloud (ehemals "Aldryn"): manage.py makemessages: nicht gefunden xgettext

docker-compose run --rm web python manage.py makemessages

ich bekomme:

CommandError: Can't find xgettext. Make sure you have GNU gettext tools 0.15 or newer installed.

  • läuft `manage.py makemessages den richtigen Weg/Dateien Aktualisierungsnachricht auf Divio Wolke zu schaffen?

Zur Umgehung des Problems Ich habe dies dem Dockerfile hinzugefügt:

# add gettext for manage.py makemessages RUN apt-get update && apt-get install -y gettext

und dann

docker-compose build web

  • Außerdem werden die .mo-Dateien auf Divio kompiliert werden Cloud-Bereitstellung oder muss man sie vorkompilieren?

Antwort

4

Derzeit Aldryn unterstützt nicht die Erstellung der .mo-Dateien für Sie. Während des Wartens auf Aldryn sich aus der Box für diese Unterstützung, können Sie durch Bearbeiten der Dockerfile um das Problem zu umgehen, wie Sie bereits getan:

1) Nach oben hin, kurz vor dem # <DOCKER_BUILD>, fügen Sie den folgenden Befehl (wie Sie bereits erwähnt):

# add gettext for manage.py makemessages 
RUN apt-get update && apt-get install -y gettext && apt-get clean && rm -rf /var/lib/apt/lists/* 

2) Am unteren Ende, kurz nach dem # </DOCKER_BUILD>, fügen Sie den folgenden Befehl ein:

# compile the messages 
RUN DJANGO_MODE=build python manage.py compilemessages 

Edit: Wenn Sie baseproject> = 3.13.1 verwenden, wird Schritt 1) ​​nicht mehr benötigt.

+0

Es ist seltsam, aber am 'docker-compose build web' Ich bekomme' CommandError: Dieses Skript sollte von der Django Git Kasse oder Ihrem Projekt oder App-Baum oder mit dem Einstellungsmodul angegeben werden.', was auch immer ich versuche. Ich bekomme den gleichen Fehler von 'docker-compose run --rm web'. 'pwd' zeigt'/app'. Dockerfile: https://gist.github.com/macolo/d7d31b17e3b31becdac39ca6354385dc – Mario

+1

Wo ist dein Ordner 'locale'? Meine ist bei '/ app/locale' und es ist die einzige, die kompiliert wird. Wenn man sich die django-Quelle anschaut, wird dieser Fehler ausgelöst, wenn keine "locale" -Verzeichnisse in pwd gefunden werden: https://github.com/django/django/blob/master/django/core/management/commands/compilemessages.py # L69-L81 – GaretJax

+0

Thx für den Hinweis, in der Tat wurde ich durch die Fehlermeldung verwirrt. In diesem Projekt gab es keinen Gebietsschemaordner. Vielen Dank nochmal. – Mario