multi-start
This tool aims to help running multiple services inside a single docker container.
Sometimes you might want to have backend, frontend and nginx (or a combination of those) inside a single container. This tool may help with:
- Prepare final Nginx configs using parse-template
- Wait until backend and frontend start responding before running Nginx
- Stop every process if one of them exits so the whole container stops gracefully
Installation
pip install multi-start
Usage
multi-start --help
Usage: multi-start [OPTIONS]
Run multiple services at once. Set DEBUG environment variable to 1 for more
verbose output when running.
Options:
--backend / --no-backend Enable backend service [default: no-
backend]
--backend-cmd TEXT Command to start backend service [default:
poetry run invoke serve]
--backend-dir TEXT Working directory for the backend [default:
backend]
--backend-port INTEGER Port number that backend is running at if
port is used
--backend-socket TEXT UNIX socket path that backend is running at
if socket is used [default:
/run/nginx/uvicorn.sock]
--frontend / --no-frontend Enable frontend service [default: no-
frontend]
--frontend-port INTEGER Port number that frontend is running at
[default: 3000]
--frontend-cmd TEXT Command to start frontend service [default:
pnpm run start]
--frontend-dir TEXT Working directory for the frontend
[default: frontend]
--nginx / --no-nginx Enable nginx [default: no-nginx]
--nginx-cmd TEXT Command to start Nginx [default: nginx -g
"daemon off;"]
--service-wait-time FLOAT How long to wait for a service to be up an
running (sec) [default: 3.0]
Development
Make sure you install pre-commit and run:
pre-commit install
For testing you can use e.g.
poetry run multi-start \
--backend \
--backend-dir ../another-project/src \
--backend-cmd "poetry run invoke dev" \
--backend-port 8080
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
multi_start-1.3.0.tar.gz
(5.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file multi_start-1.3.0.tar.gz.
File metadata
- Download URL: multi_start-1.3.0.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/4.0.2 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2448f1a41030ba92b6a1242470aafe3c8e69f01ced3e6115a14b3722c76142d
|
|
| MD5 |
663554b9c830809758bd94e09e74e1ca
|
|
| BLAKE2b-256 |
785b054750691f4ce117b572a0f19941c6c59b1dc05da7d633cae147953920f1
|
File details
Details for the file multi_start-1.3.0-py3-none-any.whl.
File metadata
- Download URL: multi_start-1.3.0-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/4.0.2 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
914ffdda4ccf5dd287af7c17c45cb91f1f20845270a4cbec440448e9dd6344a0
|
|
| MD5 |
5e298edad0c05675ed1a1e242300cd24
|
|
| BLAKE2b-256 |
5177b311273f834b7e22b3373515b91c7cd9535ad5c410d4184ad3a03bb60d7c
|