1 14v45mJPBYJW8dT7 2023-02-14 18:57:15 +08:00 可以,你为什么不亲自试一试呢 |
2 variousdidt OP @rimutuyuan 我试了,可是我打包的时候去拿什么呢,如果拿环境变量会直接报错,process 不存在 |
![]() | 3 peterjose 2023-02-14 21:32:27 +08:00 想知道 |
4 264768502 2023-02-14 21:53:50 +08:00 via Android ![]() 利用 enteypoint+dockerize 在启动时写入一个配置文件,然后用户访问时先 fetch 配置文件,然后拼凑 url |
![]() | 5 rrfeng 2023-02-14 21:55:33 +08:00 via Android 端口不是 -d 指定的吗 |
![]() | 6 cctv6 2023-02-15 00:12:41 +08:00 是可以的。mysql 镜像第一次启动的时候初始化,就是使用的环境变量传递的参数。按理说只要修改镜像启动脚本,判断启动的时候有没有传环境变量,如果传了变量就通过脚本修改配置,修改后再按照正常流程启动就能满足你的需求。 不知道有没有更优雅的方式处理 |
7 lingly02 2023-02-15 00:44:30 +08:00 via iPhone vue 等前端代码编译后是 html+js ,只能运行在浏览器里,没法直接使用环境变量。应该在 nginx 里配指向后端的反向代理,启动时读取环境变量来生成新的配置文件。fetch 时只需使用指向本站的路径。 |
8 chenluo0429 2023-02-15 07:50:32 +08:00 via Android 有几种方案,思路都是靠启动脚本在镜像启动时做一些预处理。 比如打包时后端服务地址写成占位符,然后启动时进行文本替换。或者将配置的环境变量写入到静态资源文件中,运行时先拉取固定位置的配置文件,然后解析出后端服务地址。 还有根据环境变量配置反向代理,前端访问类似 /api 目录,由 nginx 代理到真实后端。但是这个不推荐 |
![]() | 9 MuscleOf2016 2023-02-15 08:24:08 +08:00 1 、纯前端静态文件,请求接口的时候,都 /api/request ,根目录去请求,前后端前置一个 ngx 根据 ngx 去转发 /api 转到后端,/login 这种转到前端 2 、要是 ssr 这种,请求直接写主机名,docker 内能访问后端的 hostname ,浏览器直接访问前端。让他们后端服务的主机名:端口 跟你写的一样。 |
![]() | 10 tyx1703 2023-02-15 09:06:03 +08:00 via iPhone @chenluo0429 反向代理为何不推荐? |