> For the complete documentation index, see [llms.txt](https://cortex-docs.paloaltonetworks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cortex-docs.paloaltonetworks.com/cortex-xsiam-developer-guide/cortex-xsiam-development-guide/readme/content-development-environments/set-up-a-containerized-development-environment.md).

# Set up a containerized development environment

You can set up a fully functional [development environment in a Docker container](https://code.visualstudio.com/docs/remote/containers). The containerized development environment includes all the necessary tools and dependencies needed to develop content in the [demisto/content](https://github.com/demisto/content) repository.

**Requirements**

The following must be installed on the host machine as described in [System Requirements](https://code.visualstudio.com/docs/devcontainers/containers#_system-requirements).

* [Docker](https://www.docker.com/get-started)
* [Visual Studio Code](https://code.visualstudio.com/)
* [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)

Recommended hots requirements are specified in [devcontainer.json](https://github.com/demisto/content/blob/master/.devcontainer/devcontainer.json).

* 4 CPUs
* 8GB of memory
* 32GB free disk space

You also need a forked/cloned [content repository](https://code.visualstudio.com/docs/devcontainers/containers#_installation) on the host machine.

**Installation**

Install Docker, Visual Studio Code, and the Dev Containers extension, following the [installation instructions](https://code.visualstudio.com/docs/devcontainers/containers#_installation) on the Visual Studio Code website.

Open the repository in Visual Studio Code

1. In Visual Studio Code, go to **File** → **Open Folder**.
2. Select the cloned/forked repository.
3. Create a new branch to use for your development.

Open the dev container in Visual Studio Code

1. In Visual Studio Code, click the green button.

   ![](/files/2cSU3XfUL3SZZ8iK5dS2)
2. Click **Reopen in Container**. Alternatively, open the command prompt (CMD+SHIFT+P) and search for `Reopen in Container`.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><h3>Note</h3><p>It may take a few minutes until the dev container is ready for use.</p></div>

**Usage**

Once the dev container is ready, a new Visual Studio Code window opens and the content repository is available.

![](/files/AGCsc73yHYwtxF5Qc1Dn)

The environment contains `demisto-sdk`, `zsh`, `git`, `pyenv`, `poetry`, preinstalled system and Python dependencies, and recommended extensions, including the [Cortex XSOAR Visual Studio Code Extension](https://xsoar.pan.dev/docs/concepts/vscode-extension).

**Troubleshooting**

If there are errors when opening the dev container, try the following:

* Update Docker
* Run the following command to clean up Docker: `docker system prune -a --volumes`


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cortex-docs.paloaltonetworks.com/cortex-xsiam-developer-guide/cortex-xsiam-development-guide/readme/content-development-environments/set-up-a-containerized-development-environment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
