从终端直接执行docker工作正常,但不是从.sh脚本内执行?



我在ubuntu 20.04上使用sudo snap install docker安装docker,现在当我直接从终端运行(安装了ubuntu的终端)docker命令它工作正常,但当我从终端使用bash ./script.sh或。/script.sh执行。sh脚本时,我得到一个错误docker:命令未找到。

脚本如下:

#!/bin/bash
source $(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/env.sh
docker run -e "NODE_ENV=dev" -it --rm --name my-npm-2 -v $PROJECT_HOME/code:/var/www/html/code -w /var/www/html/code node:14 npm install
docker run -e "NODE_ENV=dev" -it --rm --name my-npm -v $PROJECT_HOME/code/web:/var/www/html/code/web -w /var/www/html/code/web node:14 npm install

$SCRIPT_HOME/buildjs_dev.sh
docker exec project_php sudo php -d memory_limit=-1 /usr/local/bin/composer install --working-dir=/var/www/html/code

docker exec project_php chown -R www-data:www-data /var/www/html/code/var/cache
docker exec project_php chown -R www-data:www-data /var/www/html/code/var/log

我是linux的新手,我不知道问题是否与脚本本身有关,或者为什么它不识别docker?

在脚本的开头定义一个源文件,它可能会改变PATH变量。通过注释源代码行或使用完整路径调用docker命令来尝试。

最新更新