Развертывание Flask с рабочим и redis в Docker на Heroku с использованием heroku.yml - PullRequest
0 голосов
/ 02 февраля 2020

Итак, я пытаюсь развернуть мое приложение для очистки Flask в Heroku с помощью heroku.yml. В локальной среде я использую docker -compose, и в основном у меня есть app.py и worker.py, которые я хочу запустить, и Redis (сейчас я не хочу использовать плагин, который предлагает Heroku - если это возможно из c?).

Это мой heroku.yml

build:
  docker:
    web: Dockerfile
    worker: Dockerfile
run:
  web: 
    command: 
      - python3 app.py
    image: web
  worker: 
    command:
      - python3 worker.py
    image: worker
  redis:
    image: redis

Мне постоянно возвращается это, когда я пытаюсь сделать пу sh

remote: Building source:
remote: === Fetching app code
remote: 
remote: =!= There were problems parsing your heroku.yml. We've detected the following issues:
remote: 
remote: run.worker.command needs to be in array format, such as:
remote: run:
remote:   worker:
remote:     command:
remote:       - python3 worker.py
remote:     image: web
remote: Verifying deploy...
remote: 


Можете ли вы помочь мне с heroku.yml? Я написал хороший yml как docker -compose? Я написал хорошую часть Redis?

Ниже - мой Docker файл и Docker файл для создания.

Docker файл

FROM ubuntu:bionic

RUN apt-get update && apt-get install -y \
    python3 python3-pip \
    fonts-liberation libappindicator3-1 libasound2 libatk-bridge2.0-0 \
    libnspr4 libnss3 lsb-release xdg-utils libxss1 libdbus-glib-1-2 \
    curl unzip wget \
    xvfb


# install geckodriver and firefox

RUN GECKODRIVER_VERSION=`curl https://github.com/mozilla/geckodriver/releases/latest | grep -Po 'v[0-9]+.[0-9]+.[0-9]+'` && \
    wget https://github.com/mozilla/geckodriver/releases/download/$GECKODRIVER_VERSION/geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz && \
    tar -zxf geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz -C /usr/local/bin && \
    chmod +x /usr/local/bin/geckodriver && \
    rm geckodriver-$GECKODRIVER_VERSION-linux64.tar.gz

RUN FIREFOX_SETUP=firefox-setup.tar.bz2 && \
    apt-get purge firefox && \
    wget -O $FIREFOX_SETUP "https://download.mozilla.org/?product=firefox-latest&os=linux64" && \
    tar xjf $FIREFOX_SETUP -C /opt/ && \
    ln -s /opt/firefox/firefox /usr/bin/firefox && \
    rm $FIREFOX_SETUP

#Docker cache leverage
COPY ./requirements.txt /app/requirements.txt

WORKDIR /app

RUN pip3 install -r requirements.txt

COPY . /app

ENTRYPOINT [ "python3" ]

CMD [ "app.py" ]

Docker для создания

version: "3"
services:
  web:
    environment:
      - LANG='C.UTF-8' 
      - LC_ALL='C.UTF-8'
    build: .
    restart: always
    ports:
     - "5000:5000"
  worker:
    environment:
      - LANG='C.UTF-8' 
      - LC_ALL='C.UTF-8'
    build: .
    command: worker.py
    shm_size: '2gb'
    depends_on:
      - redis
  redis:
    image: redis
...