2017-06-16 289 views
0

我试图建立基于CentOS 7 dockerfile它可以运行它是用Perl编写和VEP(变影响预测)的特定版本的Perl有它的依赖应通过运行perl INSTALL.pl来处理。在dockerfile正确设置Perl环境

这不适合我,我需要一些帮助。

我很确信我已经安装了所有的依赖项,但是如果我运行安装程序,它会告诉我它看不到它们。

更新 Dockerfile:

# Pull base image of centos. 
FROM centos:7.3.1611 

# install basics 
RUN yum -y update && yum -y install wget \ 
    gcc \ 
    gcc-c++ \ 
    kernel-devel \ 
    make \ 
    mlocate \ 
    sudo \ 
    curl \ 
    rsync \ 
    tar \ 
    perl \ 
    perl-core \ 
    ansible \ 
    git \ 
    net-tools \ 
    which \ 
    cpan \ 
    libcurl-devel \ 
    python-devel \ 
    texlive-lastpage \ 
    texlive-misc.noarch \ 
    texlive \ 
    man \ 
    epel-release \ 
    ncurses-devel \ 
    zlib-devel \ 
    texinfo \ 
    gtk+-devel \ 
    gtk2-devel \ 
    qt-devel \ 
    tcl-devel \ 
    tk-devel \ 
    kernel-headers \ 
    openssl-devel \ 
    openssl \ 
    libidn-devel \ 
    mysql \ 
    mysql-devel \ 
    mysql-lib \ 
    perl-devel \ 
    perl-CPAN \ 
    perl-JSON \ 
    perl-App-cpanminus 

RUN yum -y groupinstall "Development Tools" 

# install samtools + dependancies 
RUN mkdir /my-software/ ; \ 
    curl -L -o htslib-1.2.1.tar.gz 
    https://github.com/samtools/htslib/archive/1.2.1.tar.gz ; \ 
    curl -L -o samtools-1.2.tar.gz 
    https://github.com/samtools/samtools/archive/1.2.tar.gz ; \ 
    tar xzf htslib-1.2.1.tar.gz ; \ 
    tar xzf samtools-1.2.tar.gz ; \ 
    rm -rf htslib-1.2.1.tar.gz ; \ 
    rm -rf samtools-1.2.tar.gz ; \ 
    mv htslib-1.2.1 /my-software/htslib ; \ 
    mv samtools-1.2 /my-software/samtools ; \ 
    cd /my-software/htslib ; \ 
    make install ; \ 
    cd /my-software/samtools ; \ 
    make -j HTSDIR=/my-software/htslib ; \ 
    make prefix=/my-software/usr/local/bin/ install ; \ 
    rm -rf /htslib* /samtools-1.2* 

# add samtools and htslib to path 
ENV PATH=/my-software/samtools/:$PATH \ 
    PATH=/my-software/htslib/:$PATH \ 
    PERL_PATH=~/perl5 \ 
    PERL5LIB=$PERL_PATH/lib/perl5:$PERL_PATH/lib/perl5/x86_64-linux-thread-multi 

# Handle VEP's Perl dependencies using cpanminus to install them under $PERL_PATH: 
RUN cpanm --notest -l $PERL_PATH \ 
    Net::SSLeay \ 
    IO::Socket::SSL \ 
    LWP::Simple \ 
    LWP::Protocol::https \ 
    Archive::Extract \ 
    Archive::Tar \ 
    Archive::Zip \ 
    CGI \ 
    DBI \ 
    DBD::mysql \ 
    Time::HiRes 

# Set temporary shell variables to store VEP and its cache 
ENV VEP_PATH=/isoma-software/vep/ \ 
    VEP_DATA=/isoma-software/.vep/ 

# Download the v79 release of VEP: 
RUN sudo mkdir -p $VEP_PATH $VEP_DATA; cd $VEP_PATH \ 
    && curl -LO "https://github.com/Ensembl/ensembl-tools/archive/release/79.tar.gz" \ 
    && tar -zxf 79.tar.gz \ 
    && cd ensembl-tools-release-79/scripts/variant_effect_predictor/ \ 
    && sudo perl INSTALL.pl --AUTO af --SPECIES homo_sapiens --ASSEMBLY GRCh38 --DESTDIR $VEP_PATH --CACHEDIR $VEP_DATA 

当我运行上面Dockerfile,我得到以下更新输出:

