dmake


Namedmake JSON
Version 0.0.1.dev61 PyPI version JSON
download
home_pagehttps://dmake.org
SummaryA Docker+Swarm-based CI toolset frontend
upload_time2023-09-14 18:04:04
maintainer
docs_urlNone
authorNumeriCube
requires_python>=3.4
licenseGPL-2
keywords docker ci
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage
            <h2 align="center">Docker-based CI/CD made easy</h2>

<p align="center">
<a href="https://travis-ci.com/numericube/dmake"><img alt="Build Status" src="https://travis-ci.com/numericube/dmake.svg?branch=master"></a>
</p>

Dmake is the missing link between Docker and your Cloud Provider \(AWS / Azure / other\).

**Dmake makes Docker and cloud-based CI/CD easy:**

* Start your projects with CI/CD built-in
* Stop spending hours tuning your docker-compose configuration files
* Collaborate with your fellow developers ensuring your environments are all the same \(ie. no more "it worked on my local machine but not on the server"\)

## What can dmake do for me?

Dmake is a frontend to Docker+Swarm, providing sensible defaults for usual CI/CD tasks such as:

* keeping track of various environments \(dev/test/prod/etc\)
* managing releases and deployments
* performing day-to-day operations on a Swarm cluster \(eg "I want to run this piece of code on that environment"\)
* ...and do all of this with AWS or Azure clusters!

We are making a few assumptions for now:

* We use Docker \(obviously\)
* We use docker-compose because it's the right tool for this job.
* We use Swarm. We know this is a controversial choice but we plan to move the whole project to Kubernetes. In the meantime... ...sorry: Swarm.
* We assume your repository is hosted on Git 🤷‍
* Your provision configuration is stored in the 'provision/' directory by default \(customizable\)

## See it in action

### How to write docker-compose.yml files?

Without `dmake`:

```...hours of fiddling, docker-compose start/stop commands with ever-growing parameters...```

With `dmake`:

```
$ dmake config
```

### Start a multi-environment docker-compose stack

Without `dmake`:

```
$ DEPLOY_ENV=dev docker-compose -f my-project/docker-compose.yml -f my-project/docker-dev.yml start
```

With `dmake`:

```
$ dmake stack start
```

### Creating a multi-environment setup (dev / test / staging / prod)

```
$ dmake config --env=test
$ dmake config --env=staging
$ dmake config --env=prod
```

### Execute a command inside a specific container of your running stack

```
$ dmake stack exec /bin/bash
```


## General principles

dmake makes your development, releases and deployment operations WAY simpler and streamlined with Docker+Swarm.

It practically makes your project fool-proof for users who don't know or do not want to learn all about Docker.

But it allows power users to save time and energy by providing convenient frontends to most operations.

The only thing you have to do is describe your project architecture in the 'provision/' directory. And we provided a few tools to get you started right away.

## Getting started: a dmake tutorial

Suppose you want to build an architecture with 3 different Ubuntu containers. The first thing is to get them running with Docker, as you'd do with your usual containers anyway.

Then we provide a few shortcuts to convert this machines into your docker-compose files. The rest is copy/paste. Easy.

For example, let's create a project and run 3 containers that just wait forever::

```text
$ mkdir sandbox # Or you can start from an existing git repository
$ cd sandbox
$ docker run --name my_container1 ubuntu sleep infinity &
$ docker run --name my_container1 ubuntu sleep infinity &
$ docker run --name my_container1 ubuntu sleep infinity &
```

You've got an Ubuntu container running and waiting forever. Let's integrate it into our project.

```text
$ dmake config
```

We've now created a `provision` directory with all the necessary files to have your architecture up and ready. You just have to start it right away:

```text
$ dmake stack start
```

=&gt; Et voilĂ . Your stack is up and running again.

From there you can make changes to your existing containers and if you want to update your containers according to the current configuration, just execute again:

```text
$ dmake config
$ dmake stack stop
$ dmake stack start # (should implement dmake stack restart, sorry)
```

Then, from your project's root:

```text
$ dmake

$ dmake -h

$ dmake status -h   # From an in-depth review of how your files should be layed out.
```

## TODO

* Integrate Kubernetes instead of Swarm

