由于用conda安装prokka一直失败,最后选择docker安装,但运行时报错:‘contigs.fasta’ is not a readable non-empty FASTA file in prokka docker。我使用的代码如下:
docker run staphb/prokka:latest prokka --outdir ~/prokka_out/ contigs.fasta
报错原因分析:
这主要是因为在利用docker镜像时没有将本地文件挂载到docker镜像,docker类似一个虚拟机,如果我们没有把本地文件挂载进去,docker就无法访问文件内容,就会出现如上报错。
解决方案:将本地文件挂载到docker镜像即可,运行代码如下:
docker run -v $PWD:/data staphb/prokka:latest prokka --outdir /data/prokka_out /data/contigs.fasta
代码解析:
$PWD:/data
表示将当前工作目录挂载到docker镜像中的根目录下的data文件夹。
所以后续的输出文件位置和输入文件位置都设置为了/data
,因为我们把当前文件夹挂载到了doker镜像中的/data
,所以docker镜像中的/data
就相当于本地的工作目录了。