Docker 容器 Python 子进程.Popen php5.6 脚本是否可以执行



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

proxiScript = 'php5.6 -V'

子流程。Popen(proxiScript, shell=True, stdout=subprocess.管道(

当我创建一个 docker 镜像时,起初,我在连接到 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"]

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

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映像上拥有你需要的一切吗?

我们的要求是什么.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

相关内容

最新更新