## FAQ

## Testing dmake

Use a virtualenv, pretty please. The rest is pretty easy:

$ pip install -e . $ pip install pytest $ python -m pytest \[--skipslow\]

or

$ make test


## Release dmake

(useful for internal folks)

$ make
$ make release
$ make dist

Username is 'ncube'
Password is in the vault ;)




            

Raw data

            {
    "_id": null,
    "home_page": "https://dmake.org",
    "name": "dmake",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.4",
    "maintainer_email": "",
    "keywords": "docker,CI",
    "author": "NumeriCube",
    "author_email": "support@numericube.com",
    "download_url": "https://files.pythonhosted.org/packages/f8/04/a3577724d8fbe87369c156dd81e87d72d14c760e17eb5a249bc5d748517d/dmake-0.0.1.dev61.tar.gz",
    "platform": null,
    "description": "<h2 align=\"center\">Docker-based CI/CD made easy</h2>\n\n<p align=\"center\">\n<a href=\"https://travis-ci.com/numericube/dmake\"><img alt=\"Build Status\" src=\"https://travis-ci.com/numericube/dmake.svg?branch=master\"></a>\n</p>\n\nDmake is the missing link between Docker and your Cloud Provider \\(AWS / Azure / other\\).\n\n**Dmake makes Docker and cloud-based CI/CD easy:**\n\n* Start your projects with CI/CD built-in\n* Stop spending hours tuning your docker-compose configuration files\n* Collaborate with your fellow developers ensuring your environments are all the same \\(ie. no more \"it worked on my local machine but not on the server\"\\)\n\n## What can dmake do for me?\n\nDmake is a frontend to Docker+Swarm, providing sensible defaults for usual CI/CD tasks such as:\n\n* keeping track of various environments \\(dev/test/prod/etc\\)\n* managing releases and deployments\n* performing day-to-day operations on a Swarm cluster \\(eg \"I want to run this piece of code on that environment\"\\)\n* ...and do all of this with AWS or Azure clusters!\n\nWe are making a few assumptions for now:\n\n* We use Docker \\(obviously\\)\n* We use docker-compose because it's the right tool for this job.\n* We use Swarm. We know this is a controversial choice but we plan to move the whole project to Kubernetes. In the meantime... ...sorry: Swarm.\n* We assume your repository is hosted on Git \ud83e\udd37\u200d\n* Your provision configuration is stored in the 'provision/' directory by default \\(customizable\\)\n\n## See it in action\n\n### How to write docker-compose.yml files?\n\nWithout `dmake`:\n\n```...hours of fiddling, docker-compose start/stop commands with ever-growing parameters...```\n\nWith `dmake`:\n\n```\n$ dmake config\n```\n\n### Start a multi-environment docker-compose stack\n\nWithout `dmake`:\n\n```\n$ DEPLOY_ENV=dev docker-compose -f my-project/docker-compose.yml -f my-project/docker-dev.yml start\n```\n\nWith `dmake`:\n\n```\n$ dmake stack start\n```\n\n### Creating a multi-environment setup (dev / test / staging / prod)\n\n```\n$ dmake config --env=test\n$ dmake config --env=staging\n$ dmake config --env=prod\n```\n\n### Execute a command inside a specific container of your running stack\n\n```\n$ dmake stack exec /bin/bash\n```\n\n\n## General principles\n\ndmake makes your development, releases and deployment operations WAY simpler and streamlined with Docker+Swarm.\n\nIt practically makes your project fool-proof for users who don't know or do not want to learn all about Docker.\n\nBut it allows power users to save time and energy by providing convenient frontends to most operations.\n\nThe only thing you have to do is describe your project architecture in the 'provision/' directory. And we provided a few tools to get you started right away.\n\n## Getting started: a dmake tutorial\n\nSuppose you want to build an architecture with 3 different Ubuntu containers. The first thing is to get them running with Docker, as you'd do with your usual containers anyway.\n\nThen we provide a few shortcuts to convert this machines into your docker-compose files. The rest is copy/paste. Easy.\n\nFor example, let's create a project and run 3 containers that just wait forever::\n\n```text\n$ mkdir sandbox # Or you can start from an existing git repository\n$ cd sandbox\n$ docker run --name my_container1 ubuntu sleep infinity &\n$ docker run --name my_container1 ubuntu sleep infinity &\n$ docker run --name my_container1 ubuntu sleep infinity &\n```\n\nYou've got an Ubuntu container running and waiting forever. Let's integrate it into our project.\n\n```text\n$ dmake config\n```\n\nWe've now created a `provision` directory with all the necessary files to have your architecture up and ready. You just have to start it right away:\n\n```text\n$ dmake stack start\n```\n\n=&gt; Et voil\u00e0. Your stack is up and running again.\n\nFrom there you can make changes to your existing containers and if you want to update your containers according to the current configuration, just execute again:\n\n```text\n$ dmake config\n$ dmake stack stop\n$ dmake stack start # (should implement dmake stack restart, sorry)\n```\n\nThen, from your project's root:\n\n```text\n$ dmake\n\n$ dmake -h\n\n$ dmake status -h   # From an in-depth review of how your files should be layed out.\n```\n\n## TODO\n\n* Integrate Kubernetes instead of Swarm\n\n## FAQ\n\n## Testing dmake\n\nUse a virtualenv, pretty please. The rest is pretty easy:\n\n$ pip install -e . $ pip install pytest $ python -m pytest \\[--skipslow\\]\n\nor\n\n$ make test\n\n\n## Release dmake\n\n(useful for internal folks)\n\n$ make\n$ make release\n$ make dist\n\nUsername is 'ncube'\nPassword is in the vault ;)\n\n\n\n",
    "bugtrack_url": null,
    "license": "GPL-2",
    "summary": "A Docker+Swarm-based CI toolset frontend",
    "version": "0.0.1.dev61",
    "project_urls": {
        "Bug Tracker": "https://github.com/numericube/dmake",
        "Documentation": "https://github.com/numericube/dmake",
        "Homepage": "https://dmake.org",
        "Source Code": "https://github.com/numericube/dmake"
    },
    "split_keywords": [
        "docker",
        "ci"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f4ed7dba3eed4b1f03294de1abf6360c663895e5a7d4ec31cff82e692b8539fc",
                "md5": "021daad9e8da8eabb21b83b9214499f6",
                "sha256": "80ca4226ca1020c6a5c311bd737254fb2c40cd9599ad6f68fc3b7d46dcd92c14"
            },
            "downloads": -1,
            "filename": "dmake-0.0.1.dev61-py2-none-any.whl",
            "has_sig": false,
            "md5_digest": "021daad9e8da8eabb21b83b9214499f6",
            "packagetype": "bdist_wheel",
            "python_version": "py2",
            "requires_python": ">=3.4",
            "size": 61750,
            "upload_time": "2023-09-14T18:04:02",
            "upload_time_iso_8601": "2023-09-14T18:04:02.401223Z",
            "url": "https://files.pythonhosted.org/packages/f4/ed/7dba3eed4b1f03294de1abf6360c663895e5a7d4ec31cff82e692b8539fc/dmake-0.0.1.dev61-py2-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f804a3577724d8fbe87369c156dd81e87d72d14c760e17eb5a249bc5d748517d",
                "md5": "3c7239ad34da92ae16ae05e6bf45a1c4",
                "sha256": "8649cd7a64e3273fc506487be72d752b14a058266051cd6d6ff85d14f1907fc0"
            },
            "downloads": -1,
            "filename": "dmake-0.0.1.dev61.tar.gz",
            "has_sig": false,
            "md5_digest": "3c7239ad34da92ae16ae05e6bf45a1c4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.4",
            "size": 57634,
            "upload_time": "2023-09-14T18:04:04",
            "upload_time_iso_8601": "2023-09-14T18:04:04.326608Z",
            "url": "https://files.pythonhosted.org/packages/f8/04/a3577724d8fbe87369c156dd81e87d72d14c760e17eb5a249bc5d748517d/dmake-0.0.1.dev61.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-14 18:04:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "numericube",
    "github_project": "dmake",
    "travis_ci": true,
    "coveralls": true,
    "github_actions": false,
    "requirements": [],
    "tox": true,
    "lcname": "dmake"
}
        
Elapsed time: 0.12442s