Quickstart ========== 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 by ``pydeployhelp-quickstart``. - ``pydeployhelp-quickstart``: Sets up a deployment directory with service file templates, including ``Dockerfile``, ``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. Installation ------------ You can install ``pydeployhelp`` from `PyPI `_: .. code-block:: shell pip install pydeployhelp Or install it locally from the project directory: .. code-block:: shell pip install -e . 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: .. code-block:: shell 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: .. code-block:: text 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): .. code-block:: shell 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: .. code-block:: text 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 ---------------- 1. **Quickstart Setup**: Use ``pydeployhelp-quickstart`` to set up your deployment directory with service templates. .. code-block:: shell pydeployhelp-quickstart 2. **Edit Configuration**: Customize the generated files (``Dockerfile``, ``docker-compose``, etc.) in the deployment directory to suit your project. 3. **Deploy**: Run ``pydeployhelp`` to start deploying your project. .. code-block:: shell pydeployhelp --task build --target all This workflow helps you easily set up a Docker environment and manage your deployments effectively.