当前位置:   LINUX > 正文

当我尝试在Docker容器中运行Shell脚本时无法打开文件

python,shell,docker,容器,ubuntu,git,https,flink,linux,hive,bash,go,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

我已经为此苦苦挣扎了一段时间,我不知道自己在做什么错。我试图在容器内运行Shell脚本,并且该Shell脚本从Shell脚本所在的目录中读取python脚本。但是我收到这个错误,说“ python:无法打开文件'get_gene_length_filter.py':[错误2]没有这样的文件或目录”。

这是我的Dockerfile:

FROM ubuntu:14.04.3
RUN apt-get update && apt-get install -y g++ \
                make \
                git \
                zlib1g-dev \
                python \
                wget \
                curl \
                python-matplotlib \
                python-numpy \
                python-pandas

ENV BINPATH /usr/bin
ENV EVO2GIT https://upendra_35@bitbucket.org/upendra_35/evolinc_docker.git
RUN git clone $EVO2GIT
WORKDIR /evolinc_docker
RUN chmod +x evolinc-part-I.sh && cp evolinc-part-I.sh $BINPATH

RUN wget -O- http://cole-trapnell-lab.github.io/cufflinks/assets/downloads/cufflinks-2.2.1.Linux_x86_64.tar.gz | tar xzvf -
RUN wget -O- https://github.com/TransDecoder/TransDecoder/archive/2.0.1.tar.gz | tar xzvf -

ENV PATH /evolinc_docker/cufflinks-2.2.1.Linux_x86_64/:$PATH
ENV PATH /evolinc_docker/TransDecoder-2.0.1/:$PATH
ENTRYPOINT ["/usr/bin/evolinc-part-I.sh"]
CMD ["-h"]

这是我的git repo代码:

#!/bin/bash
# Create a directory to move all the output files
mkdir output
# Extracting classcode u transcripts, making fasta file, removing transcripts > 200 and selecting protein coding transcripts
grep '"u"' $comparefile | gffread -w transcripts_u.fa -g $referencegenome - && python get_gene_length_filter.py transcripts_u.fa \
    transcripts_u_filter.fa && TransDecoder.LongOrfs -t transcripts_u_filter.fa

这就是我运行它的方式:

docker run --rm -v $(pwd):/working-dir -w /working-dir ubuntu/evolinc -c AthalianaslutteandluiN30merged.gtf -g TAIR10_chr.fasta  

jwodder.. 5

我将采取猜测和假设get_gene_length_filter.py/evolinc_docker,在Dockerfile声明的工作目录。不幸的是,当您运行时docker run ... -w /working-dir ...,工作目录将是/working-dir,因此Python将get_gene_length_filter.py/working-dir显然找不到的目录中查找。编辑您的Shell脚本以get_gene_length_filter.py通过其完整的绝对路径引用:python /evolinc_docker/get_gene_length_filter.py



1> jwodder..:

