docker运行期间的多个命令

时间:2015-02-11 07:01:04

标签: ruby-on-rails docker

我是docker的新手,我创建了一个运行rails应用程序的docker镜像。现在我想在后台运行应用程序作为守护程序,但它继续拯救我:

docker run -d -p 2000:2000 image_name "source ~/.bash_profile; cd src; rails s"

如您所见,我的rails应用程序位于src目录中。

我还尝试在bashrc中为docker镜像添加rails路径,但仍然出现如下错误:

有人可以纠正我。

2 个答案:

答案 0 :(得分:1)

您可以将命令包装在startup.sh之类的内容中,然后使其可执行。然后只需致电docker run -d -p 2000:2000 image_name startup.sh 或者如果要在启动容器时始终运行此命令,请查看CMDENTRYPOINT命令。

另请注意,为了使docker容器保持运行,您需要在前台保持进程处于活动状态。

答案 1 :(得分:0)

尝试以下方法:

docker run -d -p 2000:2000 image_name sh -c 'source ~/.bash_profile; cd src; rails s'

这是因为docker不支持运行多个命令,而#34; sh -c"是一个命令。

参考:http://timmurphy.org/2015/02/27/running-multiple-programs-in-a-docker-container-from-the-command-line/