Step 6/8 : RUN cpanm --notest -l $PERL_PATH  Net::SSLeay  IO::Socket::SSL  LWP::Simple  LWP::Protocol::https  Archive::Extract  Archive::Tar  Archive::Zip  CGI  DBI  DBD::mysql  Time::HiRes 
---> Running in 64e74af831a9 
--> Working on Net::SSLeay 
Fetching http://www.cpan.org/authors/id/M/MI/MIKEM/Net-SSLeay-1.81.tar.gz ... OK 
Configuring Net-SSLeay-1.81 ... OK 
Building Net-SSLeay-1.81 ... OK 
Successfully installed Net-SSLeay-1.81 (upgraded from 1.55) 
--> Working on IO::Socket::SSL 
Fetching http://www.cpan.org/authors/id/S/SU/SULLR/IO-Socket-SSL-2.049.tar.gz ... OK 
Configuring IO-Socket-SSL-2.049 ... OK 
Building IO-Socket-SSL-2.049 ... OK 
Successfully installed IO-Socket-SSL-2.049 (upgraded from 1.94) 
--> Working on LWP::Simple 
Fetching http://www.cpan.org/authors/id/O/OA/OALDERS/libwww-perl-6.26.tar.gz ... OK 
Configuring libwww-perl-6.26 ... OK 
==> Found dependencies: Try::Tiny, Net::HTTP 
--> Working on Try::Tiny 
Fetching http://www.cpan.org/authors/id/E/ET/ETHER/Try-Tiny-0.28.tar.gz ... OK 
Configuring Try-Tiny-0.28 ... OK 
Building Try-Tiny-0.28 ... OK 
Successfully installed Try-Tiny-0.28 
--> Working on Net::HTTP 
Fetching http://www.cpan.org/authors/id/O/OA/OALDERS/Net-HTTP-6.16.tar.gz ... OK 
Configuring Net-HTTP-6.16 ... OK 
Building Net-HTTP-6.16 ... OK 
Successfully installed Net-HTTP-6.16 (upgraded from 6.06) 
Building libwww-perl-6.26 ... OK 
Successfully installed libwww-perl-6.26 (upgraded from 6.00) 
--> Working on LWP::Protocol::https 
Fetching http://www.cpan.org/authors/id/O/OA/OALDERS/LWP-Protocol-https-6.07.tar.gz ... OK 
Configuring LWP-Protocol-https-6.07 ... OK 
==> Found dependencies: Mozilla::CA 
--> Working on Mozilla::CA 
Fetching http://www.cpan.org/authors/id/A/AB/ABH/Mozilla-CA-20160104.tar.gz ... OK 
Configuring Mozilla-CA-20160104 ... OK 
Building Mozilla-CA-20160104 ... OK 
Successfully installed Mozilla-CA-20160104 
Building LWP-Protocol-https-6.07 ... OK 
Successfully installed LWP-Protocol-https-6.07 
--> Working on Archive::Extract 
Fetching http://www.cpan.org/authors/id/B/BI/BINGOS/Archive-Extract-0.80.tar.gz ... OK 
Configuring Archive-Extract-0.80 ... OK 
==> Found dependencies: Module::Load::Conditional 
--> Working on Module::Load::Conditional 
Fetching http://www.cpan.org/authors/id/B/BI/BINGOS/Module-Load-Conditional-0.68.tar.gz ... OK 
Configuring Module-Load-Conditional-0.68 ... OK 
==> Found dependencies: Module::Load 
--> Working on Module::Load 
Fetching http://www.cpan.org/authors/id/B/BI/BINGOS/Module-Load-0.32.tar.gz ... OK 
Configuring Module-Load-0.32 ... OK 
Building Module-Load-0.32 ... OK 
Successfully installed Module-Load-0.32 (upgraded from 0.24) 
Building Module-Load-Conditional-0.68 ... OK 
Successfully installed Module-Load-Conditional-0.68 (upgraded from 0.54) 
Building Archive-Extract-0.80 ... OK 
Successfully installed Archive-Extract-0.80 (upgraded from 0.68) 
--> Working on Archive::Tar 
Fetching http://www.cpan.org/authors/id/B/BI/BINGOS/Archive-Tar-2.26.tar.gz ... OK 
Configuring Archive-Tar-2.26 ... OK 
Building Archive-Tar-2.26 ... OK 
Successfully installed Archive-Tar-2.26 (upgraded from 1.92) 
--> Working on Archive::Zip 
Fetching http://www.cpan.org/authors/id/P/PH/PHRED/Archive-Zip-1.59.tar.gz ... OK 
Configuring Archive-Zip-1.59 ... OK 
Building Archive-Zip-1.59 ... OK 
Successfully installed Archive-Zip-1.59 (upgraded from 1.30) 
--> Working on CGI 
Fetching http://www.cpan.org/authors/id/L/LE/LEEJO/CGI-4.36.tar.gz ... OK 
Configuring CGI-4.36 ... OK 
Building CGI-4.36 ... OK 
Successfully installed CGI-4.36 (upgraded from 3.63) 
--> Working on DBI 
Fetching http://www.cpan.org/authors/id/T/TI/TIMB/DBI-1.636.tar.gz ... OK 
Configuring DBI-1.636 ... OK 
Building DBI-1.636 ... OK 
Successfully installed DBI-1.636 (upgraded from 1.627) 
--> Working on DBD::mysql 
Fetching http://www.cpan.org/authors/id/M/MI/MICHIELB/DBD-mysql-4.042.tar.gz ... OK 
==> Found dependencies: Devel::CheckLib 
--> Working on Devel::CheckLib 
Fetching http://www.cpan.org/authors/id/M/MA/MATTN/Devel-CheckLib-1.11.tar.gz ... OK 
Configuring Devel-CheckLib-1.11 ... OK 
==> Found dependencies: IO::CaptureOutput, Mock::Config 
--> Working on IO::CaptureOutput 
Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/IO-CaptureOutput-1.1104.tar.gz ... OK 
Configuring IO-CaptureOutput-1.1104 ... OK 
Building IO-CaptureOutput-1.1104 ... OK 
Successfully installed IO-CaptureOutput-1.1104 
--> Working on Mock::Config 
Fetching http://www.cpan.org/authors/id/R/RU/RURBAN/Mock-Config-0.03.tar.gz ... OK 
Configuring Mock-Config-0.03 ... OK 
Building Mock-Config-0.03 ... OK 
Successfully installed Mock-Config-0.03 
Building Devel-CheckLib-1.11 ... OK 
Successfully installed Devel-CheckLib-1.11 
Configuring DBD-mysql-4.042 ... OK 
Building DBD-mysql-4.042 ... OK 
Successfully installed DBD-mysql-4.042 
--> Working on Time::HiRes 
Fetching http://www.cpan.org/authors/id/J/JH/JHI/Time-HiRes-1.9742.tar.gz ... OK 
Configuring Time-HiRes-1.9742 ... OK 
Building Time-HiRes-1.9742 ... OK 
Successfully installed Time-HiRes-1.9742 (upgraded from 1.9725) 
19 distributions installed 
---> 7972d256ea2c 
Removing intermediate container 64e74af831a9 

