Я обычно делаю один образ с кроном и php, но запускаю его в двух разных контейнерах - fpm и cron. Для крона еще в докерфайле создаю скриптик, который помимо запуска самого крона будет записывать переменные окружения в создаваемый на лету .env файл, так как настоящий .env у меня в докеригноре. Выглядит это так:
// ...команды настройки php
RUN echo 'printenv | grep \
-e APP_ENV \
-e DATABASE_URL \
> ./.env && cron -f -L 15' > ${APP_DIR}/cron-starter
RUN chmod 700 ${APP_DIR}/cron-starter
Это нужно потому что докер запуская команды не передает им переменные окружения, а все современные фреймворки конфигурируются как раз с их помощью.