Closed4

Install CDK for Terraform and run a quick start demoの内容が古かったのでメモ

yohaneyohane

https://github.com/cdktf/cdktf-provider-docker/blob/main/docs/API.go.md

quick start上のmain.goでのimportするcdktf-provider-docker-goのバージョンが古かったりするので
諸々修正が必要
バージョンは9で場所もhashicorpではなくcdktfになっている。

修正版のmain.goは下記となる。

main.go
package main

import (
	"github.com/aws/constructs-go/constructs/v10"
	"github.com/aws/jsii-runtime-go"
	"github.com/hashicorp/terraform-cdk-go/cdktf"

	"github.com/cdktf/cdktf-provider-docker-go/docker/v9/container"
	"github.com/cdktf/cdktf-provider-docker-go/docker/v9/image"
	dockerprovider "github.com/cdktf/cdktf-provider-docker-go/docker/v9/provider"
)

func NewMyStack(scope constructs.Construct, id string) cdktf.TerraformStack {
	stack := cdktf.NewTerraformStack(scope, &id)

	dockerprovider.NewDockerProvider(stack, jsii.String("docker"), &dockerprovider.DockerProviderConfig{})

	dockerImage := image.NewImage(stack, jsii.String("nginxImage"), &image.ImageConfig{
		Name:        jsii.String("nginx:latest"),
		KeepLocally: jsii.Bool(false),
	})

	container.NewContainer(stack, jsii.String("nginxContainer"), &container.ContainerConfig{
		Image: dockerImage.Name(),
		Name:  jsii.String("tutorial"),
		Ports: &[]*container.ContainerPorts{{
			Internal: jsii.Number(80), External: jsii.Number(8000),
		}},
	})

	return stack
}

func main() {
	app := cdktf.NewApp(nil)

	NewMyStack(app, "learn-cdktf-docker")

	app.Synth()
}
このスクラップは2024/01/19にクローズされました