CeSI(Centralized Supervisor Interface)
,它是一个用于管理多个监督者(Supervisor)的Web界面。监督者本身具有自己的Web用户界面,但是使用单独的界面来管理多个监督者安装是复杂的。CeSI
的目标是通过基于监督者的RPC接口创建一个集中式的Web用户界面,以解决这个问题。
https://github.com/chudaozhe/docker-compose-samples/tree/main/cesi
这个项目的前端部分是用React写的,正常情况构建镜像 需要先yarn build
,然后把构建好的html,css,js等打包到基于nginx的镜像中,
但是作者构建的镜像,是直接把开发环境搬到了容器中:镜像基于node:14.4.0-alpine3.12
,在容器内执行yarn start
开启的服务,这样大大增加了镜像的体积
我尝试把构建好的html,css,js等打包到基于nginx的镜像中,但是失败,主要因为:
解决办法:登录成功后响应头里有Set-Cookie:session=eyJsb2dnZWRfaW4iOnRydWUsInVzZXJuYW1lIjoiYWRtaW4ifQ.ZSDCMQ.dgiruPrR9x-YWYT8nFg44EJ_jG4; HttpOnly; Path=/
,把这个值持久化存储;然后其他接口访问时header里都带上Cookie,如:curl --location 'http://localhost:8092/test/aa.php' \ --header 'Cookie: session=eyJsb2dnZWRfaW4iOnRydWUsInVzZXJuYW1lIjoiYWRtaW4ifQ.ZSDCMQ.dgiruPrR9x-YWYT8nFg44EJ_jG4'
老的nodejs项目,先确认他用到nodejs版本 (如果你的node是新的,他的是几年前的,肯定要升级各种依赖才能跑起来)
npm install -g yarn
D:\DockerProjects\cesi\cesi\ui> nvm use 15
Now using node v15.14.0 (64-bit)
安装依赖
D:\DockerProjects\cesi\cesi\ui> yarn
编译
yarn build
得到build目录