应用商店:脚本运行时间问题 #5562
应用商店:脚本运行时间问题
#5562
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
安装应用有 三个可运行脚本,那么运行时间是什么?
文档解释:
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