Nano Hash - криптовалюты, майнинг, программирование

Невозможно установить/переопределить точку входа в докер для выполнения двух команд

Я пытаюсь установить/переопределить точку входа в докер, когда запускаю образ докера, но получаю неожиданное поведение

Сценарий 1 (не работает)

  1. Команда запуска Docker --> docker run --rm -it --привилегированный --net=host python3.6 -m CameraServerBasler.pylon_video & python3.6 -m CameraServerBasler.server
  2. Вывод --> /usr/bin/python3.6: ошибка при поиске спецификации модуля для CameraServerBasler.server (ModuleNotFoundError: нет модуля с именем CameraServerBasler)

Сценарий 2 (рабочий)

Если я выполню ту же команду внутри bash образа докера, все будет работать как положено.

  1. Команда запуска Docker --> docker run --rm -it --привилегированный --net=host --entrypoint=/bin/bash
  2. Команда, выполняемая внутри образа докера --> python3.6 -m CameraServerBasler.server & python3.6 -m CameraServerBasler.pylon_video
  3. Вывод --> оба сервера (модули) запущены и работают, как и ожидалось (сервер и pylon_video)

Образ докера --> Ubuntu: 18.04

Я что-то упустил в команде запуска докера?


  • Есть ли причина, по которой они должны находиться в одном контейнере Docker? Если вы используете контейнер --privileged --net host, есть ли вообще какая-то польза от их использования в Docker? 03.11.2019
  • поделитесь dockerfile, пожалуйста, и отформатируйте команды как код 03.11.2019
  • Вы имели в виду && в своей команде? 04.11.2019

Ответы:


1

Мне удалось решить эту проблему с помощью скрипта sh, но до сих пор не очень понятно, почему не работает подход №1.

Подход №1 не работает

Точка входа, объявленная в файле докера

ENTRYPOINT ["python3.6", "-m", "CameraServerBasler.server", "&", "python3.6", "-m", "CameraServerBasler.pylon_video"]

Подход № 2 работает

Точка входа, объявленная в файле докера

ENTRYPOINT ["sh", "init.sh"]

Содержимое файла init.sh

python3.6 -m CameraServerBasler.server & python3.6 -m CameraServerBasler.pylon_video
05.11.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..