🙆

EC2 Image Builder の components をテストする

2021/05/19に公開

2021/06/21 追記

イメージを Docker Hub に登録しました。
oppara/awstoe

はじめに

Docker イメージを作成し、Make で components のバリデーションを実行できるようしたい。
実行時のフェーズ指定は一旦無視。

元ネタは以下
[アップデート] EC2 Image Builder の components をローカルでテストするツールがリリースされました | DevelopersIO

Docker イメージをビルドする

FROM amazonlinux:2

RUN curl -O https://awstoe-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/latest/linux/386/awstoe \
 && chmod +x awstoe \
 && mv awstoe /usr/bin/.

ENV WORKDIR /data
WORKDIR /data

ビルド

% docker build -t oppara/awstoe:latest .

Makefile 作成

DOCKER = docker run --rm \
	-v $(CURDIR):/data \
	-w /data oppara/awstoe awstoe

TARGET=

.PHONY: validate
validate: ## make validate TARGET=/path/to/target.yml
	@$(DOCKER) validate --documents $(TARGET)

.PHONY: run
run: ## make run TARGET=/path/to/target.yml
	@$(DOCKER) run --documents $(TARGET)

.PHONY: build
build: ## build docker image
	docker build -t oppara/awstoe:latest .

components のバリデーション

% make validate TARGET=/path/to/components.yaml

components の実行

% make run TARGET=/path/to/components.yaml

環境

% sw_vers
ProductName:    macOS
ProductVersion: 11.3.1
BuildVersion:   20E241

% docker --version
Docker version 20.10.6, build 370c289

% docker run --rm oppara/awstoe awstoe --version
AWSTaskOrchestratorAndExecutor-1.0.1345.0

参考

Discussion