如何在Docker容器中执行Shell脚本

时间:2018-06-24 23:57:22

标签: bash docker

我有一个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

1 个答案:

答案 0 :(得分:2)

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

您的脚本中有#!/bin/sh。将source替换为.,或将#!/bin/sh替换为#!/bin/bash

(此问题与docker无关。)