Я использую docker для выполнения команды при запуске контейнера, но, похоже, переменная окружения не получена из файла .bashrc, пожалуйста, дайте мне несколько советов.спасибо
dockerFile Я добавляю это в .bashrc: echo "export PYTHONPATH=$PYTHONPATH:/models/research:/models/research/slim" >> /root/.bashrc
docker-compose.yml файл с:
command: ["python2", "/usr/bin/supervisord", "--nodaemon", "--configuration", "/etc/supervisor/supervisord.conf"]
PS: еслиЯ выполняю echo $ PYTHPATH или просто выполняю python2 / usr / bin / supervisord -c /etc/supervisor/supervisor.conf из контейнера, там нет проблем.
Система Ubuntu 16.04
конфигурация супервизора:
[program:mosquitto-subscrible]
process_name=%(program_name)s_%(process_num)02d
command=python3 detection.py start_mosquitto_subscrible
autostart=true
autorestart=true
user=root
numprocs=1
directory=/var/www/html/detection
redirect_stderr=true
stdout_logfile=/var/www/html/detection/logs/detection.log
docker-compose.yml
version: '3'
services:
tensorflow:
container_name: object-detection
build:
context: ./tensorflow
dockerfile: Dockerfile
# environment:
# - PYTHONPATH=:/models/research:/models/research/slim
volumes:
- ./www:/var/www/html:cached
- ./tensorflow/supervisor:/etc/supervisor/conf.d
command: ['tail', '-f', '/dev/null']
# command: ["python2", "-c", "/usr/bin/supervisord", "--nodaemon","--configuration", "/etc/supervisor/supervisord.conf"]
В заключение я пишу команду в Dockfile echo "export PYTHONPATH=$PYTHONPATH:/models/research:/models/research/slim" >> /root/.bashrc
, чтобы PYTHON мог найти / models / research.
там есть модель python /models/research/object_detection
.
с моим супервизором, команда python3 detection.py start_mosquitto_subscrible
не может найти модель object_detection, если я запускаю supervisord
только из команды docker-compose вместоexec внутри контейнера докера.
supervisord для запуска требуется python2, мой код требует python3