DEV Community

Cover image for Using Docker for AWS CDK development
Miguel A. Calles
Miguel A. Calles

Posted on • Originally published at Medium

Using Docker for AWS CDK development

Have a consistent development environment for your team on any OS


Support me by reading this post on Medium.


Introduction

In early 2022, I was starting a new project on AWS. I was using AWS CDK for about one year at this time. In a previous project, the team members used a mix of macOS and Linux computers. It was only a matter of time before a Windows user joined the team. Having a consistent development environment was beneficial. Based on previous experiments with Docker, I decided to use a Docker container as that development environment.

https://betterprogramming.pub/stop-installing-node-js-and-global-npm-packages-use-docker-instead-42597990db13

About one year later, in early 2023, I worked on a different CDK project. I started the project using macOS. About one month later, the team leader gave me a Windows laptop for me to use going forward. It was super simple to move my development environment. I installed Docker and git, cloned the git repository, ran the Docker command, and I was able to start developing right away. Using Docker containers saved me a lot of time.

Here is how I set up my Docker container

In my git repository, I created a docker-compose.yml file where I added the following code:

version: '3'
services:
  nodejs:
    # used for local development
    image: 'cimg/node:18.15'
    user: 'circleci'
    working_dir: '/home/cdk'
    volumes:
      - './:/home/cdk'
    command: bash
Enter fullscreen mode Exit fullscreen mode

In the terminal, I ran the following command to start the container.

docker compose run --rm nodejs
Enter fullscreen mode Exit fullscreen mode

Now I have a terminal running within the container.

I go to my AWS CDK app folder.

cd my-cdk-app
Enter fullscreen mode Exit fullscreen mode

I paste my AWS credentials into the terminal. I can now run typical CDK commands.

npm run cdk synth
npm run cdk deploy
cdk synth
cdk deploy
# or however you have your cdk command execution set up
Enter fullscreen mode Exit fullscreen mode

Conclusion

The setup was pretty simple. Now we have a consistent development environment regardless of the operating system. Leave a comment and let me know your experience.

Before you go

Here are other posts you might enjoy.

AWS CDK Serverless Cookbook: A Step-by-step Guide to Build a Serverless App in the Cloud

Speed up AWS CDK deploys up to 80%: The ts-node package needed the speed boost

Build Robust Cloud Architectures: Applying Military Design Principles to Cloud Applications

Introduction to Cloud Computing Security: An excerpt from the Serverless Security book

Top comments (0)