Razzle: Docker 支持

创建于 2018-03-26  ·  7评论  ·  资料来源: jaredpalmer/razzle

在 Docker 容器中运行 Razzle 时,我遇到了几个问题,主要是因为 127.0.0.1 假设。

  • [x] 设置 INSPECT_ENABLED 的 razzle start 的 --inspect 参数不通过 IP 地址。 例如 --inspect=0.0.0.0:9229。 默认情况下,inspect 使用 127.0.0.1,我无法将其从主机转发到容器内的端口 9229。

  • [ ] 无法告诉客户端要连接到哪个主机名。 假设localhost:81 。 公关在这里:#530

  • [x] 环境变量不被视为变量。 Docker 构建静态镜像,期望部署在不同的环境中,并由环境变量控制。 第528章

stale

最有用的评论

@jwickens如果您知道运行时公共目录的位置,请在运行构建命令时使用它来覆盖 RAZZLE_PUBLIC_DIR 环境变量,它应该可以工作。

所有7条评论

我也使用 docker-compose 遇到了类似的问题。 我希望我的客户端构建在构建时包含 ENV 变量的值。 但是像我的服务器这样的运行时 ID 从运行时 ENV 变量中提取,基本上如此处所述https://github.com/jaredpalmer/razzle/issues/528#issuecomment -372998123 。 这背后的原因是因为我正在 docker-composed 一个 nginx 反向代理,它位于我的 api 和 razzle 应用程序前面。 在客户端上,我需要我的应用程序来查询公开的反向代理端口。 但是在服务器上,我需要我的应用程序直接查询我的 api 服务,如此处https://docs.docker.com/compose/networking/

我现在遇到的一个问题是 RAZZLE_PUBLIC_DIR 默认情况下从构建机器注入完整路径,出于 CI 性能原因,这与我复制构建资产的运行时机器完全不同。

@jwickens我有同样的问题,最后我试图避免使用 RAZZLE_PUBLIC_DIR,除非在本地开发模式下运行。 使用节点模块 is-docker 我运行以下:

const isDocker = require('is-docker');
const env = require('get-env');

const staticPath = env === 'dev' && !isDocker() ? process.env.RAZZLE_PUBLIC_DIR : path.join(__dirname, '../build/public');

server.use(express.static(staticPath));

不理想,但至少它有效。 在本地开发模式和 docker 内部运行良好。

@jwickens如果您知道运行时公共目录的位置,请在运行构建命令时使用它来覆盖 RAZZLE_PUBLIC_DIR 环境变量,它应该可以工作。

你好! 所以这就是开源和我的日常工作和生活之间的交易,我有很多事情要管理,所以我使用 GitHub 机器人在这里和那里自动化一些事情。 这个特定的 GitHub bot 会将其标记为过时,因为它有一段时间没有最近的活动。 如果几天内没有进一步的活动,它将被关闭。 不要把这一点放在个人身上——认真地——这是一个完全自动化的动作。 如果这是一个错误,请发表评论,DM 我,发送载体 pidgeon 或烟雾信号。

由于不活动,ProBot 自动关闭了它。 如果这是一个错误,请大喊大叫,我们将重新打开它。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

dizzyn picture dizzyn  ·  3评论

howardya picture howardya  ·  5评论

jcblw picture jcblw  ·  4评论

JacopKane picture JacopKane  ·  3评论

Jayphen picture Jayphen  ·  4评论