sh 文件上的 docker-compose up 权限被拒绝

twe*_*ypi 1 macos docker docker-compose

我有以下 docker-compose.yml 文件:

version: "3" services:\   local_db:
    build:
      context: mssql-data
      dockerfile: Dockerfile
    ports:
      - "1433:1433"
    volumes:
      - ~/Documents/rfg/temp
    environment:
      SA_PASSWORD: "D0ckerDev"
      ACCEPT_EULA: "Y"
Run Code Online (Sandbox Code Playgroud)

当我运行 docker-compose up 时,出现以下错误:

local_db_1  | /scripts/entrypoint.sh: line 5: /scripts/seed-data.sh: Permission denied
docker_local_db_1 exited with code 126
Run Code Online (Sandbox Code Playgroud)

入口点是:

#start SQL Server in the background
/opt/mssql/bin/sqlservr &

# start the seed data script 
/scripts/seed-data.sh
Run Code Online (Sandbox Code Playgroud)

种子数据.sh在哪里:

sleep 15s cd /scripts

if [ -f /var/opt/mssql/data/initialized ]; then
    sleep infinity
    fi sleep 15s /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -d master -i setup.sql

touch /var/opt/mssql/data/initialized sleep infinity
Run Code Online (Sandbox Code Playgroud)

和入口点.sh:

#start SQL Server in the background
/opt/mssql/bin/sqlservr &

# start the seed data script 
/scripts/seed-data.sh
Run Code Online (Sandbox Code Playgroud)

和 Dockerfile:

FROM microsoft/mssql-server-linux:2017-latest

COPY . /scripts

CMD chmod 755 /scripts/*
CMD chmod 755 /scripts/seed-data.sh

CMD /bin/bash /scripts/entrypoint.sh
Run Code Online (Sandbox Code Playgroud)

以上在 Windows 中工作正常,但在 MacOS 上我得到了上面的 epermission denied 错误..

lar*_*sks 5

您似乎没有为seed-data.sh脚本设置正确的权限。你可以这样称呼它:

sh /scripts/seed-data.sh
Run Code Online (Sandbox Code Playgroud)

或者您可以先确保所有脚本都是可执行的:

chmod 755 /scripts/*
/scripts/seed-data.sh
Run Code Online (Sandbox Code Playgroud)