M1Mac의 Terraform(docker를 통해)을 느리게 하려고 합니다.

4504 단어 DockerTerraformM1tech
이 글은 단지 아래의 글에 근거하여 자신의 업무 흐름에 따라 맞춤형으로 제작한 것이기 때문에 먼저 이쪽을 보는 것이 좋다.
https://zenn.dev/keitap/articles/bbb7c295af5962

개시하다


Terraform을 사용할 때 프로젝트에 따라 사용 버전이 다르기 때문에 실제 업무에서 tfenv나docker를 통해 실행됩니다.
현재 작업장에서는 이런 느낌의 메이크 지령을 제작해 투명하게 도커 지령을 사용할 수 있다.
# 実際は使っているクラウドサービスによって認証情報が必要
terraform=docker run -it --rm -v $$(pwd):/app/ -w /app/ hashicorp/terraform:1.1.7

tf-init: ## terraform init
	$(terraform) init

tf-plan: ## terraform plan
	$(terraform) plan

...
이것은 매우 편리하지만hashicorp/terraform의 이미지는arm 구조를 지원하지 않습니다. 먼저 동작을 하지만 시뮬레이터를 거쳐야 하기 때문에 좀 느립니다.
매번 이런 WARNING이 나오기 때문에 뭔가를 하고 싶다.
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

자체 구축


따라서 스스로 세워야 한다.Dockerfile는 이런 느낌공식.을 조금 바꿨을 뿐이다.
FROM alpine:latest as build

ARG TERRAFORM_VERSION=UNSPECIFIED

RUN apk add --no-cache curl git openssh && \
    curl -O https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_arm.zip && \
    unzip terraform_${TERRAFORM_VERSION}_linux_arm.zip -d /bin

FROM alpine:latest as final
ARG TERRAFORM_VERSION=UNSPECIFIED

RUN apk add --no-cache git openssh

COPY --from=build ["/bin/terraform", "/bin/terraform"]

ENTRYPOINT ["/bin/terraform"]
구축 후 공식 창고와 같은 라벨을 붙인다.
docker build -t hashicorp/terraform:1.1.8 --build-arg TERRAFORM_VERSION=1.1.8 .
문제 없이 구축할 수 있다면 Makefile에 사용된 버전의 이미지를 만듭니다.
Makefile은 M1의 이미지로 Terraform을 두드릴 수 있습니다.

좋은 웹페이지 즐겨찾기