表示所有子模块安装正确。

但是当我运行Perl安装脚本时,它在@INC中看不到这些库。

Step 8/8 : RUN sudo mkdir -p $VEP_PATH $VEP_DATA; cd $VEP_PATH  && curl -LO "https://github.com/Ensembl/ensembl-tools/archive/release/79.tar.gz"  && tar -zxf 79.tar.gz  && cd ensembl-tools-release-79/scripts/variant_effect_predictor/  && sudo perl INSTALL.pl --AUTO af --SPECIES homo_sapiens --ASSEMBLY GRCh38 --DESTDIR $VEP_PATH --CACHEDIR $VEP_DATA 
---> Running in f0f4d991bb26 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 133 0 133 0  0 215  0 --:--:-- --:--:-- --:--:-- 214 
100 161k 100 161k 0  0 105k  0 0:00:01 0:00:01 --:--:-- 569k 
Using non-default installation directory /isoma-software/vep/ - you will probably need to add /isoma-software/vep/ to your PERL5LIB 

Setting up directories 

Downloading required files 
- fetching ensembl 
Trying to fetch using curl 
** GET https://github.com/Ensembl/ensembl/archive/release/79.zip ==> 501 Protocol scheme 'https' is not supported (LWP::Protocol::https not installed) 
** GET https://github.com/Ensembl/ensembl/archive/release/79.zip ==> 501 Protocol scheme 'https' is not supported (LWP::Protocol::https not installed) 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 124 0 124 0  0 200  0 --:--:-- --:--:-- --:--:-- 200 
100 10.8M 100 10.8M 0  0 2849k  0 0:00:03 0:00:03 --:--:-- 4539k 
- unpacking /isoma-software/vep//Bio/tmp/ensembl.zip 
- moving files 
- fetching ensembl-variation 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 134 0 134 0  0 180  0 --:--:-- --:--:-- --:--:-- 180 
    0  0 0 22.8M 0  0 3544k  0 --:--:-- 0:00:06 --:--:-- 5713k 
- unpacking /isoma-software/vep//Bio/tmp/ensembl-variation.zip 
- moving files 
- fetching ensembl-funcgen 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 132 0 132 0  0 204  0 --:--:-- --:--:-- --:--:-- 204 
    0  0 0 2034k 0  0 848k  0 --:--:-- 0:00:02 --:--:-- 2662k 
