Files
tkmind_go/documentation/docs/tutorials/isolated-development-environments.md
T

126 lines
4.7 KiB
Markdown
Raw Normal View History

2025-06-19 15:39:16 +10:00
---
title: Isolated Development Environments
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
This guide shows you how to set up isolated development environments using the **[Container Use MCP](https://github.com/dagger/container-use)** with goose. With this setup, your development work will be isolated to both git branches and containers, allowing you to experiment freely without affecting your main system state.
2026-02-05 08:59:28 -08:00
The Container Use MCP offers powerful ways to do isolated development which are very agent friendly (build on tools like Docker, copy on write filesystems, and more).
2025-06-19 15:39:16 +10:00
## Overview
The **[Container Use MCP](https://github.com/dagger/container-use)** server provides containerized development environments that integrate seamlessly with goose. This allows you to:
2025-06-19 15:39:16 +10:00
- Work on changes isolated to git branches
- Run code in containers without affecting your local machine
- Easily reset and start fresh when needed
- Maintain clean separation between different projects and experiments
- Work on things in parallel
2026-02-05 08:59:28 -08:00
:::info Already Using Devcontainers?
If you develop inside Docker containers (like VS Code Remote-Containers), see how you can [run extensions in your existing containers](/docs/tutorials/goose-in-docker#running-extensions-in-docker-containers).
:::
2025-06-19 15:39:16 +10:00
## Prerequisites
- Docker ([Podman](https://docs.dagger.io/ci/integrations/podman), [NerdCtl](https://docs.dagger.io/ci/integrations/nerdctl/) or [Container](https://docs.dagger.io/ci/integrations/apple-container/)) installed and running on your system
2025-06-19 15:39:16 +10:00
- Git installed and configured
- goose installed and configured
2025-06-19 15:39:16 +10:00
2026-02-05 08:59:28 -08:00
## Setup
2025-06-19 15:39:16 +10:00
2026-02-05 08:59:28 -08:00
For installation and configuration instructions, see the [Container Use Extension](/docs/mcp/container-use-mcp) tutorial.
2025-06-19 15:39:16 +10:00
## Usage
Once the extension is enabled in goose, you can:
2025-06-19 15:39:16 +10:00
### Starting Isolated Development
Simply mention in your conversation with goose that you want to work in an isolated environment:
2025-06-19 15:39:16 +10:00
```
"I want to experiment with adding a new feature, but I want to do it in an isolated environment so I don't affect my main codebase."
```
goose will automatically:
2025-06-19 15:39:16 +10:00
1. Create a new git branch for your work
2. Set up a containerized environment
3. Ensure all changes are isolated from your host system
### Working with Experiments
```
"Let me try a completely different approach to this algorithm. Can you set up an isolated environment where I can experiment?"
```
### Learning New Technologies
```
"I want to try out this new framework, but I don't want to install all its dependencies on my main system."
```
## Benefits
- **Safety**: Experiment without fear of breaking your main development environment
- **Reproducibility**: Consistent environments across different machines and team members
- **Isolation**: Multiple projects can run simultaneously without conflicts
- **Easy cleanup**: Remove containers and branches when done
- **Version control**: All changes are tracked in isolated git branches
- **Rollback capability**: Easily discard failed experiments
## Common Workflows
### Feature Development
1. Start a conversation with goose about a new feature
2025-06-19 15:39:16 +10:00
2. Request isolated development environment
3. goose creates branch and container
2025-06-19 15:39:16 +10:00
4. Develop and test the feature
5. If successful, merge the branch; if not, discard it
### Dependency Exploration
1. Ask goose to explore a new library or tool
2025-06-19 15:39:16 +10:00
2. Work in isolated container with the dependency
3. Test compatibility and functionality
4. Decide whether to integrate into main project
### Refactoring
1. Request isolated environment for major refactoring
2. Make changes in safety of container and branch
3. Test thoroughly before merging
4. Easy rollback if issues arise
## Troubleshooting
### Common Issues
**Docker not running:**
- Ensure Docker Desktop is installed and running
- Check Docker daemon status: `docker info`
**Permission issues:**
- Ensure your user has permission to run Docker commands
- On Linux, add user to docker group: `sudo usermod -aG docker $USER`
**Git issues:**
- Ensure Git is properly configured with user name and email
- Check that you're in a Git repository when starting isolated work
### Getting Help
If you encounter issues:
1. Check the **[Container Use GitHub repository](https://github.com/dagger/container-use)** for documentation
2. Verify all prerequisites are installed and working
2026-08-01 00:49:19 +02:00
3. Join our [Discord community](https://discord.gg/n8R5VaWDAn) for support
2025-06-19 15:39:16 +10:00
## Next Steps
With container-use enabled in goose, you're ready to develop with confidence. Try starting a conversation about a project you've been hesitant to experiment with, and let goose set up a safe, isolated environment for your exploration.
2025-06-19 15:39:16 +10:00
2025-06-22 17:24:55 -05:00
Remember: with isolated environments, there's no such thing as a failed experiment - only learning opportunities that don't affect your main codebase.