gpt4 book ai didi

ruby-on-rails - 在 Procfile 中指定默认端口

转载 作者:行者123 更新时间:2023-12-05 01:02:14 26 4
gpt4 key购买 nike

我正在使用 foreman 启动一堆服务,并在 Procfile 中有以下行。

web:    bundle exec rails server -p ${PORT:-3000}

然而,当服务器启动时,它会在默认的 Foreman 端口 5000 上启动,因此看起来注入(inject) 3000 作为默认端口的语法是错误的。

我去寻找(其他人给了我上面的行,所以我想修复它)实际上找不到任何关于如何注入(inject)默认值的特定文档。

the source你看

def expanded_command(custom_env={})
env = @options[:env].merge(custom_env)
expanded_command = command.dup
env.each do |key, val|
expanded_command.gsub!("$#{key}", val)
end
expanded_command
end

所以很明显 ${PORT:-3000} 语法是错误的。

设置默认端口的正确方法是什么?

最佳答案

更改 Procfile 定义以指向自定义脚本文件:

bundle exec ./script/server

然后,创建 script/server 文件并配置默认值

#!/usr/bin/env bash
cd "$(dirname "$0")/.."
[ $PORT ] || PORT=3000

cmd="bundle exec rails server -p $PORT"
exec $cmd

否则,只需运行 Foreman 传递端口

$ foreman start -p 3000

关于ruby-on-rails - 在 Procfile 中指定默认端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35004195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com