Eu preciso executar um aplicativo de um diretório específico.
$ sudo docker run -P ubuntu/decomposer 'cd /local/deploy/decomposer; ./decomposer-4-15-2014'
2014/10/09 21:30:03 exec: "cd /local/deploy/decomposer; ./decomposer-4-15-2014": stat cd /local/deploy/decomposer; ./decomposer-4-15-2014: no such file or directory
Esse diretório definitivamente existe e, se eu me conectar ao docker executando o bash interativamente, posso executar o comando acima.
$ sudo docker run -i -t ubuntu/decomposer /bin/bash
# cd /local/deploy/decomposer; ./decomposer-4-15-2014
Posso executar meu programa especificando o caminho completo, mas ele trava, pois espera ser iniciado a partir do diretório atual. O que eu posso fazer?
/bin/sh -c
qualquer maneira.Você pode usar a
-w
opção para alterar seu diretório de trabalho.Então, no seu caso, você executaria:
fonte
-w
comdocker exec
? Estou procurando uma maneira de executar o script python no meu contêiner, mas não posso pará-lo fora do contêiner.flag provided but not defined: -w
Use WORKDIR no seu Dockerfile para definir o diretório de trabalho. Então você pode executar seu comando com EXEC.
fonte
Isso pode ser devido ao problema de permissão ou a instância não consegue encontrar o caminho disponível executável. Para verificar isso, tente adicionar o local disponível executável no caminho e tente executar o script
para adicionar o diretório atual no caminho, use o comando abaixo
fonte