
Estou construindo várias imagens do Docker, mas não consigo acessar determinados comandos, embora esteja importando imagens contendo esses comandos. Exemplo:
# Dockerfile ubuntu-essentials
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get -y install ssh rsync git graphviz gedit-plugins wget nano zlibc zlib1g-dev build-essential libncurses5-dev libncursesw5-dev libboost-dev gdebi software-properties-common unzip
# Dockerfile fastqc
FROM ubuntu:14.04
FROM rioualen/ubuntu-essentials:1.0
ENV SOURCE_DIR=~/app_sources/
ENV BIN_DIR=~/bin/
WORKDIR ${SOURCE_DIR}
RUN wget --no-clobber http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip
RUN unzip -o fastqc_v0.11.5.zip
Isso gera um erro "descompactação não encontrada", embora esteja instalado na primeira imagem. O comando wget funciona perfeitamente bem.
Ao adicionar a instalação do unzip no segundo Dockerfile, funciona normalmente:
# Dockerfile fastqc
FROM ubuntu:14.04
FROM rioualen/ubuntu-essentials:1.0
ENV SOURCE_DIR=~/app_sources/
ENV BIN_DIR=~/bin/
RUN apt-get -y install unzip
WORKDIR ${SOURCE_DIR}
RUN wget --no-clobber http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip
RUN unzip -o fastqc_v0.11.5.zip
Qualquer ideia? Sendo novo no Docker, não sei o que procurar... Obrigado.
Responder1
Vários "FROM" não funcionam da maneira esperada. Tome cada FROM como separador para uma nova imagem. Isso significa que você está construindo 3 imagens diferentes e a última será:
FROM rioualen/ubuntu-essentials:1.0
ENV SOURCE_DIR=~/app_sources/
ENV BIN_DIR=~/bin/
WORKDIR ${SOURCE_DIR}
RUN wget --no-clobber http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip
RUN unzip -o fastqc_v0.11.5.zip
Onde você não instalou, descompacte.
Odocumentação sobre issoé um pouco esparso, mas acho que explica bem.
Eu sugiro que você coloque cada imagem que deseja construir sozinha, Dockerfile
o que significa ter apenas um "FROM" em cada uma. Isso lhe dará uma transparência muito melhor sobre o que está acontecendo.