在CodeBuild上运行时Docker权限不同

时间:2018-11-27 14:24:13

标签: ruby amazon-web-services docker aws-codebuild

我正在将ruby:2.5.1-alpine用于应用程序的容器映像。当我在本地运行make release时,它将运行以下命令:

docker-compose build --pull release
docker-compose up --abort-on-container-exit test

测试阶段运行迁移,棉绒和规格。它运行没有问题。当我在使用aws/codebuild/ruby:2.5.1作为宿主环境的CodeBuild上运行相同的确切命令时,出现以下错误:

Running RuboCop...
Inspecting 82 files
.................................................................................W
 Offenses:
 bin/console:1:1: W: Lint/ScriptPermission: Script file console doesn't have execute permission.

我检查了git权限,所有内容看起来都很干净:

edit [...master ] git ls-tree HEAD bin/
100755 blob ad9a02fe6ed489beb105295de771cab5fa87a6af    bin/console
100755 blob 9d87e9579b9c16c42d65301e8540888e044ba25d    bin/run
100755 blob cf5febb7c6dd34aebdb862792fa147d06a9c5764    bin/setup
edit [...master ]

我添加了一条调试语句,以查看运行测试时的权限以及此处的区别。

我在本地得到:

test_1_4d039799a73c | File permissions for bin/console are 
#<File::Stat ino=10432530, **mode=0100755**, nlink=1, uid=1000, gid=1000,...>

在CodeBuild服务器上,我得到:

File permissions for bin/console are 
#<File::Stat  ino=525319, **mode=0100666**, nlink=1, uid=0, gid=0, ...>

在粘贴上面的内容时,我还注意到UID和GID是不同的。因此,似乎权限设置不正确:

RUN addgroup -g 1000 app && adduser -u 1000 -G app -D app
RUN chown -R app:app $APP_ROOT

WORKDIR $APP_ROOT

这是问题的一部分:

https://forums.docker.com/t/not-able-to-change-permissions-for-files-and-folders-created-on-mounted-volumes/45769

在为CodeBuild上运行的阶段删除卷之后,mid和gig是正确的,但权限本身仍处于关闭状态。

 ·[36mcodebuild_1 |·[0m File permissions for bin/console are 
 #<File::Stat ino=2755035, mode=0100666, nlink=1, uid=1000, gid=1000...>

不确定如何进行调试。

0 个答案:

没有答案
相关问题