Olá, este post irá explicar como instalar e utilizar Markdown Lint num contentor Docker. Por favor, verifique o meu posto anterior para compreender melhor o Docker.
Antes de começar
Por favor, certifique-se de que verificou o meu posto Docker anterior, porque vou utilizar algumas referências a esse posto, e seria mais fácil seguir este posto :)
Neste caso, estará a utilizar um recipiente de rubi para instalar a nossa ferramenta mdl. Mostrará como instalar um contentor de rubi nesse post anterior do Docker que mencionei.
Markdown Lint
Esta é uma ferramenta para ficheiros Markdown (md) que inclui uma biblioteca de regras para encorajar normas e consistência para ficheiros Markdown e que confirma se os ficheiros estão a seguir estas regras.
Contentor Ruby
Por isso, para começar, vamos correr o contentor de rubi! Copie colar a seguinte linha no seu terminal:
docker run -tid -v /home/vagrant:/mdfiles --name ruby --entrypoint=/bin/bash ruby:latest
Muito bem, então olhe para esta linha de comando e pergunte-se o que no mundo é tudo isto!? Bem, deixe-me explicar :)
A -tid é 3 coisas diferentes:
-t ou --tty: Atribuir um pseudo-TTY -i ou --interactiva: Manter STDIN aberto mesmo que não anexado -d ou --detach: Modo destacado: comando de execução em segundo plano
Depois, fazemos um -v de volume, que no nosso caso, é utilizado para espelhar a pasta onde temos o nosso ficheiro .md. Isto permitir-nos-á ter "a mesma pasta" no nosso contentor. Lembre-se que o / é a raiz e depois criamos uma nova pasta no contentor chamada "mdfiles".
Depois utilizamos o --nome e como o nome sugere é para attibuir um nome para o seu contentor.
Corremos --oponto de entrada /bin/bash para deixar abrir uma cave. Isto permite que o contentor fique aberto (para cima) em vez de fechar logo após a corrida. Quando se faz um executante, este não vai à batida (execut é sh e não bash). É por isso que temos de fazer com que o contentor funcione bash, para podermos usar todo o comando bash
A diferença entre a execução da doca e a execução da doca é que a doca executa um comando sobre um contentor em execução. Por outro lado, a docker run cria um contentor temporário, executa o comando no mesmo e pára o contentor quando este é $ Então usamos --entrypoint para correr um contentor, e deixamo-lo abrir até decidirmos pará-lo
Também pode dar um comando directamente ao seu contentor, ao fazê-lo: Nota: Se tiver um contentor com janelas, usa o powerhell em vez de bash
docker exec ruby bash -c "ip add"
Executamos o terminal bash com o comando (-c) "ip add". Isto mostrar-lhe-á o endereço IP do seu contentor de rubi
E agora podemos instalar a ferramenta mdl:
docker exec ruby bash -c "gem install mdl"
Óptimo, tudo parece agradável e limpo! Agora, escolha um ficheiro .md à sua escolha, e execute o mdl:
docker exec ruby bash -c "mdl /mdfiles/myfile.md"
Isto fará correr a ferramenta mdl através do seu ficheiro md e informá-lo-á de quantos erros tem, as linhas que são e qual foi a regra que não foi respeitada.