当前位置: 首页 > 面试题库 >

Dockerfile:RUN导致无操作

牛昱
2023-03-14
问题内容

我有一个Dockerfile,其中我试图运行一个启动Java进程的守护进程。

如果我将脚本嵌入到Dockerfile中,就像这样。

RUN myscript.sh

在生成的容器上运行/ bin / bash时, 没有 看到jps中的条目。

但是,在这种情况下,我可以轻松将脚本嵌入CMD

docker run asdfg

我看到该过程正常启动。

所以,我的问题是,当我们在 Dockerfile中 启动后台异步进程时,是否总是会从容器中排除其副作用?


问题答案:

后台进程需要在容器启动时启动,而不是在映像生成时启动。因此,您的脚本需要通过CMD或运行ENTRYPOINT

CMD或者ENTRYPOINT仍然可以是包含多个命令的脚本。但是我想在您的情况下,如果您需要多个后台进程,那么使用示例supervisord将是您的最佳选择。

另外,请查看一些已经存在的内容,Dockerfiles以了解它们如何组合在一起。



 类似资料:
  • 我在下面的manager.popbackbackstack行中遇到此错误。有办法解决这个问题吗?事情发生得很顺利。 致命异常:java.lang.IllegalStateException:在android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:2044)在android.support.v4.

  • 我的期望: 如果用户输入的Int不在正确的范围内,程序将给他另一次机会,直到用户给出正确的类型。 所以,我需要一个块。但我有一个无限循环。 我的代码: 我读到: 重置. nextLine()扫描仪 使用扫描仪。扫描仪后面的nextLine()。nextInt() nextInt()的扫描仪错误 扫描仪在使用next()或nextFoo()后跳过nextLine()? 如何使用java.util.扫

  • 我对JavaFX仍然非常陌生,目前正在从在线教程中学习。我一直在尝试为一个类项目构建一个计算器,并且在大多数情况下,它似乎可以工作......直到按下清除按钮。一旦按下,清除按钮会导致所有操作符按钮不再起作用,当用户尝试单击一个按钮时,我会收到非常大的错误字符串。 这是此错误列表: 以下是我的.java类: 这是我的FXML文件: 知道是什么导致了这种情况的发生吗?

  • 我遵循以下msdn指南创建由CosmosDB触发的Azure函数-https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-cosmos-db-triggered-function 我仍然不清楚到底是什么db操作触发了Azure功能——例如,一个新文档是通过CosmosDB管理门户创建的。所以我们知道文档创建会触

  • 我对react钩子和效果有点陌生,在使用useEffect时遇到了问题 上面的代码是我构建的useEffect,用于使用axios获取数据库中的所有数据,并且我将所有数据放在一个称为reports的状态中。 但是当我console.log报告时,它会导致无限循环。我不知道为什么? 让我给你看一个我做的简单动作。 我正在做一个按钮,当它被点击时,报告的状态(按id)将被更新。 这是该州报告结构的样本

  • 我在使用useEffect时搜索了很多关于无限循环的帖子,但仍然没有找到答案 在useEffect中,我试图调用get accounts api,当然,我放置了一个空数组,因为我只希望它在渲染后运行一次。但目前我喜欢添加“addAccount”功能。因此,如果我按下add按钮,它就会发送一个post请求。这里是一个问题,我想检查值是否已更改,因此我将值放入第二个参数,即空数组,它会导致无限循环。但