1
rimutuyuan 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 1
利用 enteypoint+dockerize 在启动时写入一个配置文件,然后用户访问时先 fetch 配置文件,然后拼凑 url
|
5
rrfeng 2023-02-14 21:55:33 +08:00 via Android
端口不是 -d 指定的吗
|
6
cdlnls 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 反向代理为何不推荐?
|