A development container automates a number of setup activities required for a functioning local development environment such as:
- Configuration of additional operating system package repositories.
- Installation of additional operating system packages.
- Addition of Visual Studio Code extensions.
- CAP XML database creation and reference data population using a containerised Postgres instance.
- Use of a containerised Postgres Graphical User Interface for performing database operations.
- LocalStack AWS API Gateway and AWS Lambda
provisioning to facilitate local running and debugging of CAP XML calls without round tripping
to AWS infrastructure.
- The LocalStack AWS Command Line interface is used during provisioning and can also be used at runtime.
- Runtime environment variable configuration.
- Configuration generation providing connectivity to local development environment resources.
Development containers are based on Docker outside Of Docker Compose with LocalStack integration.
Development containers run as an unprivileged vscode user with passwordless sudo access.
The development environment as code approach ensures that all developers utilise a common development environment without having to follow detailed setup instructions that could be erroneous, incomplete or followed incorrectly.
If an existing local development environment has been configured manually it is recommended that a backup of it is created before proceeding.
- Prerequisites
- Local Repository Creation
- Workspace Folder Configuration
- Not applicable when using Windows with non-systemd enabled WSL 2 currently.
- Rootless Docker Configuration
- Only applicable when using native Linux or systemd enabled WSL 2 with native Docker.
- Dev Container Creation
- Running And Debugging Lambda Functions
- Troubleshooting
- Teardown
- Additional Development Container Considerations