docker container python subprocess.Popen php5.6脚本是否可以执行?

时间:2019-03-28 13:43:43

标签: php python docker subprocess containers

我正在尝试在本地对我的python应用进行docker化。当我在终端中启动时,该应用程序运行完美(Linux Mint 19.1)。该应用程序有一些来自应用程序外壳的输出。第一个是与mysql服务器连接。另一个正在调用python子进程lib。.

proxiScript ='php5.6 -V'

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

当我创建一个docker镜像时,起初,我在连接mysql时遇到了问题[我用docker run --net host image_name解决了它。]

第二个问题是..     /bin/sh: 1: php5.6: not found

有没有一种方法可以构建一个独立的映像,其中包含项目中正在使用的所有需求。也许我可以使用主机终端来使映像成功?

谢谢..

FROM应用->

`
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 :(得分:0)

我认为您应该添加以下环境路径(例如,使用适合您情况的环境路径):

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图片吗?

您确定在python:3.7-slim图像上拥有所需的一切吗?

我们的requirements.txt是什么?

根据我在这张图片上看到的,这是一个未安装php5软件包的debian 9

您可以构建自己的图像并像这样使用它:

Dockerfile:     来自高山: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