Existe uma maneira de executar um script bash dentro de um contêiner e remover o contêiner, tudo em uma única linha? O script deve ser capaz de escrever na pasta onde está atualmente.
Eu tentei
docker run --rm -ti ubuntu:trusty bash -c 'source runme.sh'
mas o bash não consegue encontrar o arquivo, estou assumindo porque o contêiner não tem acesso à pasta onde está o script.
Se o script não estiver disponível dentro do contêiner, você precisará montar o script como um volume dentro do contêiner:
$ cat << EOF > sample_script.shecho 'Hello, world'EOF
Execute o contêiner do docker da seguinte maneira (aqui, /path/to/sample_script.sh
é o caminho no host):
$ docker run -v /path/to/sample_script.sh:/sample_script.sh \ --rm ubuntu bash sample_script.shHello, world
O contêiner será removido após a execução. Observação você não precisa executá-lo de forma interativa, a saída padrão será exibida.
O docker run a referência tem os detalhes sobre o uso de volumes dessa maneira.
Se tudo o que você deseja fazer é executar um script, basta usar o bash para ler o script do stdin.
sample_script.sh < docker run --rm -i ubuntu bash -c 'source /dev/stdin'