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

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay