这是一个跑 php-fpm 的容器, debian 的 jessie 镜像,启动命令 cron&&php-fpm 启动的,我 exec 进容器,看到根本没有 log , ps aux 可以看到 crond 进程在 run 啊。
而且如果我手动执行 cron 中的命令,就能看到 log ,试过 restart 容器了。
补上我的dockerfile如下:
FROM daocloud.io/php:7-fpm
MAINTAINER gouchaoer <[email protected]>
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \
echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list && \
echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list && \
echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list && \
echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get --yes install \
net-tools \
htop \
iftop \
nano \
libicu-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng12-dev \
libicu-dev \
libssl-dev \
libevent-dev
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install gd
RUN docker-php-ext-install exif intl mcrypt sockets pdo_mysql
RUN pecl install mongodb
RUN echo "extension=mongodb.so" >> /usr/local/etc/php/conf.d/mongodb.ini
RUN pecl install event
RUN echo "extension=event.so" >> /usr/local/etc/php/conf.d/event.ini
RUN apt-get --yes install git cron
COPY . /app_src
RUN mkdir -p /root/.ssh
RUN chmod 0700 /root/.ssh
COPY id_rsa /root/.ssh
RUN chmod 0700 /root/.ssh/id_rsa
RUN crontab /app/mycron
CMD cron && php-fpm
1
williamx 2016-10-01 10:19:29 +08:00 1
我试过 Ubuntu 的容器,没有问题
|
2
gouchaoer OP 已经补上了 dockerfile ,继续求帮忙
|
3
gouchaoer OP 我现在已经知道了是 cron 里面没发现我 php 路径的原因,但是我 cat /proc/6/environ 看到了 php 的路径在环境变量下啊,神奇
|
4
gouchaoer OP 已经解决了, cron 执行命令去开的 shell 的 PATH 他妈的没有完全继承 cron 的 PATH 环境变量,蛋都碎了
|
5
kimown 2016-10-01 13:56:53 +08:00 via Android
lz 能描述下解决方案吗,还是有点不太明白
|
7
dangyuluo 2016-10-03 07:13:35 +08:00
这时候只要用 cron 来讲 PATH 输出到文件就可以排查出
|
8
ooonme 2016-10-03 15:54:17 +08:00 via iPhone
cron 的日志有报错吧,之前遇到过这种问题,跟 docker 无关
|