【问题标题】:Docker : detach from command executed after container creationDocker:从容器创建后执行的命令中分离
【发布时间】:2018-11-11 21:46:11
【问题描述】:

我在 run.sh 文件中有一个 dockerised nodejs 应用程序 --

#!/bin/bash
docker run -ti --rm -v $PWD:/app -p 8080:8080 foo
docker exec uod npm run gulp start-live

这将启动我的应用程序并运行 gulp 脚本。我在 package.json 中将“gulp”定义为脚本。 (旧项目所以是的仍在使用 gulp :/)

唯一的问题是我无法使用 ctrl+p+q 与 docker 分离

如果我改为将运行命令移动到Dockerfile --

CMD ["npm", "run", "gulp", "start-live"]

这做同样的事情,但我能够在它运行后从容器中分离出来。

为了能够从那里运行命令并能够分离,我可以在运行文件中做些什么不同的事情?

【问题讨论】:

  • “将命令移动到 Dockerfile”可能是正确的答案:它是容器所做的一件事,您通常不需要 docker exec 来启动容器的主进程。
  • 是的,但目前我需要根据环境更改运行配置。发现在 run.sh 而不是 Dockerfile 中更容易做到这一点

标签: node.js shell docker npm


【解决方案1】:

我需要做的就是在 docker run 结束时标记命令 ...

#!/bin/bash
docker run -ti --rm -v $PWD:/app -p 8080:8080 foo npm run gulp start-live

【讨论】:

    猜你喜欢
    • 2015-10-21
    • 2020-03-15
    • 2023-01-28
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 2015-04-15
    • 1970-01-01
    • 2019-07-06
    相关资源
    最近更新 更多