我将采取猜测和假设get_gene_length_filter.py/evolinc_docker,在Dockerfile声明的工作目录。不幸的是,当您运行时docker run ... -w /working-dir ...,工作目录将是/working-dir,因此Python将get_gene_length_filter.py/working-dir显然找不到的目录中查找。编辑您的Shell脚本以get_gene_length_filter.py通过其完整的绝对路径引用:python /evolinc_docker/get_gene_length_filter.py

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/LINUX/detail/18473
推荐阅读
  • 如何解决《如何为Linux部署Qt应用程序》经验,为你挑选了0个好方法。c++,linux,deployment,qt,qt4,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳... [详细]

  • 如何解决《查找Python对象具有的方法》经验,为你挑选了10个好方法。python,introspection,linux,ssh,git,bash,ubuntu,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,j... [详细]

  • 简单介绍PHP非阻塞模式,简单介绍php阻塞。简单介绍PHP非阻塞模式,简单介绍php阻塞非阻塞模式是指利用socket事件的消息机制,Server端与Client端之间的通信处于异步状态。让PHP不再php,非阻塞模式,udp,swool... [详细]

  • 我在swoole中将要发送的邮件信息写入到redis队列中,然后怎么去读取redis执行发送邮件呢,是需要用contab设置定时,还是用swoole的timer呢?或者其他的方式redis,php,swoole,DevBox,在线流程图,编... [详细]

  • 如何解决《git是否有类似`svnpropsetsvn:keywords`或pre-/post-commit钩子的东西?》经验,为你挑选了2个好方法。svn,git,version-control,linux,https,DevBox,在线... [详细]

  • 如何解决《如何知道Darwin内核调度程序时间片?》经验,为你挑选了0个好方法。c,macos,posix,darwin,linux,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix... [详细]

  • 如何解决《在ASP.NETCore应用程序中使用NLog》经验,为你挑选了2个好方法。nlog,asp.net-core,ms-extensions-logging,git,go,asp.net,mvc,linux,DevBox,在线流程图... [详细]

  • 如果用一句话概括RPC就是:远程调用框架(RemoteProcedureCall)通常我们调用一个php中的方法,比如这样一个函数方法:localAdd(10,20),localAdd方法的具体实现要么是用户自己定义的。php,rpc,服务... [详细]

  • 如何解决《如何在linuxbash别名中隐藏错误通知?》经验,为你挑选了1个好方法。linux,bash,alias,macos,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间... [详细]

  • 如何解决《不,androidStudio中的minSdk(API15)>deviceSdk(API1)》经验,为你挑选了0个好方法。android,android-sdk-tools,android-studio,windows,li... [详细]

  • 我们用laravel或ci框架中的数据库配置,然后在每个控制器中取出数据。这样是不是和每个原生php单页写一个mysql_contact,就是每个页面都要连接数据库一次。本质是不同的,就是说php框架可以为我们配置php,mysql,red... [详细]

  • 我在php5.2上面运行一个自动发邮件的程序,一开始运行后,再点别的链接都开始在等待状态了。是否是因为php是单线程排队运行?php,apache,安全,linux,windows,swoole,DevBox,在线流程图,编程,编程问答,程... [详细]

  • 如何解决《千年(和其他)是闰年吗?》经验,为你挑选了1个好方法。python,linux,calendar,go,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具... [详细]

  • 如何解决《如何生成在AndroidStudio或Intellij-Idea中返回Object(self)的setter》经验,为你挑选了1个好方法。java,android,intellij-idea,android-studio,wind... [详细]

  • 如何解决《C预处理文件中的这些陌生行是什么?》经验,为你挑选了1个好方法。c,c++,linux,gnu,compilation,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间... [详细]

  • 使用swoole的原因:1、swoole开源项目就是为了弥补PHP在一些方面的缺陷而诞生的;2、swoole实际上是一个网络通信和异步io的引擎,一个基础库;3、swoole框架主要节省PHP框架和全局对象每次请求创建销毁带来的性能损耗。s... [详细]

  • $str和$str1都是数组,一个调用报错,一个不会{代码}#报错代码都是字符为什么会这样.swoole,php,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具... [详细]

  • 如何解决《为什么在bash中将stdin重定向到while循环中?》经验,为你挑选了1个好方法。linux,bash,shell,io-redirection,debian,ssh,DevBox,在线流程图,编程,编程问答,程序员,开发者工... [详细]

  • 如何解决《如何将实时视频帧从ffmpeg传输到PIL?》经验,为你挑选了1个好方法。python,linux,ffmpeg,gstreamer,raspberry-pi,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具... [详细]

  • 比如下面这样一个文件test.php{代码}在终端下执行phptest.php可以将进程留在后台但是通过浏览器访问test.php的时候,不能在后台留下进程猜测可能是web进程中止同时把sleep也给中止了,要想一直留着,有什php,swo... [详细]

相关标签
  

闽ICP备14008679号