项目场景:
使用docker-compose部署项目时,多项目之间存在依赖管理,顺序启动使用wait-for-it.sh
下载地址
问题描述
各种问题,查了半天,记录之
把下载下来的wait-for-it.sh拖进Linux,兴高采烈的去执行./wait-for-it.sh
,啪,第一个问题他来了
1、-bash: ./wait-for-it.sh: Permission denied
[root@localhost docker-compose]# ./wait-for-it.sh
-bash: ./wait-for-it.sh: Permission denied
很明显这是没有权限,简单,只需执行一下赋予权限语句
chmod +x ./wait-for-it.sh
满心欢喜,在执行./wait-for-it.sh
,啪,第二个问题出现了
2、: No such file or directory
[root@localhost docker-compose]# ./wait-for-it.sh
: No such file or directory
没有这样的文件或目录?????
各种查,没有解决问题,最后发现了这位哥哥的帖子
大致意思就是说,wait-for-it.sh文件的格式有问题,需要在Linux里面重新设置一下
1、输入 vim wait-for-it.sh
打开wait-for-it.sh文件
2、输入 :set ff
回车 显示 fileformat=dos
3、输入 :set ff=unix
回车 就是告诉 vi 编辑器,使用unix换行符
4、输入 :wq
回车 退出保存
至此,问题基本解决,输入./wait-for-it.sh www.baidu.com:80 -- echo "baidu is up"
测试
[root@localhost docker-compose]# ./wait-for-it.sh www.baidu.com:80 -- echo "baidu is up"
wait-for-it.sh: waiting 15 seconds for www.baidu.com:80
wait-for-it.sh: www.baidu.com:80 is available after 0 seconds
baidu is up
成功!!!
附件
和wait-for-it.sh同级目录下docker-compose文件
version: '3'services:
# mysqlmy_mysql:container_name: my_mysqlimage: mysql:5.7.34restart: alwaysports:- "3306:3306"volumes:- ./mysql/data:/var/lib/mysql- ./mysql/conf/my.cnf:/etc/my.cnfenvironment:- "MYSQL_DATABASE=root"- "MYSQL_ROOT_PASSWORD=root"- "TZ=Asia/Shanghai"# nacosmy_nacos:container_name: my_nacoshostname: my_nacosimage: nacos/nacos-server:latestrestart: alwaysports:- "8848:8848"environment:- "MODE=standalone"- "SPRING_DATASOURCE_PLATFORM=mysql"- "MYSQL_SERVICE_HOST=my_mysql"- "MYSQL_SERVICE_PORT=3306"- "MYSQL_SERVICE_USER=root"- "MYSQL_SERVICE_PASSWORD=root123"- "MYSQL_SERVICE_DB_NAME=snowy-cloud-nacos"depends_on:- my_mysql#后台test-app: #spring boot的服务名,服务名自定义#容器名称container_name: test-app#image是指定服务的镜像名称或镜像ID。如果镜像在本地不存在,Compose将会尝试拉取镜像。image: java:8restart: alwaysenvironment:TZ: Asia/Shanghai#ports用于映射端口的标签。使用HOST:CONTAINER格式或者只是指定容器的端口,宿主机会随机映射端口。ports:- "9001:9001"#挂载文件夹volumes:- ./backend/test-app.jar:/data/test-app.jar- ./wait-for-it.sh:/wait-for-it.sh#启动容器后执行的命令command: ["/wait-for-it.sh", "my_nacos:8848", "--", "java", "-jar", "/data/test-app.jar"]depends_on:- my_nacos