1

docker-compose 重新构建时因环境变量问题无法启动

发表于:2024-9-22 21:25:58 Docker 295
本帖最后由 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

收藏
送赞 1
分享

发表回复

评论列表(6)

感谢反馈,我们具体看一下
2024-9-26 11:54:18 回复
这个帖子有人能看到嘛
2024-9-23 12:31:13 回复
这个问题没有人跟进一下吗?
2024-9-24 21:29:14 回复
docker还有很大的问题,我很多容器退出后就报错,
2024-9-26 09:29:31 回复
可以让技术同学看一下,我自己测试了在对应的 docker-compose.yaml 同级目录下新建对应的 .env 文件是可以正常读取的,可能需要看一下怎么更新维护了
2024-9-27 20:10:26 回复
而且我看到对应的系统内部并没有 docker-compose 命令,不知道飞牛是怎么实现的,没有使用系统级别的 docker-compose
2024-9-27 20:11:44 回复
Random

TA还没有介绍自己~

0

主题

4

回帖

4

积分

社区共建团

积分
4

作者推荐

话题