服务器上文件夹下启动cmd,dockerfile CMD – 在不同端口上启动服务器

dockerfile CMD – 在不同端口上启动服务器

我在docker中有两个rails应用程序,我想在同一时间使用docker-compose up ,但是我想在不同的端口上启动每个应用程序。

我有一个不同的dockerfile为每个应用程序,与一个共享的docker-compose.yml。 docker-compose为每个应用程序有2个条目。

这里是一个Dockerfile的例子,但由于某种原因,它不可访问或不在指定的端口上启动:

Expose port to the Docker host, so we can access it # from the outside. EXPOSE 5000 # Configure an entry point, so we don't need to specify # "bundle exec" for each of our commands. ENTRYPOINT ["bundle", "exec"] # The main command to run when the container starts. Also # tell the Rails dev server to bind to all interfaces by # default. CMD ["bundle", "exec", "rails", "server”,”-p”, “5000”, "-b", "0.0.0.0"]

CMD的语法有问题吗?

docker-compose有下面的代码片断,这表明我允许主机的端口5000访问端口5000在容器中,但似乎服务器没有在端口5000上运行:

ports: - "5000:5000"

有什么遗漏?

这是从主机curl问题吗? 或者一个容器无法与另一个容器交谈的问题

你使用主机networking?

如果您在docker-compose.yml中指定了端口映射,则不需要使用EXPOSE

您确定您的服务器正在指定的主机/端口上运行吗?

我看不出你的CMD什么问题,但是同时使用CMD和ENTRYPOINT是非常不寻常的。 我可以看到你为什么在这里做,但我会尝试拿出进入ENTRYPOINT 。 最后,说服服务器确实在主机/端口上运行是有帮助的。 你可以试试

docker run -it "my/image" bash > rails s -p 5000 -b 0.0.0.0 -d > curl 0.0.0.0:5000 # should show your landing page if the server is indeed running on port 5000.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值