Skip to content

Suite Devcontainer

The ITsynch Suite includes a devcontainer with all the tooling required to develop on the Suite. This is a replacement of the setup-environment.sh script and the "activated container" concept. The devcontainer already includes all the tools that you need to develop, like dotnet, node, yarn, kubectl, k3d, etc.

The Suite's devcontainer will mount your repository inside a docker volume for it to be accessed by the devcontainer. This has performance issues on Windows, so we recommend you use WSL2 together with the devcontainer.

Some requirements include:

  1. When developing on Windows, the Suite's devcontainer must be run in WSL.
  2. SSH Key authentication with Azure DevOps must already be in place.

Developing in a devcontainer

  1. Open a WSL shell
  2. Clone the Suite's repository at your WSL home.
Bash
1
2
3
git clone git@ssh.dev.azure.com:v3/itsynch/ITsynch.Suite/ITsynch.Suite ~/itsynch-suite

cd ~/itsynch-suite
  1. Then, to open vscode run:
Bash
code .
  1. You'll then be prompted on the lower right to "Reopen on Devcontainer"

First steps

The devcontainer already includes all the tooling that you need for developing Angular, dotnet, kubernetes, etc.

Some commands you can try out that should work out of the box:

Bash
dotnet --info
node --version
yarn --version

docker info
kubectl version
k3d version

# The docker daemon should be mounted and you should be able to run docker commands
docker ps

Angular

Let's kickstart the Angular environment first. Inside vscode, open a new shell:

Bash
cd angular
yarn

That should get you all packages installed and ready to start development.

Dotnet

To kickstart the dotnet environment, let's open a new shell and type:

Note

You don't need to "activate" the dotnet environment, it's already done for you.

Bash
cd dotnet
./slngen.sh Landings

Once the Landings solution is generated, you can open it from within vscode using the "Solution Explorer" at the bottom of the right sidebar.

Click Open Solution and chose your bounded context's solution.

Using Rider

Rider supports running on DevContainers, however further testing and workflow needs to be implemented.

Rider + WSL + DevContainer needs to be researched.

Kubernetes Deployment

To kickstart the local development cluster, simply run the suite-installer as usual.

Note

You don't need to "activate" the deployment environment, it's already done for you. And it's global, you don't need to be at deployments/ for it to work.

Bash
suite-installer localdev/hub

Known Issues

Docker credential command not supported without credential helper

Text Only
Error saving credentials: error storing credentials - err: exit status 1, out: `Docker credential command not supported without credential helper: store.`

Fixed by removing the credsStore key on the ~/.docker/config.json