当前位置: 首页 > 知识库问答 >
问题:

Docker复制sh脚本不工作(找不到)

隆安然
2023-03-14

我对docker并不陌生,但我主要使用预构建的图像,我使用Docker-Compose连接这些图像。我需要一个超级基本的容器,它只读取日志文件并将内容流式传输到stdout,因为我在另一个容器中有权限问题。

以下是我的dockerfile:

FROM alpine:latest
COPY readlogs.sh /root/readlogs.sh
CMD ['/root/readlogs.sh']

sheel脚本如下所示(目前--我正在测试)

#!/usr/bin/env bash
echo "hello world"

#cat /dev/null > /var/log/app/error.log
#cat /dev/null > /var/log/app/debug.log

#tail -f /var/log/app/error.log > /dev/stderr &
#tail -f /var/log/app/debug.log > /dev/stdout &

正如您所看到的,我希望截断一些日志文件,然后连续地读取它。

/bin/sh: [/root/readlogs.sh]: not found
exited with code 127
  logreader:
    build:
      context: docker/logreader
      dockerfile: Dockerfile
    volumes:
      - ./var/logs:/var/log/app

共有1个答案

龙德润
2023-03-14

对于未找到文件的问题,您需要将cmd[“/root/readlogs.sh”]替换为cmd[“/root/readlogs.sh”]。注意双引号和空格。

但是,即使修复了这个问题,您仍然会遇到另一个问题,即您试图在Alpine中使用bash。因此,您需要像Linpy所说的那样更改为sh

 类似资料:
  • 问题内容: 我正在使用以下命令构建新的Docker映像: 但是,它失败并显示以下错误: 这似乎在我的本地计算机(Mac OSX)上运行良好,但是当我尝试在Linux CentOS 7计算机上构建它时,它失败了。 问题答案: 最后,我们升级了项目以使用此Docker Maven插件:https : //github.com/fabric8io/fabric8-maven- plugin 。到目前为止

  • 我尝试用php(symfony应用程序)配置docker。 当我第一次构建容器时,symfony骨架应用程序出现在容器中,但任何其他构建都不会改变容器中的任何内容。 DOCKEFILE

  • 我是selenium的初学者,需要以下脚本的帮助,我正在尝试发送vai文本字段的值。下面是代码片段。 显示错误 线程“main”java中出现异常。lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。铬。驱动系统属性;有关详细信息,请参阅https://github.com/SeleniumHQ/selenium/wiki/ChromeDri

  • 在尝试使用lambda表达式时,我遇到了一些Gradle构建错误: 错误:(41,100)错误:source 1.7中不支持lambda表达式(使用source 8或更高版本启用lambda表达式) 错误:任务“:app:CompileDebugJava”执行失败。编译失败;有关详细信息,请参阅编译器错误输出。 但在设置模块应用程序源/目标兼容性中,没有“1.8”这样的选项,只有Java1.6或1

  • 我在做一个网站。我正在做响应菜单和jQuery脚本工作,但不是很好。我的意思是每一个脚本都写得很好,但是所有的脚本加在一起就不想写得那么好了。第一个,来自响应式菜单的功能会扼杀所有功能,因此该菜单没有正常工作:/ 那么出了什么问题呢?OM怎么了?我还在学习,这可能是一个很傻的问题,但今天对我来说... 所有网站都已响应。 你可以在这里看到有什么问题 当我删除了其余的脚本,并且只保留这个用于响应式菜

  • 我已经写了一个脚本,在我的Ubuntu发行版上作为自动点击器工作。点击工作,但'sleep‘命令似乎不能正常工作。如果我取出click并从terminal运行它,那么sleeps将按预期工作。但是当我将它绑定到一个快捷方式并且在玩游戏的时候运行它的时候,它并没有Hibernate,看起来它只是一直点击。 最重要的Hibernate是break_intervalHibernate,因为它将高压灭菌器