应用商店:脚本运行时间问题 #5562
应用商店:脚本运行时间问题
#5562
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
安装应用有 三个可运行脚本,那么运行时间是什么?
文档解释:
init.sh
是在应用安装前,还有 更新,卸载脚本,一个是在更新前执行,一个是在卸载后执行。除了卸载脚本无异议外。
init.sh 运行时机是什么时候
针对安装本地应用,用户填写完安装表单,确认后。
按照我的理解:
假设1Panel目录为 /opt/1panel
/opt/1panel/apps
下创建应用名称/名称
生成:
.env
data.yml
docker-compose.yml
基础文件复制其他文件:
scripts
脚本文件,data
conf
等其他文件init.sh
脚本文件docker-compose up -d
自动加载 .env但是,实际上,整个流程并不是这样。
已官方应用 MySQL 为例:
安装时编辑 compose 文件,指定环境变量文件
无论是
还是
还是
都行,此时此刻启动应用
就会出现:
那么进入目录
/opt/1panel/apps/mysql
进行查看,该目录下,不存在mysql2
应用的任何文件。可以猜测,并不是按照之前的5步逻辑,执行的,应为报错后,应用目录就消失了,并不能说明 .env docker-compose.yml data.yml 这些文件没有复制,否则,就不会出现 .env not found。
那么如果复制了,在 /opt/1panel/apps/mysql/mysql2 目录下运行 docker-compose up -d 完全可以正常启动。
有可能,这些步骤不在同一个进程中执行
有专门的进程 生成 docker-compose.yml 并启动 docker-compose up -d
有专门的进程 生成 data.yml 和 .env 文件
因为 docker-compose.yml 指定了一个应该出现,但是启动时那一刻没有出现的文件,造成了报错。
当然了,以上的猜测仅是遇到问题提出的猜测,实际上,对应用完整的启动,我并没有去了解。无论是使用 docker-compose 的API去启动应用还是通过脚本方式,指定了一个应该出现的文件,但是无法启动的问题。造成无法正常安装升级应用。
env_file 作为docker-compose的特性却被搞丢了
最终我想搞清楚,init.sh 运行是在什么时候,总不能是在应用启动后吧,正常逻辑,我认为他应该在 .env生成后,启动应用前。
Beta Was this translation helpful? Give feedback.
All reactions