项目背景,局域网跑定时脚本,但是在容器里面离线安装screen和crontab不成功,此时方法为自己制作镜像来启动项目
step1:自定义镜像
原镜像 registry.aspider.avlyun.org/library/php-apache
docker run -d --name xz_apache registry.aspider.avlyun.org/library/php-apache
在容器里面 :
我们进去发现没有vim,screen.crontab功能,不能满足我们的需求
# sudo apt-get update
#sudo apt-get install vim
#sudo apt-get install screen
#sudo apt-get install cron
# screen -ls # cat /etc/crontab 检查是否安装好 没问题就继续
ctrl + p +q 退出容器
#docker ps 查看刚刚的容器
# docker commit 容器id xz_apache
#docker save xz_apache > /var/www/xz_apache.tar
至此容器 已经制作好在你的/var/www文件夹下,利用ftp传到服务器上
step2:服务器上操作
# docker load -i xz_apache.tar
docker images 查看镜像,并后台启动,进入容器
(可选)# vim /etc/apache2/apache2.conf (此操作可不做,但是我还是记录一下)
(可选)#/etc/init.d/apache2 restart
step3:编写PHP文件及shell文件
shell文件时需要注意把phpstrom右下角 改为 LF 然后再编写,否则会报错
#!/bin/bash
sample=$(screen -ls|grep aa|wc -l)
while [ ${sample} -lt 1 ]
do
screen -dmS aa php aa.php
sample=`expr ${sample} + 1`
done
里面的 aa等于 php文件名
step4:crontab
首先chmod 777 sh文件 ,并确保php文件和sh文件是好的
其次 注意你的时间是否准确 date查看
然后
#vim /etc/crontab