0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M3 MacでCodeBuildをローカルで実行する

Posted at

はじめに

ローカルでCodeBuildを実行しようといろんな記事を参考にしましたが、うまく起動できず、困ったので、同じように困った人の解決になればよいと思って記事にしました。

準備

事前に以下、インストールが必要になります。

  • git
  • docker

docker image ダウンロード

AmazonLinux2のARM版

AmazonLinux2のARM版のイメージがあるので、こちらをダウンロードします。

ここがハマりポイントで、単純に検索しただけでは、x86_64版しか見つからず、そっちを使ってしまい、うまくビルドできなかった

docker pull public.ecr.aws/codebuild/amazonlinux2-aarch64-standard:3.0

エージェントのDockerイメージダウンロード

こちらもARM版をダウンロードします。

docker pull public.ecr.aws/codebuild/local-builds:aarch64

コンテナ起動シェルダウンロード

コンテナを起動する、シェルファイルをダウンロードして、実行権限を付与します。

curl -OL https://raw.githubusercontent.com/aws/aws-codebuild-docker-images/master/local_builds/codebuild_build.sh
chmod +x codebuild_build.sh

buildspec.ymlの作成

buildspec.ymlファイルを作成します。

version: 0.2

phases:
  install:
    commands:
      - echo 'Hello World'

このときのディレクトリ構成は以下の状態です。

codebuild/
  buildspec.yml
  codebuild_build.sh

CodeBuild実行

以下、コマンドを実行すると、CodeBuildがローカルで実行できます。

./codebuild_build.sh -i public.ecr.aws/codebuild/amazonlinux2-aarch64-standard:3.0 -a output -l public.ecr.aws/codebuild/local-builds:aarch64

おまけ

CodeBuildからローカルで起動してる別コンテナに接続したい

buildspec.ymlで例えばmysqlというコンテナに接続したい、とするとcodebuild_build.shを少し編集するとできるようになります。

簡単に説明すると、CodeBuildコンテナのネットワークにmysqlコンテナのネットワークを所属させてあげれば、可能になります。
※もしかしたら、別の方法もあるのかも知れませんが、この方法でも可能です。

変数は適当にdocker_command2としてます。
所属させたいコンテナのネットワーク名はdocker network listを実行すればわかります。

docker_command2="docker network connec agent-resources_default ネットワーク名(mysqlコンテナが所属ネットワーク名)
eval $docker_command2
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?