Docker中与win系统中运行shell脚本遇到的问题

    xiaoxiao2022-07-14  163

    在今天的开发中遇到一个问题

    Dockerfile 的关键代码:

    USER ocpuser WORKDIR /opt/deployments/ EXPOSE 8080 CMD ["/bin/sh","/opt/deployments/bin/startup.sh","-t","dev"]

    startup.sh的关键代码

    APPLICATION="Ring4j-Demo" APPLICATION_JAR="boot/Ring4j-Demo-server.jar" NEW_CLASSPATH="/opt/deployments/config/" CONFIG_DIR="/opy/deployments/config/" cd .. java -Dapp.name=Ring4j-Demo -Dapp.tag=$TAG -Xbootclasspath/a:$NEW_CLASSPATH -jar $APPLICATION_JAR --spring.config.location=$CONFIG_DIR

     

    文件目录

    bin

    ---startup.sh

    boot

    ---Ring4j-Demo-server.jar

    config

    libs

     

    在win中启动的时候,在根目录打开git运行git bash here,运行sh ./bin/startup.sh之后,系统运行正常

    在部署到云平台中,发现报错“找不到该文件   boot/Ring4j-Demo-server.jar”

    在看到报错时认为是jar文件目录没有写对,一直反复核实及其修改权限。最后发现,系统在执行shell脚本的时候,是把代码拿到当前目录来执行,而不是到startup.sh目录去执行脚本,所以在startup.sh中的cd .. 引起了这个路径错误。

    所以去掉cd ..  后一切正常

    最新回复(0)