Docker контейнер Python подпроцесс. Открыть скрипт php5.6 можно ли выполнить? - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь докеризировать свое приложение на Python локально. Приложение отлично работает, когда я запускаю в терминале (Linux Mint 19.1). Приложение имеет некоторые выводы из оболочки приложения. Первый из них связан с MySQL сервером. Еще один вызывает Python-подпроцесс lib ..

proxiScript = 'php5.6 -V'

subprocess.Popen (proxiScript, shell = True, stdout = subprocess.PIPE)

Когда я создавал образ докера, у меня сначала возникла проблема с подключением к mysql [я решаю его с помощью docker run --net host image_name].

Вторая проблема .. /bin/sh: 1: php5.6: not found

Есть ли способ создать автономный образ, в который я включу все потребности, которые я использую в своем проекте ... Может быть, я мог бы использовать хост-терминал, чтобы сделать мой образ успешным?

Спасибо ..

ИЗ приложения ->

`
proxiScript = "php5.6 -v "
proc=subprocess.Popen(proxiScript, shell=True, stdout=subprocess.PIPE)`

Dockerfile

FROM python:3.7-slim WORKDIR /app COPY . /app RUN pip install --trusted-host pypi.python.org -r requirements.txt EXPOSE 80 CMD ["python", "test.py"]

1 Ответ

0 голосов
/ 28 марта 2019

Я думаю, вы должны добавить путь к среде, как показано ниже (например, используйте те, которые подходят для вашего случая):

ENV LD_LIBRARY_PATH /opt/rh/python27/root/usr/lib64
ENV PATH /opt/rh/python27/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Разве вы не должны использовать вместо этого изображение php5?

Вы уверены, что у вас есть все, что вам нужно на этом питоне: 3,7-тонкое изображение?

Каковы наши require.txt?

Из того, что я увидел на этом образе, это Debian 9 без установленного пакета php5

Вы можете создать свой собственный образ ииспользуйте его так:

Dockerfile: FROM alpine: 3.5

ENV http_proxy http://proxyapps.gsnet.corp:80
ENV https_proxy https://proxyapps.gsnet.corp:80

RUN apk add --update \
    python \
    python-dev \
    py-pip \
    build-base \
    php5

Запустив этот контейнер в интерактивном режиме, вы можете получить следующее:

docker run -ti "yourimage"
/ # /usr/bin/php5 -v
PHP 5.6.38 (cli) (built: Oct  1 2018 14:20:42) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

/ # /usr/bin/python -V
Python 2.7.15
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...