Разрешения Docker отличаются при работе на CodeBuild - PullRequest
0 голосов
/ 27 ноября 2018

Я использую ruby:2.5.1-alpine для изображения контейнера моего приложения.Когда я запускаю make release локально, который выполняет следующие команды:

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

Этап тестирования запускает миграции, линтер и спецификации.Работает без проблем.Когда я запускаю ту же самую точную команду на CodeBuild, которая использует aws/codebuild/ruby:2.5.1 в качестве среды хоста, я получаю следующую ошибку:

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...>

Не уверен, что делать с отладкой.

...