CLI tool that helps integrating deploy (via Docker) to Python projects
Project description
pydeployhelp
Overview
pydeployhelp is a tool designed to simplify deploying Python projects using Docker. It can be used as a standalone CLI tool, offering flexibility in integrating deployment processes into your Python workflows.
After installation, the following CLI tools are available:
pydeployhelp: Deploys your project based on the configuration found in the deployment directory created bypydeployhelp-quickstart.pydeployhelp-quickstart: Sets up a deployment directory with service file templates, includingDockerfile,docker-compose, and configuration files.
pydeployhelp makes it easy to containerize and manage your Python applications using Docker, saving you time and reducing complexity in the deployment phase.
Documentation
For detailed instructions and the latest information, please visit the official documentation at Read the Docs.
Installation
- Python 3.11 or later is required.
Using pip (from PyPi)
-
Install via
pip:pip install pydeployhelp
-
Now you can use the
pydeployhelpcommand:pydeployhelp --help
Using uv (only for developers)
-
Clone this repository:
git clone https://github.com/iyazerski/pydeployhelp.git cd pydeployhelp
-
Install dependencies via uv:
uv sync -
To run the CLI:
uv run pydeployhelp --help
Requirements
pydeployhelp requires Docker to be installed on your system. The pydeployhelp-quickstart tool and the core library can be used without installing any additional system-level dependencies, making setup straightforward.
Updating to the Latest Version
To update to the latest version of pydeployhelp, run the following command:
python -m pip install --upgrade --no-cache-dir pydeployhelp
Usage
pydeployhelp
The main command for deploying your project is pydeployhelp. Here is an overview of the available options:
Usage: pydeployhelp [OPTIONS]
Main entrypoint, which will be called when executing `pydeployhelp` in console.
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --task TEXT List of deployment tasks defined in config.yaml │
│ --target TEXT List of deployment targets defined in config.yaml │
│ --deploydir TEXT Path to directory with deploy scripts (normally generated via `pydeployhelp-quickstart`) [default: deploy] │
│ --silent --no-silent Ignore all communication with user and use default values [default: no-silent] │
│ --version --no-version Print version and exit [default: no-version] │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Running pydeployhelp without the --silent flag will prompt you to provide information such as task names and services. Once completed, a status message regarding the deployment will be displayed.
Example of a non-interactive console mode (you won't be prompted for manual input):
pydeployhelp --task build --task up --target all
This command will run the specified deployment tasks (build and up) for all defined targets.
pydeployhelp-quickstart
The pydeployhelp-quickstart command is used to generate a deployment directory with the necessary service templates. Here is how you can use it:
Usage: pydeployhelp-quickstart [OPTIONS]
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --silent --no-silent Ignore all communication with user and use default values [default: no-silent] │
│ --version --no-version Print version and exit [default: no-version] │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Running pydeployhelp-quickstart without the --silent flag will prompt you to provide information such as the project name, deployment directory location, and supported tasks. Once completed, a status message will indicate the creation of the service files.
Example Workflow
- Quickstart Setup: Use
pydeployhelp-quickstartto set up your deployment directory with service templates.pydeployhelp-quickstart
- Edit Configuration: Customize the generated files (
Dockerfile,docker-compose, etc.) in the deployment directory to suit your project. - Deploy: Run
pydeployhelpto start deploying your project.pydeployhelp --task build --target all
This workflow helps you easily set up a Docker environment and manage your deployments effectively.
Contributing
Contributions are welcome! If you have any ideas or find a bug, please open an issue or submit a pull request on GitHub.
License
pydeployhelp is released under the MIT License. See the LICENSE file for more details.
Contact
If you have any questions or feedback, feel free to reach out to the project maintainer:
- GitHub: iyazerski
Thank you for using pydeployhelp! Happy deploying!
Project details
Release history Release notifications | RSS feed
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 pydeployhelp-1.4.3.tar.gz.
File metadata
- Download URL: pydeployhelp-1.4.3.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f5dc4e94fe326fa0c50ceb0633600fd121475e4443a2d4adc66a67c1b190325
|
|
| MD5 |
4ae93ec8b88b0e0365abe764aee6148a
|
|
| BLAKE2b-256 |
255a5b2668b39989175327455c0f2bc06abc4ecbbaeba0a0a08b99289e058d6e
|
Provenance
The following attestation bundles were made for pydeployhelp-1.4.3.tar.gz:
Publisher:
release.yml on iyazerski/pydeployhelp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydeployhelp-1.4.3.tar.gz -
Subject digest:
9f5dc4e94fe326fa0c50ceb0633600fd121475e4443a2d4adc66a67c1b190325 - Sigstore transparency entry: 293585915
- Sigstore integration time:
-
Permalink:
iyazerski/pydeployhelp@2e92e8376def17e1d3d478476d22eb4191e15504 -
Branch / Tag:
refs/tags/v1.4.3 - Owner: https://github.com/iyazerski
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2e92e8376def17e1d3d478476d22eb4191e15504 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pydeployhelp-1.4.3-py3-none-any.whl.
File metadata
- Download URL: pydeployhelp-1.4.3-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
256e34517da46cc63153147801589566dfbb5e6bf1e25d9fac4075988f2b0413
|
|
| MD5 |
9013344d7803aeac82eb47240aab89e4
|
|
| BLAKE2b-256 |
ab90251d84a2b5852cb7ea55e3df3a9a3000382768c2e6add7e79910a950bc40
|
Provenance
The following attestation bundles were made for pydeployhelp-1.4.3-py3-none-any.whl:
Publisher:
release.yml on iyazerski/pydeployhelp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pydeployhelp-1.4.3-py3-none-any.whl -
Subject digest:
256e34517da46cc63153147801589566dfbb5e6bf1e25d9fac4075988f2b0413 - Sigstore transparency entry: 293585916
- Sigstore integration time:
-
Permalink:
iyazerski/pydeployhelp@2e92e8376def17e1d3d478476d22eb4191e15504 -
Branch / Tag:
refs/tags/v1.4.3 - Owner: https://github.com/iyazerski
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2e92e8376def17e1d3d478476d22eb4191e15504 -
Trigger Event:
push
-
Statement type: