本帖最后由 Random 于 2024-9-22 21:27 编辑
复现条件:停止服务->修改 YAML 文件->重新构建->启动服务(提示对应的环境变量无法找到)
还原方案:在应用中心卸载对应的应用重新安装。
bug原因猜解:飞牛创建对应的 docker-compse 服务的时候应该是使用的是对应的脚本,把相应的环境变量注入到上下文中,但是重新构建的时候应该是没有处理好,所以导致了这个问题的出现。
解决方案建议:
1. 使用同一个方案去重新构建 docker 镜像,保证环境变量的统一性
2. 在对应的应用服务的同级目录下面新建一个 .env 文件,把对应的环境变量写入到 .env 文件中,这样每次在构建与启动 docker-compose 服务的时候,都会自动读取 .env 文件。同时也能将对应的环境变量信息固化到文件中(个人觉得这个方式比较好)
在应用中心安装的软件一般都是 docker-compose 启动的,例如思源笔记。
通过查看对应的 yaml 文件,可以发现使用了对应的环境变量。
command: ['--workspace=/siyuan/workspace/', '--accessAuthCode=${wizard_token}']
1. 当需要修改 YAML 配置文件的时候,先停止对应的容器。
2. 修改需要修改的内容,比如下面我修改对应的 TZ 时区配置
environment:
- TZ=Asia/Shanghai
3. 构建新镜像
日志提醒对应的环境变量无法找到,配置为空字符串
time="2024-09-22T21:25:12+08:00" level=warning msg="The \"wizard_token\" variable is not set. Defaulting to a blank string."
4. 启动验证
可以看到,对应的容器一直陷入重启中
通过查看日志,可以看到是对应的环境变量为空。
the access authorization code command line parameter (--accessAuthCode) must be set when deploying via Docker
the access authorization code command line parameter (--accessAuthCode) must be set when deploying via Docker
|