Comments (7)
Para servir de referência, fiz dessa maneira
FROM alpine:latest
# Acelerando a instalação ao pular a instalação da documentação
RUN mkdir -p /usr/local/etc \
&& { \
echo 'install: --no-document'; \
echo 'update: --no-document'; \
} >> /etc/gemrc
# instalando dependencias
RUN apk update
RUN apk --no-cache add \
build-base \
git \
ca-certificates \
ruby-dev \
ruby-bundler \
ruby-json \
libffi-dev \
openssl-dev \
fontconfig \
pdfgrep \
poppler-utils \
unzip \
perl \
wget \
xz \
tar \
fontconfig \
freetype \
lua \
python2
RUN wget -O pandoc.tar.gz https://github.com/jgm/pandoc/releases/download/2.9.2.1/pandoc-2.9.2.1-linux-amd64.tar.gz \
&& tar xvzf pandoc.tar.gz --strip-components 1 -C /usr/local/ && rm pandoc.tar.gz
# Instala tinytex (/root/.TinyTex)
ENV PATH=/root/.TinyTeX/bin/x86_64-linuxmusl:$PATH
RUN wget -qO- "https://yihui.name/gh/tinytex/tools/install-unx.sh" | sh
# instala bibliotecas para o abntex2/limarka
RUN tlmgr install \
abntex2 \
babel-portuges \
bookmark \
caption \
enumitem \
epstopdf-pkg \
lastpage \
lipsum \
listings \
memoir \
microtype \
pdflscape \
pdfpages \
psnfss \
shipunov \
texliveonfly \
textcase \
xcolor
# checagem de alguma depedências
RUN tlmgr --version
RUN pdflatex --version
RUN xelatex --version
RUN latexmk --version
RUN pandoc --version
RUN gem install limarka --pre
from limarka.
Eu consegui fazer a imagem assim:
FROM alpine:3.7
LABEL maintainer="[email protected]"
# Tentamos seguir as melhores práticas:
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
RUN apk update \
&& apk upgrade \
&& apk add --no-cache --update \
alpine-sdk \
build-base \
fontconfig \
pdfgrep \
perl \
poppler-utils \
ruby-dev \
ruby \
unzip \
wget
# Instala tinytex (/root/.TinyTex)
RUN wget -qO- "https://yihui.name/gh/tinytex/tools/install-unx.sh" | sh
ENV PATH="/root/bin:${PATH}"
# instala bibliotecas para o abntex2/limarka
RUN tlmgr install \
abntex2 \
babel-portuges \
bookmark \
enumitem \
epstopdf-pkg \
iftex \
lastpage \
lipsum \
listings \
caption \
memoir \
microtype \
pdflscape \
pdfpages \
textcase \
xcolor
# Configurando o idioma português
ENV MUSL_LOCALE_DEPS cmake make musl-dev gcc gettext-dev libintl
ENV MUSL_LOCPATH /usr/share/i18n/locales/musl
RUN apk add --no-cache \
$MUSL_LOCALE_DEPS \
&& wget https://gitlab.com/rilian-la-te/musl-locales/-/archive/master/musl-locales-master.zip \
&& unzip musl-locales-master.zip \
&& cd musl-locales-master \
&& cmake -DLOCALE_PROFILE=OFF -D CMAKE_INSTALL_PREFIX:PATH=/usr . && make && make install \
&& cd .. && rm -r musl-locales-master
ENV LANG pt_BR.UTF8
# Instalação do pandoc
RUN wget -O pandoc.tar.gz https://github.com/jgm/pandoc/releases/download/2.9.2.1/pandoc-2.9.2.1-linux-amd64.tar.gz \
&& tar xvzf pandoc.tar.gz --strip-components 1 -C /usr/local/ && rm pandoc.tar.gz
RUN gem install limarka; exit 0
RUN apk del ruby-dev build-base wget alpine-sdk unzip cmake make musl-dev gcc
VOLUME ["/trabalho"]
WORKDIR /trabalho
CMD ["--help"]
ENTRYPOINT ["/usr/local/bundle/bin/limarka"]
Ia mandar uma branch mas tô sem permissão de escrita no repositório e não queria fazer um PR direto pra a master.
from limarka.
@sergiopvilar não precisa fazer branch, é direto na master
mesmo.
Antigamente eu fazia com branches mas era muito trabalhoso, depois eu reformulei o projeto adotando estratégias mais ágeis.
Se preferir, pode ler as instruções para desenvolvedores
from limarka.
Eu recomendo manter um arquivo Dockerfile separado para o alphine, pois lembro que ele nem usa o apt-get.
from limarka.
@edusantana isso, ele usa o apk
no lugar, porque tu acha melhor serem imagens separadas?
from limarka.
Precisamos homologar as duas imagens e depois escolher qual será utilizada, por isso pedi que fossem dois arquivos diferentes, para poder testar separadamente.
Não acho legal dois arquivos, com naturezas diferentes, manterem o mesmo caminho no controle de versão.
Então vou criar alphine-ruby-latex-pandoc.dockerfile
com o conteúdo que você colocou aí.
from limarka.
RUN apk del ruby-dev build-base wget alpine-sdk unzip cmake make musl-dev gcc
@sergiopvilar Eu fiquei na dúvida também... apagar ou não apagar as dependências de desenvolvimento. Eu tinha optado por deixar, caso o usuário fosse adicionar algo mais... mas acho que é melhor apagar mesmo.
from limarka.
Related Issues (20)
- Facilitar o sistema de release notes HOT 1
- Possibilitar ler parâmetros de invocação a partir de arquivo HOT 2
- Novos rumos do limarka HOT 1
- Tornar arquivos opcionais
- Atualizar o wiki sobre as funcionalidades dos filtros
- Simplificando funcionalidades
- Utilizar libelektra para configurações
- Não é possível gerar um .pdf via travis usando o trabalho-academico-limarka HOT 4
- Atualizar a documentação em refêrencia ao pacote build-essential, em distros baseadas no Debian, para a instalação da gem limarka. HOT 5
- Dúvida: alguma forma de não imprimir folha de rosto? Múltiplos autores? HOT 4
- Utilização do guard para execução de tarefas automáticas
- Criar testes para a imagem docker
- erro ubuntu 19.04 HOT 1
- Alterando mirror do tinytex
- Integração do limarka no RStudio
- Melhorar espaçamento entre figura e legendas HOT 1
- Imagens para comprovar currículo
- TinyTeX requer algumas instalações adicionais para rodar o template HOT 2
- autonomia comunitária HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from limarka.