首页 > 解决方案 > 从 Dockerfile 执行 Shell 脚本

问题描述

我有一个启动 python 命令的 Shellscript(取自HERE

#!/bin/sh

COMMAND='cd /sc2ai/agent && python3 myscript.py'
LOGFILE=restart.txt

writelog() {
  now=`date`
  echo "$now $*" >> $LOGFILE
}

writelog "Starting"
while true ; do
  $COMMAND
  writelog "Exited with status $?"
  writelog "Restarting"
done

我希望这个脚本在容器加载后立即执行,我这样做是这样的:(我的最后几行Dockerfile

# Run Apache
CMD apachectl -D FOREGROUND

# Start the Agent
RUN chmod +x agent.sh
ENTRYPOINT ["/bin/bash", "./agent.sh"]

构建,但在启动 ( docker-compose up -d --build && winpty docker-compose run sc2 bash) 时会创建此错误:

./agent.sh:第 2 行:$'\r':找不到命令

./agent.sh:第 5 行:$'\r':找不到命令

./agent.sh:第 6 行:意外标记 `$'{\r'' 附近的语法错误

'/agent.sh:第 6 行:`writelog() {

我究竟做错了什么?

标签: bashdocker

解决方案


推荐阅读