dcontainer


Namedcontainer JSON
Version 1.0.12 PyPI version JSON
download
home_page
Summary
upload_time2023-08-23 12:11:31
maintainer
docs_urlNone
authorDaniel Braun
requires_python
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # dcontainer CLI


## Installation


`pip install dcontainer`


### Feature Generation:

```
Usage: python -m dcontainer generate devcontainer-feature [OPTIONS]
                                                        FEATURE_DEFINITION
                                                        OUTPUT_DIR

Arguments:
  FEATURE_DEFINITION  [required]
  OUTPUT_DIR          [required]

Options:
  --help                          Show this message and exit.
```


Input for feature generation is a `feature-definition.json` file
This is an *extended* version of the [devcontainer-feature.json](https://containers.dev/implementors/features/#devcontainer-feature-json-properties) file with *additional fields*:

```yaml
{   
    ...
    regular devcontainer-json fields  like id, name, description etc
    ...


    # dependencies are list of features and options  (those will be installed as prerequisites to your feature)
    "dependencies": [
        {
            "feature": "ghcr.io/devcontainers-contrib/features/asdf-package:latest",
            "options": {
                "plugin": "act",

                "version": "latest"
            }
        }
    ],

    # This command will be executed after the dependency feature list has been installed
    "install_command": "echo 'Done'",

    # this example test scenario checks the default options (empty options dict), each test_command should exit wth code `0` if your feature is installed correctly.
    "test_scenarios": [
        {
            "name": "test_defaults",
            "image": "mcr.microsoft.com/devcontainers/base:debian",
            "test_commands": [
                "act --version"
            ],
            "options": {}
        }
    ]
}
```

#### redirect input

```yaml
{
    ...


    "options": {
        "version": {
            "type": "string",
            "default": "latest",
            "description": "Select the version of act to install2."
        }
    },

    # you can also redirect one of your actual devcontainer-feature.json options values into a dependency input, note the `$options.version` pointer to the asdf-package version option
    "dependencies": [
        {
            "feature": "ghcr.io/devcontainers-contrib/features/asdf-package:latest",
            "options": {
                "plugin": "act",
                "version": "$options.version"
            }
        }
    ],

    ...
}
```

### Usage example


this will generate the Elixir feature 
It assumes you have the dcontainer cli already installed

```sh
git clone https://github.com/devcontainers-contrib/cli --depth 1
cd cli


dcontainer generate devcontainer-feature "./test/resources/test_feature_definitions/elixir-asdf/feature-definition.json" "./output_dir"
```

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "dcontainer",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "",
    "author": "Daniel Braun",
    "author_email": "",
    "download_url": "",
    "platform": null,
    "description": "# dcontainer CLI\n\n\n## Installation\n\n\n`pip install dcontainer`\n\n\n### Feature Generation:\n\n```\nUsage: python -m dcontainer generate devcontainer-feature [OPTIONS]\n                                                        FEATURE_DEFINITION\n                                                        OUTPUT_DIR\n\nArguments:\n  FEATURE_DEFINITION  [required]\n  OUTPUT_DIR          [required]\n\nOptions:\n  --help                          Show this message and exit.\n```\n\n\nInput for feature generation is a `feature-definition.json` file\nThis is an *extended* version of the [devcontainer-feature.json](https://containers.dev/implementors/features/#devcontainer-feature-json-properties) file with *additional fields*:\n\n```yaml\n{   \n    ...\n    regular devcontainer-json fields  like id, name, description etc\n    ...\n\n\n    # dependencies are list of features and options  (those will be installed as prerequisites to your feature)\n    \"dependencies\": [\n        {\n            \"feature\": \"ghcr.io/devcontainers-contrib/features/asdf-package:latest\",\n            \"options\": {\n                \"plugin\": \"act\",\n\n                \"version\": \"latest\"\n            }\n        }\n    ],\n\n    # This command will be executed after the dependency feature list has been installed\n    \"install_command\": \"echo 'Done'\",\n\n    # this example test scenario checks the default options (empty options dict), each test_command should exit wth code `0` if your feature is installed correctly.\n    \"test_scenarios\": [\n        {\n            \"name\": \"test_defaults\",\n            \"image\": \"mcr.microsoft.com/devcontainers/base:debian\",\n            \"test_commands\": [\n                \"act --version\"\n            ],\n            \"options\": {}\n        }\n    ]\n}\n```\n\n#### redirect input\n\n```yaml\n{\n    ...\n\n\n    \"options\": {\n        \"version\": {\n            \"type\": \"string\",\n            \"default\": \"latest\",\n            \"description\": \"Select the version of act to install2.\"\n        }\n    },\n\n    # you can also redirect one of your actual devcontainer-feature.json options values into a dependency input, note the `$options.version` pointer to the asdf-package version option\n    \"dependencies\": [\n        {\n            \"feature\": \"ghcr.io/devcontainers-contrib/features/asdf-package:latest\",\n            \"options\": {\n                \"plugin\": \"act\",\n                \"version\": \"$options.version\"\n            }\n        }\n    ],\n\n    ...\n}\n```\n\n### Usage example\n\n\nthis will generate the Elixir feature \nIt assumes you have the dcontainer cli already installed\n\n```sh\ngit clone https://github.com/devcontainers-contrib/cli --depth 1\ncd cli\n\n\ndcontainer generate devcontainer-feature \"./test/resources/test_feature_definitions/elixir-asdf/feature-definition.json\" \"./output_dir\"\n```\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "",
    "version": "1.0.12",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a45855e76d27171c5b4da1a19bb7b49574fc2f6588a884a685aa3db61efb043f",
                "md5": "4f214e6a62bca59353ff0083118ad1bd",
                "sha256": "976c9cd56f843ef2f034d1f6876734c5c42c56311bc7391ee2fc9c84492d0f06"
            },
            "downloads": -1,
            "filename": "dcontainer-1.0.12-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4f214e6a62bca59353ff0083118ad1bd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 17937,
            "upload_time": "2023-08-23T12:11:31",
            "upload_time_iso_8601": "2023-08-23T12:11:31.841834Z",
            "url": "https://files.pythonhosted.org/packages/a4/58/55e76d27171c5b4da1a19bb7b49574fc2f6588a884a685aa3db61efb043f/dcontainer-1.0.12-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-23 12:11:31",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "dcontainer"
}
        
Elapsed time: 0.30767s