Gostaria de adicionar um executável binário personalizado a um dos contêineres. Eu fiz isso na minha máquina e tente adicioná-lo. No começo, pensei em montar um diretório como /tmp/foo
e copiá-lo para /usr/bin/
. Não é muito bom, mas deve fazer o truque. Para fazer isso, defini a seguinte montagem de volume em docker-compose.yml
:
volumes:
- ./var/bin/:/tmp/bin/
e o seguinte comando em Dockerfile
:
RUN ls /tmp/bin
RUN cp /tmp/bin/wkhtmltoimage /usr/local/bin/ && cp /tmp/bin/wkhtmltopdf /usr/local/bin/
Como você pode ver, eu já adicionei o diretório de listagem para verificar se alguma coisa está lá e recebi
ls: cannot access /tmp/bin: No such file or directory
ERROR: Service 'web' failed to build: The command '/bin/sh -c ls /tmp/bin' returned a non-zero code: 2
Agora, existem duas perguntas: 1. Por que este diretório não está visível na linha de comando do contêiner? As outras montagens estão disponíveis ... 2. Como posso alcançar esse objetivo "adequadamente"? Para que o binário seja copiado / configurado uma vez durante a criação da imagem e não exija um mapeamento em cada execução de contêiner?