解决docker 运行脚本报错
具体内容如下:
问题背景
运行如下docker命令
docker run -itd \
-p 18801:8801 \
-v /home/app/data:/home/app/data \
-v /home/app/java/jdk-17.0.15-full:/usr/local/java/jdk-17.0.15-full \
-v /home/app/software/testCenterServer/Release:/home/app/software/testCenterServer/Release \
-e JAVA_HOME=/usr/local/java/jdk-17.0.15-full \
-e PATH=$PATH:$JAVA_HOME/bin \
-e LANG=zh_CN.utf8 \
-e TZ=Asia/Shanghai \
--restart=always \
--name test-center-server \
--memory 32g \
--cpus 8 \
ubuntu:24.10 \
/home/app/software/testCenterServer/Release/start.sh
报错如下:
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/home/app/software/testCenterServer/Release/start.sh": stat /home/app/software/testCenterServer/Release/start.sh: no such file or directory: unknown.
解决办法
1️⃣先去查看docker版本是否有runc,使用docker version查看即可!
root@ubuntu:/# docker version
Client: Docker Engine - Community
Version: 26.1.1
API version: 1.45
Go version: go1.21.9
Git commit: 4cf5afa
Built: Tue Apr 30 11:48:20 2024
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 26.1.1
API version: 1.45 (minimum version 1.24)
Go version: go1.21.9
Git commit: ac2de55
Built: Tue Apr 30 11:48:20 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.31
GitCommit: e377cd56a71523140ca6ae87e30244719194a521
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
docker-init:
Version: 0.19.0
GitCommit: de40ad0
若是没有则进行安装,命令如下:
sudo snap install libseccomp
# 或者
sudo apt-get update
sudo apt-get install libseccomp-dev
2️⃣检查脚本和运行命令
-
验证脚本是否存在
在宿主机上运行以下命令确认脚本是否存在:
ls -l /home/app/software/testCenterServer/Release/start.sh
如果文件不存在,请重新创建或复制脚本。 -
检查脚本权限
确保脚本具有可执行权限:
chmod +x /home/app/software/testCenterServer/Release/start.sh -
修改运行方法
这里使用了 /bin/bash -c 来执行脚本,确保脚本在容器中正确运行。
在Linux或Unix系统中,运行.sh文件通常有以下几种方式:
使用sh命令: sh start.sh 这种方式需要你处于Shell脚本所在的文件夹中。
使用bash命令: bash start.sh 同样,这要求你在Shell脚本所在的目录下。
直接执行脚本文件: ./start.sh 在这种情况下,你需要确保脚本文件具有执行权限。如果没有,可以使用chmod命令添加执行权限: chmod +x helloworld.sh
使用脚本的绝对路径: /home/app/start.sh 如果脚本文件是新创建的,并且使用./或绝对路径无法执行,很可能是因为权限不足。此时,使用chmod命令授予权限后,就可以正常运行了。 -
修改运行命令
具体如下:
docker run -itd \
-p 18801:8801 \
-v /home/app/data:/home/app/data \
-v /home/app/java/jdk-17.0.15-full:/usr/local/java/jdk-17.0.15-full \
-v /home/app/software/testCenterServer/Release:/home/app/software/testCenterServer/Release \
-e JAVA_HOME=/usr/local/java/jdk-17.0.15-full \
-e PATH=$PATH:$JAVA_HOME/bin \
-e LANG=zh_CN.utf8 \
-e TZ=Asia/Shanghai \
--restart=always \
--name test-center-server \
--memory 32g \
--cpus 8 \
ubuntu:24.10 \
/bin/bash -c "/home/app/software/testCenterServer/Release/start.sh"
至此就可以正常运行这个镜像服务了!
OK♥
每天进步一点点!
首夏山中行吟
祝允明〔明代〕
梅子青,梅子黄,菜肥麦熟养蚕忙。
山僧过岭看茶老,村女当垆煮酒香。
-----------------------------------------
**相关解释**
译文
梅子熟了,从青色变成了黄色,地里的菜和麦子也都成熟了,又到了忙着养蚕缫丝的时节。
山里的僧人翻过山岭去看茶叶生长的情况,村里的姑娘站在酒垆边煮酒,酒香四溢。
注释
当垆:对着酒垆;在酒垆前。
**相关赏析**
祝枝山(字允明)的《首夏山中行吟》所写苏州西郊一带村女当垆煮酒的景象,让人读起来像吴语一般,轻快闲谈,很具姑苏特色。他的“有花有酒有吟咏,便是书生富贵时”,表达了那份满足,那份陶醉,一切功名利禄、人世烦恼,在诗酒风流前,烟消云散。这首酒诗反映了诗人人性的自由复归的愿望,重新发现自我,找到人生真正的归宿。

浙公网安备 33010602011771号