docker-alpine 安装Miniconda--stringtie

docker-alpine 安装Miniconda


  • 解决的问题
  • 安装Glibc
  • 安装Miniconda

解决的问题

conda是非常好的一款软件管理工具,用它管理安装各种软件非常的方便,比如二代测序的转录本组装软件stringtie,由于我们用的基础镜像为alpine,在安装stringt过程中出现很多问题,一直解决不了。出现以下报错,一直编译不过去。

cc1plus: warning: unrecognized command line option '-Wno-implicit-fallthroug

后面想到conda是一个非常优秀的软件管理工具,因此想到可以用此安装stringtie就不会有什么问题,可是安装miniconda的时候,又出现如下报错:


alpine镜像安装miniconda的报错

alpine镜像安装miniconda的报错

通过查找各种原因,终于知道为什么不行了?原来是alpine基础镜像中没有Glibc,但是miniconda依赖于Glibc,因此现在需要解决的问题就是按照Glibc。

安装Glibc

安装Glibc,从GitHub的 frol有一个Miniconda Python 3.7 Docker image镜像,我们可以直接来下来用,但是考虑到公司的基础alpine镜像经过改造,有权限控制问题,因此我们不能直接用此镜像,这就需要我们自己安装Glibc的alpine镜像。
GitHub真是一个神奇的地方,什么问题都能解决,后面发现 gliderlabs介绍了有关于此镜像构建的方法,最终在sgerrand的主页找到了alpine-pkg-glibc安装的方法。

#基础镜像
FROM alpine:latest
#维护者信息
MAINTAINER Yao Mengcheng 
ENV LANG=en_US.UTF-8
## 配置清华镜像地址
RUN echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.8/main/" > /etc/apk/repositories
## 设置时区变量
ENV TIME_ZONE Asia/Shanghai
## #安装时区包并配置时区TIME_ZONE为中国标准时间
RUN apk add --no-cache -U tzdata ;\
     ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime ;\
     echo "${TIME_ZONE}" > /etc/timezone
###安装glibc-2.29
RUN mkdir -p /opt/conda 
RUN apk add --no-cache bash bzip2-dev  --allow-untrusted ca-certificates ;\
    wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub;\
    wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.29-r0/glibc-2.29-r0.apk;\
    apk add glibc-2.29-r0.apk

安装Miniconda

解决了alpine镜像的Glibc问题,现在我们就可以安装miniconda了,具体安装命令如下:

# configure environment
ENV CONDA_DIR /opt/conda
ENV PATH $CONDA_DIR/bin:$PATH
ENV CONTAINER_UID 1000
ENV INSTALLER Miniconda2-latest-Linux-x86_64.sh
RUN cd /tmp && \
    mkdir -p $CONDA_DIR && \
    wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh && \
    echo $(wget --quiet -O - https://repo.continuum.io/miniconda/ \
    | grep -A3 $INSTALLER \
    | tail -n1 \
    | cut -d\> -f2 \
    | cut -d\< -f1 ) $INSTALLER  && \
    /bin/bash $INSTALLER -f -b -p $CONDA_DIR && \
    rm $INSTALLER

安装stringtie

miniconda安装成功后,其他的软件就水到渠成,安装命令如下:

RUN conda config --add channels r
RUN conda config --add channels defaults
RUN conda config --add channels conda-forge
RUN conda config --add channels bioconda
RUN conda install -y samtools=1.8
RUN conda install -y zstd
RUN conda install -y stringtie=1.3.5

终于等到了久违的画面了:


stringtie安装成功突破

只要成功安装miniconda后,以后其他只要能够通过conda安装管理的软件就很方便的安装管理了。

2019年4月2日

参考博客

https://github.com/frol/docker-alpine-miniconda3
https://github.com/gliderlabs/docker-alpine/issues/11
https://github.com/sgerrand/alpine-pkg-glibc/releases

你可能感兴趣的:(docker-alpine 安装Miniconda--stringtie)