Dockerfile的CMD参数出错,导致无法使用docker-compose启动
To Reproduce 如何复现
使用docker compose启动时,会报以下截图的错误,报ERROR: flag provided but not defined: -m ,错误原因是Yearning启动脚本方法名字发生变更 。
Expected behavior 期望的结果
希望修改Docker file以及更新官方说明文档
Screenshots 截图

Additional context 其他 Add any other context about the problem here.
我也遇到这个问题,请问怎么解决呀
我也遇到这个问题,请问怎么解决呀 不使用docker直接使用脚本的话 就先 ./Yearning install 再 ./Yearning run 如果要使用容器部署的话 ,修改dockerfile文件,把 CMD["-m","-s"]修改为
我也遇到这个问题,请问怎么解决呀 不使用docker直接使用脚本的话 就先 ./Yearning install 再 ./Yearning run 如果要使用容器部署的话 ,修改dockerfile文件,把 CMD["-m","-s"]修改为
没用的。你看Dockfile的文档,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。
对的,还是没解决,楼上说的可解决
目前可以通过手动跑来运行:
docker run --name yearning --rm -v $PWD/conf.toml:/opt/conf.toml yearning:latest install
docker run --name yearning -v $PWD/conf.toml:/opt/conf.toml yearning:latest run
不清楚多次执行install会不会删除之前的数据,如果多次执行install没有影响,则比较好办
目前可以通过手动跑来运行:
docker run --name yearning --rm -v $PWD/conf.toml:/opt/conf.toml yearning:latest install docker run --name yearning -v $PWD/conf.toml:/opt/conf.toml yearning:latest run不清楚多次执行install会不会删除之前的数据,如果多次执行install没有影响,则比较好办 多次install不会删除,程序运行时会先检测是否已经初始化过,如果是则会跳过。尽量还是不要多次install
目前可以通过手动跑来运行:
docker run --name yearning --rm -v $PWD/conf.toml:/opt/conf.toml yearning:latest install docker run --name yearning -v $PWD/conf.toml:/opt/conf.toml yearning:latest run不清楚多次执行install会不会删除之前的数据,如果多次执行install没有影响,则比较好办 多次install不会删除,程序运行时会先检测是否已经初始化过,如果是则会跳过。尽量还是不要多次install
写了个简单的入口脚本处理了一下,放在这里 https://github.com/hanlyjiang/Yearning/tree/bugfix-release-2.3.2.1 ,供参考。
#!/bin/sh
flag_file="/opt/install_flag"
if [ -f $flag_file ]; then
echo "找到install标记文件"
read -r install_flag <"$flag_file"
installed=$(echo $install_flag | awk -F "=" '{print $2}')
echo "是否已经安装? $installed"
if [ "false" = "$installed" ]; then
echo "需要安装,开始安装... /opt/Yearning install"
/opt/Yearning install
if [ $? = 0 ];then
echo "安装成功"
echo "installed=true">$flag_file
fi
elif [ "true" = "$installed" ]; then
echo "已经安装,直接运行..."
fi
else
echo "未找到/opt/install_flag文件,不执行安装"
fi
echo "开始运行 Yearning run"
exec /opt/Yearning run
还是希望作者能够从源码侧修复;
把 Dockerfile 改成下面这个即可

