Run multiple services inside a docker container
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
|