配置compose服务列表
要写docker-compose.yml文件完整路径
cat /mnt/scripts/compose.list
/vol1/1000/mountDisk1/service1/docker-compose.yml
/vol1/1000/mountDisk1/service2/docker-compose.yml
compose服务启动脚本
cat /mnt/scripts/startServices.sh
# 手动启动docker
startDocker(){
while true;do
if mountpoint /vol1/1000/mountDisk1 > /dev/null;then
systemctl restart trim_main.service && sleep 3 && systemctl start docker.service
if [ $? -eq 0 ];then
echo "Docker Service Started"
break
fi
fi
echo "Mounting Disk1 ..."
sleep 1
done
}
startServices(){
# 列表文件路径
LIST_FILE="/mnt/scripts/compose.list"
# 判断文件是否存在
if [[ ! -f "$LIST_FILE" ]]; then
echo "列表文件 $LIST_FILE 不存在"
exit 1
fi
# 遍历文件的每一行
Count=1
while IFS= read -r line; do
# 跳过空行
[ -z "$line" ] && continue
# 启动服务
echo "启动服务:$Count $line"
serviceDir=$(echo "${line%/*}")
cd $serviceDir
docker-compose up -d
((Count++))
sleep 2
done < "$LIST_FILE"
wait
}
startDocker 2>> /mnt/scripts/logs/startServices.log
startServices 2>> /mnt/scripts/logs/startServices.log
设置系统服务
cat /etc/systemd/system/startServices.service
[Unit]
Description=Start Docker Services
After=network.target
#Wants=docker.service
[Service]
Type=oneshot
User=root
ExecStart=/bin/bash /mnt/scripts/startServices.sh
RemainAfterExit=true
StandardOutput=journal
StandardError=inherit
SyslogIdentifier=snapshot
[Install]
WantedBy=multi-user.target
设置开机自启
systemctl enable startServices.service