阿里云 ,云效部署docker 部署crontab 不生效问题

因为有单独的脚本机器,所以在docker 的base 镜像里不能设置crontab 所以crontab 需要单独的在阿里云云效果流水线脚本那设置。下面是我的云效docker 部署脚本

#部署脚本会在部署组的每台机器上执行。一个典型Docker部署脚本如下:
#示例中使用的$image是您在脚本下方的变量处定义的变量(上游输出或自定义)
#docker run $image

#停止旧的容器,启动新的容器
container_ids=$(docker ps -a |grep fengyun1032009 |awk '{print $1}')
for container_id in $container_ids; do
    docker stop $container_id
done

echo $DOCKER_PASSWORD | docker login --username $DOCKER_USERNAME --password-stdin registry.cn-hangzhou.aliyuncs.com
docker run  -d -p 80:80 -p 443:443 -v /var/www/html/:/var/www/html/ $image

eval "$(ssh-agent -s)"

ssh-add /root/.ssh/aliyun_prod

cd /var/www/html/

if [ ! -d 'api.eatwh.com'  ];then
  git clone git@codeup.aliyun.com:5f6b6dd46207a1a8b17fdd46/eatwh/api.eatwh.com.git
else
  cd 'api.eatwh.com'
  git pull git@codeup.aliyun.com:5f6b6dd46207a1a8b17fdd46/eatwh/api.eatwh.com.git
fi

run_container_id=$(docker ps |grep fengyun1032009 |awk '{print $1}')

#如果存在容器就执行cp crontab 操作
if [ ! -z "$run_container_id" ]; then  

    sudo docker cp /var/www/html/api.eatwh.com/crontab/root_crontab $run_container_id:/var/spool/cron/crontabs/
    
    sudo docker exec $run_container_id sh -c "cat /var/spool/cron/crontabs/root_crontab > /var/spool/cron/crontabs/root"
    
    sudo docker exec $run_container_id sh -c " chown root:crontab /var/spool/cron/crontabs/root"
    
    sudo docker exec $run_container_id sh -c " chmod 600 /var/spool/cron/crontabs/root"
    
    sudo docker exec $run_container_id sh -c "service cron restart"
    
    sudo docker exec $run_container_id sh -c "cd /var/www/html/api.eatwh.com/ && composer install"
    
    sudo docker exec $run_container_id sh -c "  
        cd /var/www/html/api.eatwh.com/ && \
        if [ -f /var/www/html/api.eatwh.com/composer.lock ]; then  
            composer update --no-dev --optimize-autoloader  
        else  
            composer install --no-dev --optimize-autoloader  
        fi  
    "  
fi  

如果crontab 脚本不生效,需要设置crontab 脚本的权限。还有一点 crontab 部署的时候一定要在crontab 设置的地方加个回车


#队列监控脚本 php路径需要写全路径#########
#* * * * * /usr/local/bin/php /var/www/html/xxx.com/cli.php PROD-BJ Testdeal> /dev/null 2>&1

* * * * * /usr/local/bin/php /alidata/www/xxx.com/cli.php PROD-BJ Sqsmonitor > /dev/null 2>&1

一定要在最后加个回车重要的事说两遍

如果有任何关于docker 云效部署的问题可以加微信18610310212 咨询。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值