Skip to content

Limarka com Docker

Eduardo de Santana Medeiros Alexandre edited this page Sep 2, 2019 · 28 revisions

Utilizando o limarka através de um container

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

  • Instalação fácil e rápida.
  • Evita conflitos de dependências.
  • Possibilita instalação isolada.
  • Possibilita fácil remoção.

NOTE: Se você estiver estudando desenvolvimento de aplicações WEB conhecer o Docker possibilitará que você desenvolva aplicações com agilidade e com mais segurança.

Resumo rápido

  1. Instale o docker e realize os passos pós-instalação caso esteja no linux
  2. Execute:
docker pull limarka/limarka
wget https://github.com/abntex/trabalho-academico-limarka/raw/master/Dockerfile -O Dockerfile
docker build -t limarka:customizada - < Dockerfile
  1. 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 $@'
alias limarka_guard='docker run -it --entrypoint guard --mount src=`pwd`,target=/trabalho,type=bind limarka:customizada --no-bundler-warning $@'

As seções seguintes explica a instalação que foi resumida acima.

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

Versão de desenvolvimento

Para ter acesso a versão mais recente em desenvolvimento (instável) utilize a imagem com tag dev:

docker run limarka/limarka:dev --version

Esta imagem contém o código que está na branch master.

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:

$ wget https://github.com/abntex/trabalho-academico-limarka/raw/master/Dockerfile -O Dockerfile
$ 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 $@'
alias limarka_guard='docker run -it --entrypoint guard --mount src=`pwd`,target=/trabalho,type=bind limarka:customizada --no-bundler-warning $@'

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.

NOTE: Se você executar limarka_guard pode ser que apareça um warning (No Guardfile found), mas pode ser ignorado.

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 $@'
alias limarka_guard='docker run -it --entrypoint guard --mount src=`pwd`,target=/trabalho,type=bind limarka/limarka --no-bundler-warning $@'

Versão de desenvolvimento

Para utilizar a versão mais recente em desenvolvimento (instável) na criação da imagem customizada utilize a tag dev, altere a seguinte linha no Dockerfile e gere a imagem novamente:

# FROM limarka/limarka:latest
FROM limarka/limarka:dev

Dockerhub

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