我是docker的新手,我创建了一个运行rails应用程序的docker镜像。现在我想在后台运行应用程序作为守护程序,但它继续拯救我:
docker run -d -p 2000:2000 image_name "source ~/.bash_profile; cd src; rails s"
如您所见,我的rails应用程序位于src目录中。
我还尝试在bashrc中为docker镜像添加rails路径,但仍然出现如下错误:
有人可以纠正我。
答案 0 :(得分:1)
您可以将命令包装在startup.sh
之类的内容中,然后使其可执行。然后只需致电docker run -d -p 2000:2000 image_name startup.sh
或者如果要在启动容器时始终运行此命令,请查看CMD
和ENTRYPOINT
命令。
另请注意,为了使docker容器保持运行,您需要在前台保持进程处于活动状态。
答案 1 :(得分:0)
尝试以下方法:
docker run -d -p 2000:2000 image_name sh -c 'source ~/.bash_profile; cd src; rails s'
这是因为docker不支持运行多个命令,而#34; sh -c"是一个命令。