Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x docker运行和docker运行-它不提供相同的二进制文件_Python 3.x_Docker_Nose - Fatal编程技术网

Python 3.x docker运行和docker运行-它不提供相同的二进制文件

Python 3.x docker运行和docker运行-它不提供相同的二进制文件,python-3.x,docker,nose,Python 3.x,Docker,Nose,我为我的项目制作了一个docker,我使用python和命令nosetests。我的问题如下: 我想做一个脚本,在docker中运行我的测试。因此,我在脚本中使用了命令docker run--rm pfp nosetests.,但我得到了以下错误:/src/test/resources/test\u in_docker.sh:line 38:nosetests:command not found 我对此很好奇,所以: 我坐码头工人自己去的 通过docker run--rm pfp/bin/b

我为我的项目制作了一个docker,我使用python和命令
nosetests
。我的问题如下: 我想做一个脚本,在docker中运行我的测试。因此,我在脚本中使用了命令
docker run--rm pfp nosetests.
,但我得到了以下错误:
/src/test/resources/test\u in_docker.sh:line 38:nosetests:command not found

我对此很好奇,所以:

  • 我坐码头工人自己去的
通过
docker run--rm pfp/bin/bash
和did I
where is nosetests
返回
nosetests:/usr/local/bin/nosetests
,所以一切都有意义,nosetests已经安装并可用。我更能运行我的测试了

  • 我没进集装箱就检查了一下
我做了
docker运行--rm pfp printenv&&echo--&&ls/usr/local/bin | grep-I nose
,它返回了以下内容:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=a0bac6123ed1
TERM=xterm
INSTALL_DIR=/install
WORKSPACE=/workspace
DATA=/data
LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:/usr/lib:/usr/lib64:{LD_LIBRARY_PATH}
PYTHONPATH=:/workspace/pfp/src/main/python
HOME=/root
---
theano-nose
我知道我的PYTHONPATH有点奇怪,但我的路径应该很好,因为有/usr/local/bin

但由于某些原因,当我不在docker内部启动命令时,我无法发现二进制nosetest不再可用

有人能给我一些答案吗

==编辑==== 在docker文件下面。文件夹包位于计算机上,包含一些安装脚本,以使dockerfile更具可读性

FROM centos:7

# Set the install dir
ENV INSTALL_DIR=/install
RUN mkdir -p $INSTALL_DIR/package/

# Location of project and data
ENV WORKSPACE=/workspace
RUN mkdir $WORKSPACE
ENV DATA=/data
RUN mkdir $DATA


# Import package to do install
ADD ./package/ $INSTALL_DIR/package/

# Add basic tools
RUN yum install -y vim mlocate

# Set LD_LIBRARY_PATH for c++
ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:/usr/lib:/usr/lib64:{LD_LIBRARY_PATH}
# # Install gcc5.5 to get cpp 14 with new ABI
RUN yum -y install make
RUN $INSTALL_DIR/package/centos7/gcc7.4/install.sh -i $INSTALL_DIR/gcc7.4
RUN export PATH=$INSTALL_DIR/gcc7.4/bin:$INSTALL_DIR/gcc7.4/lib:$INSTALL_DIR/gcc7.4/lib64:$INSTALL_DIR/gcc7.4/include:${PATH}&& $INSTALL_DIR/package/centos7/gcc5.5/install.sh
RUN rm -rf $INSTALL_DIR/gcc7.4

# We want to work with cmake3
RUN yum -y install epel-release
RUN yum -y install cmake3
RUN ln -s /usr/bin/cmake3 /usr/bin/cmake

#Install bfm dependencies
RUN $INSTALL_DIR/package/centos7/proj6.2/install.sh
RUN $INSTALL_DIR/package/centos7/gdal3.0/install.sh

# This will install python 3.6
RUN yum -y install python3 python3-devel
RUN ln -s /usr/bin/pip3 /usr/bin/pip

RUN $INSTALL_DIR/package/centos7/pfp/install.sh

RUN rm -rf $INSTALL_DIR/package/*

# To make source code importable in test
ENV PYTHONPATH=$PYTHONPATH:$WORKSPACE/pfp/src/main/python

# Command will be launch from this location
WORKDIR $WORKSPACE/pfp/src/main/python/

docker run--rm pfp/bin/bash-c“nosetests”
你能把你的Dockerfile包括在问题中吗?我怀疑您可能试图在shell点文件中设置一些重要的内容,但是典型的Docker路径实际上并没有运行它们