adds devcontainer to facilitate local development
Intro
Hello, this is a very small contribution, and it might not even be accepted. I don't know the development workflow of other Skyvern contributors, but I had quite a bit of difficulty trying to run the Skyvern environment locally on my machine. I'm not a Python developer, and I know that setting up its environment can be quite challenging. Also, I don't always work on the same machine, which made it even more difficult to manually configure everything. So here's my two cents for those who want an easier time contributing to the project.
Skyvern Development Environment Setup
This PR implements improvements to the Docker development environment for the Skyvern project, making the configuration more robust and the developer experience more seamless.
Key Changes:
-
Dockerfile Updates:
- Added support for Python 3.11
- Configured Poetry for dependency management
- Installed Node.js via NVM for greater version flexibility
-
Docker Network Configuration:
- Implemented dedicated network for container communication
- Added dependency relationship between services
-
PostgreSQL Connection Fix:
- Adjusted connection string to work properly in containerized environment
- Configured database environment variables consistently
-
Support Scripts:
- Added scripts for testing database connection
- Simplified setup script for environment initialization
Benefits:
- Significantly reduces setup time for new developers
- Eliminates common PostgreSQL authentication errors
- Provides a more stable and predictable development environment
- Facilitates development across different operating systems
Image
[!IMPORTANT] Adds a Docker-based development environment setup for Skyvern, including environment configuration scripts and dependency management improvements.
- Docker Setup:
- Adds
docker-compose.dev.ymlfor containerized development environment.- Configures
Dockerfileindocker/devfor Python 3.11, Node.js via NVM, and Poetry.- Implements dedicated Docker network for service communication.
- Environment Configuration:
- Updates
.env.examplefor consistent database connection strings.- Adds
min_setup.shscript for initializing environment variables and dependencies.- Adjusts
run_skyvern.shandrun_ui.shto handle missinglsofcommand gracefully.- Miscellaneous:
- Adds
.bashrcindocker/devfor shell configuration and useful command aliases.- Simplifies PostgreSQL connection in
.env.exampleandmin_setup.sh.This description was created by
for a35f95fc52a0c4514ff0228973e235181b305a47. You can customize this summary. It will automatically update as commits are pushed.
@jomido what do you think?