https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/work-with-cdk-javascript.htmlにはすんなりできそうにも思える書き方されているんだけど、cdk initは空のディレクトリに対してしかできないので、そこだけコンテナを使って回避する。
まずはこんな感じでコンテナを作っておく。
Dockerfile
FROM node:18-bookworm
RUN npm install -g [email protected]
WORKDIR /usr/src/app
docker build -t aws-cdk-cli-2.99.1 .
次にcdkのプロジェクトディレクトリを作って、コンテナを起動する
mkdir cdk-sample
cd cdk-sample
docker run -it --mount type=bind,source="$(PWD)",target="/usr/src/app/$(basename $(PWD))" aws-cdk-cli-2.99.1 /bin/bash
最後にコンテナ内からプロジェクトを初期化して、aws-cdkをローカルインストールする
cd cdk-sample
cdk init app --language javascript
npm install --save-dev aws-cdk
これでコンテナの外(ホスト)からはこんな感じに使える
npx cdk list