• Kevin Morris's avatar
    Improve Docker ecosystem · 5bd46d18
    Kevin Morris authored
    Instead of using Dockerfile for everything, we've introduced
    a docker-compose.yml file and kept the Dockerfile to producing
    a pure base image for the services defined.
    docker-compose services:
    - `mariadb` - Setup mariadb
    - `sharness` - Run sharness suites
    - `pytest-mysql` - Run pytest suites with MariaDB
    - `pytest-sqlite` - Run pytest suites with SQLite
    - `test` - Run all tests and produce a collective coverage report
        - This target mounts a cache volume and copies any successful
          coverage report back to `./cache/.coverage`. Users can run
          `./util/fix-coverage ./cache/.coverage` to rewrite source
          code paths and move coverage into place to view reports
          on your local system.
    == Get Started ==
    Build `aurweb:latest`.
        $ docker build -t aurweb:latest .
    Run all tests via `docker-compose`.
        $ docker-compose up test
    You can also purely run `pytest` in SQLite or MariaDB modes.
        $ docker-compose up pytest-sqlite
        $ docker-compose up pytest-mysql...