Бот для телеги, открывающий доступ в чатик по приглашениям.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.4 KiB

Справка

Сборка Docker контейнера

  FROM python:3.9-slim-buster
  WORKDIR /project

  ENV TELEGRAM_API_TOKEN=""
  ENV GBOT_DELAY_TIME=1
  ENV GBOT_DELAY_TIME_Q=180
  ENV GBOT_CHAT_ID=""
  ENV GBOT_DB_PATH="/project/data/support.db"

  # без проброса времени бот счиатет что он в GMT+0
  ENV TZ=Europe/Moscow
  RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

  #RUN useradd -m -r user && \
  #    chown user /project
  #USER user
  COPY requirements.txt ./
  RUN pip install -r requirements.txt

  #USER user

  COPY . .
  ENTRYPOINT ["python", "main.py"]

После этого в папке с проектом:

  • собираем бота docker build -t gorgorod-bot .,
  • пробуем запустить docker run -it --rm --name gorgorod-tg --mount source=gorgorod_data,target=/project/data gorgorod-bot

Systemd сервис

Сам файл `docker.gorgorod-bot.service`:

  #/etc/systemd/system/docker.gorgorod-bot.service
  [Unit]
  Description=Gorgorod bot
  After=docker.service
  Requires=docker.service

  [Service]
  TimeoutStartSec=0
  Restart=always
  WorkingDirectory=/home/redmaycry/gorgorod-bot
  ExecStartPre=-/usr/bin/docker container stop gorgorod-tg
  ExecStartPre=-/usr/bin/docker rm gorgorod-tg
  ExecStart=/usr/bin/docker run --rm --name gorgorod-tg --mount source=gorgorod_data,target=/project/data gorgorod-bot
  ExecStop=/usr/bin/docker container stop gorgorod-tg

  [Install]
  WantedBy=multi-user.target

После этого:

  • перезагружаем список демонов systemctl daemon-reload,
  • включаем наш новый демон в автозагрузку systemctl enable docker.gorgorod-bot.service,
  • запускаем сервис systemctl start docker.gorgorod-bot.service