2
respostas

Executar sistema sem copiar os arquivos no Dockerfile

Boa tarde.

Tenho um sistema em Rails "dockerizado". No Dockerfile eu faço a cópia dos arquivos com o ADD. Depois disso executo bundle install e o processo segue. A imagem/container funciona como esperado.

Gostaria de saber se é possível acessar os arquivos como um volume, sem copia-los para o container, ou seja, remover o ADD e colocar o VOLUME ou algo assim ...

Espero que tenha ficado claro.

Muito obrigado, Willian.

2 respostas

Fala aí Willian tudo bem?

Volumes com docker são uni-direcionais, por padrão só o container escreve nele, mas na hora de montar (-v blabla:/xyz) para para indicar que será read-only (-v blabla:/xyz:ro)mas aí o seu container não conseguirá escrever nada nesse diretório.

Espero ter ajudado.

Olá Fernando, tudo bem? Espero que sim!

Muito obrigado pela resposta.

Peço desculpas. Talvez eu não me fiz claro o suficiente ou não entendi a sua resposta. Hehehe.

Eu queria montar um volume em tempo de build (pelo Dockerfile ou linha de comando), sem precisar copiar os arquivos para o container. Isso tornaria o container menor já que não teria os arquivos do meu projeto.

Encontrei a seguinte referência: http://stackoverflow.com/questions/37328370/is-it-possible-to-mount-a-volume-on-the-host-during-build-phase-of-a-docker-images

Reproduzo abaixo para garantiar que a informação esteja sempre disponível.

Pergunta do usuário Babak Tourani:

Is it possible to mount a volume on the host during BUILD phase of a docker image?

I'm using centos:6 and need to build an image -using Dockerfile- which has a number of rpms installed (Oracle client, in fact). I don't want to copy/add the rpms inside the image, as it will make the image bulky (and I have to remove the rpms after install, anyway).

Is there a way to mount a folder on the host (CentOS, itself) which contains the rpms, on the image, via Dockerfile and/or using any option of "docker build" command, during the BUILD phase?

Resposta do usuário Horia Coman:

There's no way, according to the docs for build and run as well as from my experience.

Mounting things is done when you're running a container, rather than when building an image.

Infelizmente, segundo a referência, não é possível.

Um abraço.