- unpacking /isoma-software/vep//Bio/tmp/ensembl-funcgen.zip 
- moving files 
- fetching BioPerl 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 134 0 134 0  0 210  0 --:--:-- --:--:-- --:--:-- 210 
100 11.2M 100 11.2M 0  0 2259k  0 0:00:05 0:00:05 --:--:-- 2589k 
- unpacking /isoma-software/vep//Bio/tmp/release-1-6-924.zip 
- moving files 

Testing VEP script 
Can't locate Bio/EnsEMBL/Variation/Utils/VEP.pm in @INC (@INC contains: /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../ /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./t/variant_effect_predictor.t line 12. 
BEGIN failed--compilation aborted at ./t/variant_effect_predictor.t line 12. 
./t/variant_effect_predictor.t .. 
Dubious, test returned 2 (wstat 512, 0x200) 
No subtests run 
Can't locate Bio/EnsEMBL/Variation/Utils/VEP.pm in @INC (@INC contains: /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../ /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./t/convert_cache.t line 12. 
BEGIN failed--compilation aborted at ./t/convert_cache.t line 12. 
./t/convert_cache.t ............. 
Dubious, test returned 2 (wstat 512, 0x200) 
No subtests run 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 

# Failed test 'help message' 
# at ./t/filter_vep.t line 26. 

# Failed test 'error on no filters' 
# at ./t/filter_vep.t line 32. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 

# Failed test 'basic filter' 
# at ./t/filter_vep.t line 36. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 

# Failed test 'VCF input' 
# at ./t/filter_vep.t line 40. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 

# Failed test 'operator - is' 
# at ./t/filter_vep.t line 47. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 

# Failed test 'operator - gte' 
# at ./t/filter_vep.t line 71. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 

# Failed test 'operator - lte' 
# at ./t/filter_vep.t line 79. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 

# Failed test 'operator - match' 
# at ./t/filter_vep.t line 83. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 

# Failed test 'operator - in list' 
# at ./t/filter_vep.t line 87. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 

# Failed test 'list fields' 
# at ./t/filter_vep.t line 105. 
# Got 0, expected 57 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 

# Failed test 'count lines' 
# at ./t/filter_vep.t line 109. 
Can't locate Bio/EnsEMBL/Registry.pm in @INC (@INC contains: /isoma-software/vep//Bio /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
BEGIN failed--compilation aborted at /isoma-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/t/../filter_vep.pl line 581. 
./t/filter_vep.t ................ 
Dubious, test returned 12 (wstat 3072, 0xc00) 
Failed 12/21 subtests 

Test Summary Report 
------------------- 
./t/variant_effect_predictor.t (Wstat: 512 Tests: 0 Failed: 0) 
    Non-zero exit status: 2 
    Parse errors: No plan found in TAP output 
./t/convert_cache.t   (Wstat: 512 Tests: 0 Failed: 0) 
    Non-zero exit status: 2 
    Parse errors: No plan found in TAP output 
./t/filter_vep.t    (Wstat: 3072 Tests: 21 Failed: 12) 
    Failed tests: 1-5, 11, 13-15, 19-21 
    Non-zero exit status: 12 
Files=3, Tests=21, 1 wallclock secs (0.03 usr 0.00 sys + 0.57 cusr 0.15 csys = 0.75 CPU) 
Result: FAIL 

# Failed test 'ontology' 
# at ./t/filter_vep.t line 116. 
# Looks like you failed 12 tests of 21. 
Failed 3/3 test programs. 12/21 subtests failed. 
The command '/bin/sh -c sudo mkdir -p $VEP_PATH $VEP_DATA; cd $VEP_PATH  && curl -LO "https://github.com/Ensembl/ensembl-tools/archive/release/79.tar.gz"  && tar -zxf 79.tar.gz  && cd ensembl-tools-release-79/scripts/variant_effect_predictor/  && sudo perl INSTALL.pl --AUTO af --SPECIES homo_sapiens --ASSEMBLY GRCh38 --DESTDIR $VEP_PATH --CACHEDIR $VEP_DATA' returned a non-zero code: 12 
+1

组中的所有'运行yum开头的-y',根据Dockerfiles最佳实践https://docs.docker.com/engine/userguide/eng -image/dockerfile_best-practices /开始 – user2915097

+0

从'docker run -it --rm centos:7.3.1611'开始,并使用给定的shell来安装包并检查环境/ etc。当某些步骤给出错误时。 –

+1

