由于 docker 中的 .sh 文件权限被拒绝,travis 测试失败

travis tests fail due to permission denied on .sh file in docker

我正在尝试让 travis 与我的容器化烧瓶应用程序一起工作。在本地构建和提交一切正常我在这个命令上失败了:

docker-compose -f docker-compose-dev.yml up --build -d

这是我从 travis 那里得到的错误:

Successfully built e5cc5b91a3ee
Successfully tagged testdriven-app_nginx:latest
Creating testdriven-app_users-db_1 ... 
ERROR: for testdriven-app_users_1  Cannot start service users: oci runtime error: container_linux.go:265: starting container process caused "exec: \"/usr/src/app/entrypoint.sh\": permission denied"
ERROR: for users  Cannot start service users: oci runtime error: container_linux.go:265: starting container process caused "exec: \"/usr/src/app/entrypoint.sh\": permission denied"
ERROR: Encountered errors while bringing up the project.
The command "sudo docker-compose -f docker-compose-dev.yml up --build -d" failed and exited with 1 during .

这是我的 travis yml 文件,我知道我在之前的脚本部分失败了:

sudo: required

services:
  - docker

env:
  DOCKER_COMPOSE_VERSION: 1.21.1

before_install:
  - sudo rm /usr/local/bin/docker-compose
  - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
  - chmod +x docker-compose
  - sudo mv docker-compose /usr/local/bin

before_script:
  - docker-compose -f docker-compose-dev.yml up --build -d

script:
  - docker-compose -f docker-compose-dev.yml run users python manage.py test
  - docker-compose -f docker-compose-dev.yml run users python flake8 project

after_script:
  - docker-compose -f docker-compose-dev.yml down

我在 docker compose 上给自己设置了 chmod,根据我的理解,这应该授予我对该文件的权限。

如有任何帮助,我们将不胜感激!

我从

更改了 dockerprofile
CMD["/usr/src/app/entrypoint.sh"]

RUN ["chmod","+x","/usr/src/app/entrypoint.sh"]

解决了问题