我有一个Docker容器,该容器在启动时执行一个shell脚本(startService.sh),该脚本使用“source” linux关键字(我的Docker容器不喜欢)。运行镜像时,我看到以下错误消息:

./startService.sh:6:./startService.sh:源:找不到

为什么会看到此错误?不能在镜像的脚本中使用“source” linux命令吗?

Dockerfile:

FROM openjdk:8

    

    VOLUME /opt/att/ajsc/config

    COPY startService.sh /startService.sh

    RUN chmod 777 /startService.sh

    ENTRYPOINT ./startService.sh

startService.sh
#!/bin/sh

    export AJSC_HOME=/opt/att/ajsc

    export AJSC_CONFIG_HOME=${AJSC_HOME}/config

    

    source /opt/att/ajsc/etc/config /run.source

最佳答案

sourcebash中的命令,但sh中没有。在sh中,使用单点.
单个点.也可以在bash中使用。

您的脚本具有shebang #!/bin/sh。可以将source替换为.,或者将#!/bin/sh替换为#!/bin/bash

(此问题与 docker 无关。)

关于bash - 如何在Docker容器中执行Shell脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51014868/

10-13 05:36