我试过你的Dockerfile,将RUN分组,并且出现错误'gcc -g -Wall -O2 -D_FILE_OFFSET_BITS = 64 -D_LARGEFILE64_SOURCE -D_CURSES_LIB = 1 -I。 -I ../ htslib -c -o bam_cat.o bam_cat.c 从bam_cat.c包含的文件中:41:0: ../htslib/htslib/bgzf.h:34:18:致命错误:zlib。 h:没有这样的文件或目录 #include ^ 编译终止。 make:*** [bam_cat.o]错误1'似乎你没有安装zlib – user2915097

回答

0

所以答案就在ENV声明中。

如果你将它分组(如我为RUN语句所做的那样),那么他们就不再工作了。

我改变了这个每行有一个ENV,现在它可以工作。

这里是工作Dockerfile:

# Pull base image of centos. 
FROM centos:7.3.1611 

# install basics 
RUN yum -y update && yum -y install wget \ 
    gcc \ 
    gcc-c++ \ 
    kernel-devel \ 
    make \ 
    mlocate \ 
    sudo \ 
    curl \ 
    rsync \ 
    tar \ 
    perl \ 
    perl-core \ 
    ansible \ 
    git \ 
    net-tools \ 
    which \ 
    cpan \ 
    libcurl-devel \ 
    python-devel \ 
    texlive-lastpage \ 
    texlive-misc.noarch \ 
    texlive \ 
    man \ 
    epel-release \ 
    ncurses-devel \ 
    zlib-devel \ 
    texinfo \ 
    gtk+-devel \ 
    gtk2-devel \ 
    qt-devel \ 
    tcl-devel \ 
    tk-devel \ 
    kernel-headers \ 
    kernel-devel \ 
    openssl-devel \ 
    openssl \ 
    libidn-devel \ 
    mysql \ 
    mysql-devel \ 
    mysql-lib \ 
    perl-devel \ 
    perl-CPAN \ 
    perl-JSON \ 
    perl-App-cpanminus \ 
    zlib 

RUN yum -y groupinstall "Development Tools" 

# create folders to install perl5 libs locally and for VEP locations 
RUN mkdir -p /my-software/perl ; \ 
    mkdir -p /my-software/perl/lib/perl5 ; \ 

# set perl environment variables 
ENV PERL_PATH=/my-software/perl/ 
ENV PERL5LIB=$PERL_PATH:$PERL_PATH/lib/perl5:$PERL5LIB 
ENV PERL_MM_OPT="INSTALL_BASE=$PERL_PATH" 
ENV PERL_MB_OPT="--install_base $PERL_PATH" 
ENV PATH="$PERL_PATH/bin:$PATH" 


# install samtools + dependancies 
RUN mkdir /my-software/ ; \ 
    curl -L -o htslib-1.2.1.tar.gz https://github.com/samtools/htslib/archive/1.2.1.tar.gz ; \ 
    curl -L -o samtools-1.2.tar.gz https://github.com/samtools/samtools/archive/1.2.tar.gz ; \ 
    tar xzf htslib-1.2.1.tar.gz ; \ 
    tar xzf samtools-1.2.tar.gz ; \ 
    rm -rf htslib-1.2.1.tar.gz ; \ 
    rm -rf samtools-1.2.tar.gz ; \ 
    mv htslib-1.2.1 /my-software/htslib ; \ 
    mv samtools-1.2 /my-software/samtools ; \ 
    cd /my-software/htslib ; \ 
    make install ; \ 
    cd /my-software/samtools ; \ 
    make -j HTSDIR=/my-software/htslib ; \ 
    make prefix=/my-software/usr/local/bin/ install ; \ 
    rm -rf /htslib* /samtools-1.2* 


# Handle VEP's Perl dependencies using cpanminus to install them under $PERL_PATH: 
RUN cpanm --notest -l $PERL_PATH \ 
    Net::SSLeay \ 
    IO::Socket::SSL \ 
    LWP::Simple \ 
    LWP::Protocol::https \ 
    Archive::Extract \ 
    Archive::Tar \ 
    Archive::Zip \ 
    CGI \ 
    DBI \ 
    DBD::mysql \ 
    Time::HiRes 


# Download the v79 release of VEP: 
RUN mkdir -p /my-software/vep ; \ 
    cd /my-software/vep ; \ 
    wget "https://github.com/Ensembl/ensembl-tools/archive/release/79.zip" ; \ 
    unzip 79.zip ; \ 
    cd /my-software/vep/ensembl-tools-release-79/scripts/variant_effect_predictor/ ; \ 
    perl INSTALL.pl --AUTO af --SPECIES homo_sapiens --ASSEMBLY GRCh38