diff --git a/Dockerfile b/Dockerfile
index 99d2671ce..0f10015c6 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,15 +2,12 @@ FROM python:3.9
ENV PYTHONUNBUFFERED 1
-RUN mkdir /app
-RUN mkdir /app/static
-RUN mkdir /app/images
+RUN mkdir /app /app/static /app/images
WORKDIR /app
COPY requirements.txt /app/
-RUN pip install -r requirements.txt
-RUN apt-get update && apt-get install -y gettext libgettextpo-dev
+RUN pip install -r requirements.txt --no-cache-dir
+RUN apt-get update && apt-get install -y gettext libgettextpo-dev && apt-get clean
-COPY ./bookwyrm /app
-COPY ./celerywyrm /app
+COPY ./bookwyrm ./celerywyrm /app/
diff --git a/locale/de_DE/LC_MESSAGES/django.mo b/locale/de_DE/LC_MESSAGES/django.mo
index ebd743358..1be5cbcb2 100644
Binary files a/locale/de_DE/LC_MESSAGES/django.mo and b/locale/de_DE/LC_MESSAGES/django.mo differ
diff --git a/locale/de_DE/LC_MESSAGES/django.po b/locale/de_DE/LC_MESSAGES/django.po
index e45532117..a8bd57881 100644
--- a/locale/de_DE/LC_MESSAGES/django.po
+++ b/locale/de_DE/LC_MESSAGES/django.po
@@ -20,24 +20,24 @@ msgstr ""
#: bookwyrm/forms.py:185
msgid "One Day"
-msgstr ""
+msgstr "Ein Tag"
#: bookwyrm/forms.py:186
msgid "One Week"
-msgstr ""
+msgstr "Eine Woche"
#: bookwyrm/forms.py:187
msgid "One Month"
-msgstr ""
+msgstr "Ein Monat"
#: bookwyrm/forms.py:188
msgid "Does Not Expire"
-msgstr ""
+msgstr "Läuft nicht aus"
#: bookwyrm/forms.py:190
#, python-format
msgid "%(count)d uses"
-msgstr ""
+msgstr "%(count)d Benutzungen"
#: bookwyrm/forms.py:192
#, fuzzy
@@ -48,12 +48,12 @@ msgstr "Ungelistet"
#: bookwyrm/models/fields.py:24
#, python-format
msgid "%(value)s is not a valid remote_id"
-msgstr ""
+msgstr "%(value)s ist keine gültige remote_id"
#: bookwyrm/models/fields.py:33 bookwyrm/models/fields.py:42
#, python-format
msgid "%(value)s is not a valid username"
-msgstr ""
+msgstr "%(value)s ist kein gültiger Username"
#: bookwyrm/models/fields.py:164
#, fuzzy
@@ -63,23 +63,23 @@ msgstr "Servername"
#: bookwyrm/models/fields.py:169
msgid "A user with that username already exists."
-msgstr ""
+msgstr "Dieser Benutzename ist bereits vergeben."
#: bookwyrm/settings.py:142
msgid "English"
-msgstr ""
+msgstr "Englisch"
#: bookwyrm/settings.py:143
msgid "German"
-msgstr ""
+msgstr "Deutsch"
#: bookwyrm/settings.py:144
msgid "French"
-msgstr ""
+msgstr "Französisch"
#: bookwyrm/settings.py:145
msgid "Simplified Chinese"
-msgstr ""
+msgstr "Vereinfachtes Chinesisch"
#: bookwyrm/templates/author.html:16 bookwyrm/templates/author.html:17
#: bookwyrm/templates/edit_author.html:5
@@ -97,7 +97,7 @@ msgstr "Bücher von %(name)s"
#: bookwyrm/templates/book.html:21
msgid "by"
-msgstr ""
+msgstr "von"
#: bookwyrm/templates/book.html:29 bookwyrm/templates/book.html:30
#: bookwyrm/templates/edit_book.html:5
@@ -144,8 +144,8 @@ msgstr "In OpenLibrary ansehen"
#, python-format
msgid "(%(review_count)s review)"
msgid_plural "(%(review_count)s reviews)"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "(%(review_count)s Bewertung)"
+msgstr[1] "(%(review_count)s Bewertungen)"
#: bookwyrm/templates/book.html:106
msgid "Add Description"
@@ -257,7 +257,7 @@ msgstr ""
#: bookwyrm/templates/discover/about.html:13
#: bookwyrm/templates/discover/about.html:29
msgid "Privacy Policy"
-msgstr ""
+msgstr "Datenschutzerklärung"
#: bookwyrm/templates/discover/discover.html:6
msgid "Recent Books"
@@ -482,20 +482,20 @@ msgstr "Hier sind noch keine Bücher! Versuche nach Büchern zu suchen um loszul
#, fuzzy
#| msgid "Read"
msgid "To Read"
-msgstr "Lesen"
+msgstr "Auf der Leseliste"
#: bookwyrm/templates/feed/feed_layout.html:24
#: bookwyrm/templates/user/shelf.html:24
#, fuzzy
#| msgid "Start reading"
msgid "Currently Reading"
-msgstr "Zu lesen beginnen"
+msgstr "Gerade lesend"
#: bookwyrm/templates/feed/feed_layout.html:25
#: bookwyrm/templates/snippets/shelve_button/shelve_button_options.html:11
#: bookwyrm/templates/user/shelf.html:24
msgid "Read"
-msgstr "Lesen"
+msgstr "Gelesen"
#: bookwyrm/templates/feed/feed_layout.html:76 bookwyrm/templates/goal.html:26
#: bookwyrm/templates/snippets/goal_card.html:6
@@ -1268,7 +1268,7 @@ msgstr ""
#: bookwyrm/templates/snippets/book_titleby.html:3
#, python-format
msgid "%(title)s by "
-msgstr "%(title)s von"
+msgstr "%(title)s von "
#: bookwyrm/templates/snippets/boost_button.html:8
#: bookwyrm/templates/snippets/boost_button.html:9
@@ -1312,7 +1312,7 @@ msgstr ""
#: bookwyrm/templates/snippets/rate_action.html:14
#: bookwyrm/templates/snippets/stars.html:3
msgid "No rating"
-msgstr ""
+msgstr "Kein Rating"
#: bookwyrm/templates/snippets/create_status_form.html:54
msgid "Include spoiler alert"
@@ -1327,7 +1327,7 @@ msgstr "Privat"
#: bookwyrm/templates/snippets/create_status_form.html:67
msgid "Post"
-msgstr ""
+msgstr "Absenden"
#: bookwyrm/templates/snippets/delete_readthrough_modal.html:4
msgid "Delete these read dates?"