Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过env变量和bash脚本管理docker容器中的文件_Bash_Docker_Unix_Environment Variables - Fatal编程技术网

通过env变量和bash脚本管理docker容器中的文件

通过env变量和bash脚本管理docker容器中的文件,bash,docker,unix,environment-variables,Bash,Docker,Unix,Environment Variables,因此,我试图做的是通过docker容器中的脚本根据我的环境变量的值删除某些文件 我使用命令“docker run-tid-p443:443-p80:80-e INDEX=1--name{container name}{image name}”运行dockerfile,脚本包含在CMD中 这是我的脚本文件: if "$INDEX" == 1 rm var/www/index.nginx-debian.html && rm var/www/index.php &&am

因此,我试图做的是通过docker容器中的脚本根据我的环境变量的值删除某些文件

我使用命令“docker run-tid-p443:443-p80:80-e INDEX=1--name{container name}{image name}”运行dockerfile,脚本包含在CMD中

这是我的脚本文件:

if "$INDEX" == 1
    rm var/www/index.nginx-debian.html && rm var/www/index.php && rm var/www/phpMyAdmin && rm var/www/wordpress
我不确定我的错误在哪里,脚本是否正在执行它应该执行的操作(检查env变量的值并相应地执行操作)? 但是,我知道当我执行容器时,我的env变量被正确地更改了,我发现它被设置为1,只是文件没有受到脚本的影响
当某个env变量值为true时,我可以更改什么以确保我要删除的文件已实际删除?

由于您正在使用容器内的
-it
标志,请在删除文件后检查这些文件是否存在

#############################################
# Inside your shell script in your container
#############################################
PATHSTOREMOVE="path1 path2 path3"
if [ "$INDEX" -eq "1" ]; then

    # ...code...

    rm ${PATHSTOREMOVE[@]}                       # Expansion syntax
    for PATH in $PATHSTOREMOVE; do
        if [ ! -f $PATH ]; then
            echo "Successfully removed $PATH"
        fi
    done

    # ...more code...

fi

运行带有标志的容器
-it
,您应该会看到每个不再存在的路径都成功删除了

和bash脚本的其他联机资源将帮助您学习。您可以使用
rm
在一行中删除多个文件。通常不使用-itd组合,因为-d将容器发送到后台。这是故意的吗?