Два контейнера Docker и развертывание Azure

0

Вопрос

Я хочу развернуть в Azure скрипты python, которые будут использовать библиотеку Selenium для автоматического тестирования различных веб-сайтов в определенные часы дня.

Я хочу использовать докер с Azure.

Мое нынешнее мышление состоит в том, что я должен разработать сценарий создания докера, чтобы:

  • разверните автономный образ chrome Selenium, прослушивающий порт 4444.
  • разверните другой контейнер с некоторым изображением Python, и мои скрипты Python будут запущены с помощью CRON
  • поскольку у меня есть 2 контейнера, которые не знают друг о друге, я думаю, что мне нужно запустить команду docker для настройки сети, чтобы эти 2 контейнера могли общаться друг с другом. Входит ли это в сценарий создания докера?

Как вы можете сказать, я немного новичок во всем этом - так правильно ли я мыслю или я сделал это слишком сложным?

cron docker python selenium
2021-11-17 20:43:30
1

Лучший ответ

1

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

В качестве примера:

FROM python:3.8

COPY . /app
WORKDIR /app

RUN mkdir __logger

# install google chrome
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
RUN apt-get -y update
RUN apt-get install -y google-chrome-stable

# install chromedriver
RUN apt-get install -yqq unzip
RUN wget -O /tmp/chromedriver.zip http://chromedriver.storage.googleapis.com/`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`/chromedriver_linux64.zip
RUN unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/

# set display port to avoid crash
ENV DISPLAY=:99

RUN pip install --upgrade pip

RUN pip install -r requirements.txt

CMD ["python", "./app.py"]

Пример источника

2021-11-17 20:50:50

Таким образом, это не использует perse образа Selenium - вы на самом деле устанавливаете Chrome в среду, а затем запускаете оттуда сценарии python (у которых, очевидно, есть соответствующие инструкции импорта Selenium и т. Д.)
Vidar

Правильный. Это просто другой вариант, который у вас был бы, если бы вы хотели запустить все это в одном контейнере. Оба варианта осуществимы, и сетевой вариант может обеспечить разделение проблем. Я предполагаю, что в конечном итоге это зависит от устойчивости процесса, в котором вы нуждаетесь в конце; Похоже, что они в любом случае будут по расписанию, так что это может иметь смысл для простоты.
pypalms

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................