janela de encaixe recipiente de volumes a partir do access no CMD instrução
Pergunta
janela de encaixe recipiente de volumes a partir do access no CMD instrução
$ sudo docker run -d --name ext -v /external busybox /bin/sh
e
run.sh
#!/bin/bash
if [[ -f "/external" ]]
then
echo 'success!'
else
echo 'Sorry, I can't find /external...'
fi
e
Dockerfile
FROM ubuntu:14.04
MAINTAINER newbie
ADD run.sh /run.sh
RUN chmod +x /run.sh
CMD ["bash", "/run.sh"]
e
$ sudo docker build -t app .
e
$ sudo docker run -d --volumes-from ext app
ac57afb95f923eeffd28e7d9d9cb76cb1b7699ebd
Então,
$ sudo docker logs ac57afb95f923eeffd28e7d9d9cb76cb1b7699ebd
Sorry, I can't find /external...
A minha pergunta é,
Como posso acessar /external
diretório no run.sh
no CMD
instrução
impossível?
Obrigado~
Solução
modificar o seu run.sh
-f
é verificar se o arquivo existe.neste caso, utilizar -d
seleção para o diretório existe.
Verificar se um diretório existe em um script de shell
além disso, se você quiser fazer apenas o volume do recipiente, não necessita de adicionar -d
, /bin/sh
volume do recipiente de executar o comando a mudança como este
$ sudo docker run --name ext -v /external busybox