Задание Redmine cron для получения писем (redmine: email: receive_imap) в docker - PullRequest
0 голосов
/ 19 февраля 2020

Вот предложение для получения электронных писем и создания билетов с cronjob в контейнере Redmine. Я разделяю это, потому что было трудно найти документацию об этом. Возможно, есть лучшее решение, но оно работает.

docker -compose.yml

  redmine:
    container_name: redmine
    build: configs
    restart: always
    ports:
      - 8080:3000
    environment:
      - REDMINE_DB_MYSQL=mysql
      - REDMINE_DB_USERNAME=redmine
      - REDMINE_DB_DATABASE=redmine
      - REDMINE_DB_PASSWORD=password1234
    volumes:
      - ./configs/crontab.txt:/root/crontab.txt
      - ./configs/cronjob.sh:/root/cronjob.sh

configs / Dockerfile

FROM redmine:4.1.0

RUN set -ex; \
    apt update;  \
    apt install cron -y

COPY entrypoint.sh /usr/local/bin/
ENTRYPOINT ["entrypoint.sh"]

CMD ["rails", "server", "-b", "0.0.0.0"]

конфиги / точка входа. sh

#!/bin/bash

echo >&2 "Start crontab"
service cron start
crontab /root/crontab.txt

# call parent entrypoint
exec /docker-entrypoint.sh "$@"

конфиги / crontab.txt

* * * * * /root/cronjob.sh >> /var/log/cron.log 2>&1
# Empty space

конфиги / cronjob. sh

#!/bin/bash
# get env form printenv in container
export PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export GEM_HOME=/usr/local/bundle
export RAILS_ENV=production
export HOME=/home/redmine
export BUNDLE_APP_CONFIG=/usr/local/bundle
rake -f /usr/src/redmine/Rakefile redmine:email:receive_imap RAILS_ENV=production host=imap.host.com username=mail@host.com password=passw0rd port=993 ssl=true project=project_name assigned_to=group_name no_permission_check=1 unknown_user=accept move_on_success=read
...