php - docker container python subprocess.Popen php5.6 script 是否可以执行?
问题描述
我正在尝试将我的 python 应用程序停靠在本地。当我在终端(Linux mint 19.1)中启动时,该应用程序运行良好。该应用程序有一些来自应用程序外壳的输出。第一个是连接mysql服务器。另一个是调用 python subprocess 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
有没有办法构建一个独立的图像,其中包含我在项目中使用的所有需求。也许我可以使用主机终端来使我的图像成功?
谢谢 ..
从应用程序->
`
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 图像上拥有所需的一切吗?
我们的 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
推荐阅读
- kotlin - Why data classes in Kotlin cannot be marked with inner modifier?
- android - 如何在每天 23:59 向服务器发送数据?
- network-programming - Find the IP of an internet host using its MAC adress only
- memory - 3D深度学习模型(pytorch)的高效推理
- r - How can I remove all rows that have NA for a certain variable
- python - Django: Admin - order results based on regular expression
- analytics - SPA DTM 分析页面名称问题
- php - Getting Issue In Gracenote TMSAPI
- curl - curl: (58) 无法加载 PEM 客户端证书,当证书在程序文件中时
- spring - 使用 Apache Camel 和 Hibernate 时的多租户支持(在 Spring 应用程序中)