正在docker容器中设置laravel任务调度程序



有人能帮助在docker容器中设置laravel调度程序吗?我已经使用docker安装并设置了服务器。但是要在docker容器中设置cron作业(laravel任务调度器(,我遇到了问题。

这是我的Dockerfile

FROM php:7.2-fpm
# Copy composer.lock and composer.json
COPY composer.lock composer.json /var/www/
# Set working directory
WORKDIR /var/www/
# Install dependencies
RUN apt-get update && apt-get install -y 
build-essential 
default-mysql-client 
libpng-dev 
libjpeg62-turbo-dev 
libfreetype6-dev 
locales 
zip 
jpegoptim optipng pngquant gifsicle 
vim 
unzip 
git 
curl
cron
# Clear cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
# Install extensions
RUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl
RUN docker-php-ext-configure gd --with-gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/
RUN docker-php-ext-install gd
# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Add user for laravel application
RUN groupadd -g 1000 www
RUN useradd -u 1000 -ms /bin/bash -g www www

# Copy existing application directory contents
COPY . /var/www/
# Copy existing application directory permissions
COPY --chown=www:www . /var/www/

# Change current user to www
USER www
ADD entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT /entrypoint.sh
# Expose port 9000 and start php-fpm server
EXPOSE 9000
CMD ["php-fpm"]

我的Entrypoint.sh文件编码这个

#!/bin/bash
# Start the run once job. echo "Docker container has been started"
# Setup a cron schedule
* * * * * php /var/www/artisan schedule:run >> /var/log/cron.log 2>&1
# This extra line makes it a valid cron" > scheduler.txt
crontab scheduler.txt 
cron -f

我在制作容器时总是会遇到这个错误。

cron无法打开或创建/var/run/crond.pid权限被拒绝

创建一个bin文件夹,并在该添加文件中添加run-scheduler.sh文件,在该文件中声明laravel-scheduler命令,该命令最终会命中该命令。

#/usr/bin/env bash

while[true]

进行

php/var/www/artisan schedule:run——verbose——无交互&

睡眠60

完成

在此之后,声明一个entrypoint.sh文件,在该文件中声明启动docker命令,该命令最终每60秒由run-scheduer.sh命中一次。#/垃圾桶/垃圾桶

/bin/run-scheduler.sh&

docker php入口点php fpm

最新更新