我有一个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
答案 0 :(得分:2)
source
是bash
中的命令,但sh
中没有。在sh
中,使用单点.
。
单点.
也可以在bash
中使用。
您的脚本中有#!/bin/sh
。将source
替换为.
,或将#!/bin/sh
替换为#!/bin/bash
。
(此问题与docker无关。)