Add Docker Compose profiles for dev and prod server setups (#198)

Since we are moving towards always running against Postgres, just
using `lnt runserver` without any Postgres server will eventually
stop being supported. To avoid creating a barrier for running local
instances, I want to make it easier to run a "real" server locally
backed by Postgres.

To do that, the easiest way is to simplify the Docker Compose setup
so that a full service can be brought up for local development in a
single command. This is achieved using profiles:

- Default (no profile): starts db + webserver, built from source, bound to
  localhost:8000. Suitable for local development:

    docker compose -f docker/compose.yaml --env-file docker/dev.env up

- prod profile: adds Nginx reverse proxy on port 80. The production
  deployment uses docker/compose.prod.yaml as an override to pull the
  pre-built LNT image from ghcr.io and bind volumes to the host
  filesystem, like it used to.
9 files changed
tree: fe627b397335c855471dc07f008b20f498539fd3
  1. .github/
  2. deployment/
  3. docker/
  4. docs/
  5. examples/
  6. lnt/
  7. schemas/
  8. tests/
  9. utils/
  10. .gitignore
  11. LICENSE.TXT
  12. MANIFEST.in
  13. pyproject.toml
  14. README.md
  15. requirements.client.txt
  16. requirements.server.txt
  17. requirements.txt
README.md

LNT: LLVM Nightly Test Infrastructure

About

LNT is an infrastructure for performance testing. The software itself consists of two main parts, a web application for accessing and visualizing performance data, and command line utilities to allow users to generate and submit test results to the server.

The package was originally written for use in testing LLVM compiler technologies, but is designed to be usable for the performance testing of any software.

Documentation

The official LNT documentation is available online at: https://llvm.org/docs/lnt

Source

The LNT source is available in the llvm-lnt repository: https://github.com/llvm/llvm-lnt

Contributing

To get started, please look at the Developer Guide in the official documentation.