Skip to content

Limarka com Docker

Eduardo de Santana Medeiros Alexandre edited this page Jan 22, 2019 · 28 revisions

Utilizando o limarka através de um container

A utilização do limarka através do docker possui as seguintes vantagens:

  • Possibilita instalação isolada.
  • Não causa conflitos de dependências.
  • Melhor desempenho que máquina virtual.
  • Remover a aplicação consiste apenas em remover a imagem do limarka.

Instalação do Docker

O método de Instalação do Docker depende do seu sistema operacional.

Ubuntu: Para instalar o Docker Community Edition no Ubuntu siga essas instruções. Certifique-se de realizar essas configurações após a instalação.

Digite o comando a seguir para baixar a imagem do limarka e aguarde o download:

docker pull limarka/limarka

Verifique o tamanho da imagem do limarka:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
limarka             custom              69df204e77d5        15 hours ago        794MB
limarka/limarka     latest              dc1454c894c4        15 hours ago        793MB
ruby                2-slim              3adca3f881c0        11 days ago         126MB

Para testar o limarka digite: docker run limarka/limarka --version

$ docker run limarka/limarka --version
limarka 1.0.2
pandoc 2.5
(...)
pdftk 2.02 a Handy Tool for Manipulating PDF Documents
Latexmk, John Collins, 25 October 2018. Version 4.61
XeTeX 3.14159265-2.6-0.99999 (TeX Live 2018)
kpathsea version 6.3.0

Solução com imagem docker customizada

A imagem docker do limarka vem com o TinyTex (uma distribuição mínima do LaTeX) e alguns pacotes básicos para compilação do modelo baseado no abntex2. Esta imagem é suficiente para gerar a maioria dos trabalhos. Para verificar os pacotes disponíveis na imagem do limarka digite:

$ docker run --entrypoint=tlmgr limarka/limarka list --only-installed \
  | tr -d ':' | cut -f 2 -d ' ' | column
abntex2				hyperref			metafont.x86_64-linux
amscls				hyphen-base			mfware
amsfonts			ifetex				mfware.x86_64-linux
amsmath				ifluatex			microtype
babel				iftex				natbib
babel-portuges			ifxetex				oberdiek
(...)
gsftopk.x86_64-linux		memoir				xunicode
helvetic			metafont			zapfding

Mas você não está limitado a utilizar apenas esses pacotes. Nossa solução para possibilitar utilização de outros pacotes LaTeX é a geração uma imagem customizada com o Limarka. Por exemplo, o pacote subfig possibilita inserir figuras ao lado da outra (ou em mosaico), como mostrado a seguir:

subfig

Verifique que o pacote não está instalado:

$ docker run --entrypoint=tlmgr limarka/limarka list --only-installed | grep fig
i graphics-cfg: Sample configuration files for LaTeX color and graphics
i latexconfig: configuration files for LaTeX-related formats
i xetexconfig: crop.cfg for XeLaTeX

Gerando uma imagem customizada

A instalação de novos pacotes, no TinyTeX, é realizada da seguinte forma: tlmgr install pacote1 pacote2 ... pacoteN. Inspecione esse arquivo Dockerfile e verifique que o comando tlmgr install subfig está contido dentro dele.

O nosso próximo passo será construir uma nova imagem intitulada limarka:customizada:

$ docker build -t limarka:customizada - < Dockerfile
Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM limarka/limarka:latest
 ---> dc1454c894c4
Step 2/2 : RUN tlmgr install subfig
 ---> Running in aa8eb6883ceb
tlmgr: package repository http://mirror.las.iastate.edu/tex-archive/systems/texlive/tlnet (verified)
[1/1, ??:??/??:??] install: subfig [7k]
running mktexlsr ...
done running mktexlsr.
tlmgr: package log updated: /root/.TinyTeX/texmf-var/web2c/tlmgr.log
Removing intermediate container aa8eb6883ceb
 ---> c09e489465ac
Successfully built c09e489465ac
Successfully tagged limarka:customizada

Podemos verificar que a nova imagem foi criada:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
limarka             customizada         c09e489465ac        2 minutes ago       808MB
limarka/limarka     tinytex             3572a0e12522        20 hours ago        793MB
limarka/limarka     latest              dc1454c894c4        26 hours ago        793MB
ruby                2-slim              3adca3f881c0        11 days ago         126MB

Agora vamos verificar que o pacote está disponível na imagem customizada:

$ docker run --entrypoint=tlmgr limarka:customizada list --only-installed | grep fig
i graphics-cfg: Sample configuration files for LaTeX color and graphics
i latexconfig: configuration files for LaTeX-related formats
i subfig: Figures broken into subfigures
i xetexconfig: crop.cfg for XeLaTeX

Agora vamos remover a imagem customizada:

$ docker rmi limarka:customizada 
Untagged: limarka:customizada
Deleted: sha256:97e05471c85a7a18ea668e726364d0f2ed9040b4657b251a004b4e233f8e3554
Deleted: sha256:9f054d6a1ebf1d12930660e700a2829f151c33724a0b45afda59206e74137d79

Configure aliases para executar o limarka

Agora vamos configurar aliases para facilitar a construção da imagem customizada e a execução do limarka a partir dela. Adicione as seguintes linhas ao arquivo ~/.bash_aliases:

alias limarka_build='docker build -t limarka:customizada - < Dockerfile'
alias limarka='docker run --mount src=`pwd`,target=/trabalho,type=bind limarka:customizada $@'

Feche o terminal e abra novamente. Teste as invocações dos comandos limarka_build e limarka.

NOTE: Caso você se deparou com o erro Unable to find image 'limarka:customizada' locally é porque você está invocado a imagem customizada do limarka sem ter criada ela antes. Invoque o limarka_build.

Se você não pretende utilizar uma imagem customizada, adicione as seguintes linhas ao arquivo ~/.bash_aliases:

alias limarka='docker run --mount src=`pwd`,target=/trabalho,type=bind limarka/limarka $@'

Editores de texto Markdown

Mesmo utilizando um container docker, você precisará de um editor de texto para editar os arquivos Markdown. Consulte as demais páginas de instalação (no canto direito) para instalar um editor de texto.

Baixando e descompactando o modelo

A próxima seção explicará como baixar um modelo, mas lembre-se que a execução do limarka no container será necessário montar o diretório do modelo no volume /trabalho.

Próxima página

Clone this wiki locally