Python 3.x docker运行和docker运行-它不提供相同的二进制文件
我为我的项目制作了一个docker,我使用python和命令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
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 Iwhere 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路径实际上并没有运行它们