# Testumgebung - setzt auf dem fertigen Anwendungs-Image auf. # # Vorteil: die Abhängigkeiten sind dort schon installiert und werden nicht # ein zweites Mal geholt. Die Tests laufen ausserdem gegen genau die # Fassungen, die auch ausgeliefert werden. # # Der Quellcode wird trotzdem NEU hineinkopiert. Ohne das würden die Tests # gegen den Stand des Basis-Images laufen - ist es veraltet, prüfen sie # stillschweigend alten Code und melden Erfolg. # # ENTRYPOINT wird geleert: der des Anwendungs-Images führt eine # Datenbank-Migration aus, die für die Tests weder nötig noch erwünscht ist. # # Bewusst ohne Bind-Mount: läuft der CI-Runner selbst in einem Container, # zeigt $PWD auf einen Pfad, den der Docker-Daemon des Hosts nicht kennt. # Der Mount wäre leer und die Tests liefen ohne Fehlermeldung ins Leere. ARG BASIS=kleiderboerse-app FROM ${BASIS} USER root ENTRYPOINT [] COPY requirements-dev.txt ./ RUN pip install --no-cache-dir -r requirements-dev.txt COPY alembic.ini ./ COPY alembic/ ./alembic/ COPY app/ ./app/ COPY tests/ ./tests/ CMD ["python", "-m", "pytest", "-q"]