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?

More than 3 years have passed since last update.

AWS CodeBuild において オンプレのJenkins では成功していたファイル権限系のテストをするとうまくいかない

Last updated at Posted at 2020-06-22

この記事を書くに至った経緯

私が開発しているチームでは、Jenkinsでビルド・テストを行っていました。
色々と環境をAWSに載せ替えていく中で、AWS CodeBuildを使用することになりました。
ところが、ReadOnlyに設定したファイルにWriteできないことをテストすると失敗しているではないか!
これはどうして、ということで調べた結果、わかったことがあります。

何が原因だった?どうやって解決した?

CodeBuild内ではデフォルトでroot権限で実行されます。公式のドキュメントにそう記載されています。
https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/troubleshooting.html#troubleshooting-root-build-commands

今までビルド・テストを行っていたのはオンプレCIサーバ上のJenkinsです。
JenkinsではJenkinsユーザでビルドコマンド等が実行されていました。

じゃあnon-rootなユーザをadduserしてそのユーザで実行してあげればいいかな、とも思ったのですが、
CodeBuildのDockerFileを読むとcodebuild-userなるユーザがいることに気がつきました。

https://github.com/aws/aws-codebuild-docker-images/blob/master/al2/x86_64/standard/2.0/Dockerfile
こちらの42行目にRUN useradd codebuild-userと書かれています。

じゃあ、それを利用してあげればいいんじゃない?ってことで、やってあげると無事に成功しました。

教訓

  • ビルドやテストを行っているユーザがどういう権限を持っているのかを把握するのは大切
  • 公式のDockerImage(というか公式の何かしら)に書かれていることを少しでも把握することは問題解決の一歩となる
    • 今回は答えだったけど
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?