Skip to content

Commit

Permalink
Merge pull request #70 from pedrorobsonleao/master
Browse files Browse the repository at this point in the history
create a epub standalone
  • Loading branch information
somatorio authored May 13, 2024
2 parents 23c5ac1 + c7f9e59 commit 5158618
Show file tree
Hide file tree
Showing 14 changed files with 97 additions and 5 deletions.
21 changes: 21 additions & 0 deletions .github/workflows/makefile.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Makefile CI

on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Install pandoc
run: sudo apt install -y pandoc

- name: Install dependencies
run: make
31 changes: 31 additions & 0 deletions .snyk
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
version: v1.19.0
ignore: {}
# patches apply the minimum changes required to fix a vulnerability
patch:
SNYK-JS-HTTPSPROXYAGENT-469131:
- snyk > proxy-agent > https-proxy-agent:
patched: '2019-10-17T18:24:09.536Z'
- snyk > proxy-agent > pac-proxy-agent > https-proxy-agent:
patched: '2019-10-17T18:24:09.536Z'
'npm:hoek:20180212':
- gitbook-plugin-codesnippet > request > hawk > hoek:
patched: '2021-02-03T20:18:35.735Z'
- gitbook-plugin-codesnippet > request > hawk > boom > hoek:
patched: '2021-02-03T20:18:35.735Z'
- gitbook-plugin-codesnippet > request > hawk > sntp > hoek:
patched: '2021-02-03T20:18:35.735Z'
- gitbook-plugin-codesnippet > request > hawk > cryptiles > boom > hoek:
patched: '2021-02-03T20:18:35.735Z'
'npm:lodash:20180130':
- gitbook-plugin-codepen > cheerio > lodash:
patched: '2021-02-03T20:18:35.735Z'
'npm:request:20160119':
- gitbook-plugin-codesnippet > request:
patched: '2021-02-03T20:18:35.735Z'
'npm:tough-cookie:20170905':
- gitbook-plugin-codesnippet > request > tough-cookie:
patched: '2021-02-03T20:18:35.735Z'
'npm:tunnel-agent:20170305':
- gitbook-plugin-codesnippet > request > tunnel-agent:
patched: '2021-02-03T20:18:35.735Z'
28 changes: 28 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
CHAPTERS = $(wildcard chapters/*.md)
CHAPTERS = $(shell cat README.md | egrep ^1 | cut -d '(' -f 2 | tr -d ')' | cut -d / -f 2 )

EPUB_FILE = ../book/docker-para-desenvolvedores-by-rafael-gomes.epub

.PHONY: all
all: $(EPUB_FILE)

.PHONY: clean
clean:
$(RM) -r ./book

.PHONY: epub
epub: $(EPUB_FILE)


$(EPUB_FILE): clean #$(CHAPTERS)
cd manuscript && \
mkdir -p ../book && \
pandoc \
-o $(EPUB_FILE) \
meta/title.txt \
$(CHAPTERS) \
--epub-cover-image=meta/docker-para-desenvolvedores-1a-edicao-rafael-gomes.png \
--css=meta/stylesheet.css \
--epub-metadata=meta/metadata.xml \
--table-of-contents \
--write=epub3
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ Esse livro apresenta a utilização do Docker focando nas melhores práticas de

> Autor: **[Rafael Gomes](https://github.com/gomex)**
> [Leanpub](https://leanpub.com/dockerparadesenvolvedores)
## Sumário

1. [Organização](manuscript/organizacao.md)
Expand Down
4 changes: 2 additions & 2 deletions manuscript/configuracoes.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ Seguindo a lista do modelo [12factor](https://12factor.net/), **“Configuraçõ

Quando estamos criando um software, aplicamos determinado comportamento dentro do código e normalmente ele não é parametrizável. Para que a aplicação se comporte de forma diferente, será necessário mudar parte do código.

A necessidade de modificar o código para trocar o comportamento da aplicação, inviabiliza que, a mesma seja executa na máquina (desenvolvimento) da mesma forma que é usada para atender os usuários (produção). E, com isso, acabamos com a possibilidade de portabilidade. E, sem portabilidade, qual a vantagem de se usar contêineres, certo?
A necessidade de modificar o código para trocar o comportamento da aplicação, inviabiliza que, a mesma seja executada na máquina (desenvolvimento) da mesma forma que é usada para atender os usuários (produção). E, com isso, acabamos com a possibilidade de portabilidade. E, sem portabilidade, qual a vantagem de se usar contêineres, certo?

O objetivo da boa prática é viabilizar a configuração da aplicação sem a necessidade de modificar o código. Já que, o comportamento da aplicação varia de acordo com o ambiente onde é executada, as configurações devem considerar o ambiente.

Seguem alguns exemplo:

- Configuração de banco de dados que, normalmente, são diferentes entre ambientes
- Credenciais para acesso a serviços remotos (Ex.: Digital Ocean ou Twitter)
- Credenciais para acesso a serviços remotos (Ex.: DigitalOcean ou Twitter)
- Qual nome de DNS será usado pela aplicação

Como já mencionamos, quando a configuração está estaticamente explícita no código, é necessário modificar manualmente e efetuar novo build dos binários a cada reconfiguração do sistema.
Expand Down
2 changes: 1 addition & 1 deletion manuscript/dicas.md
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ Sempre que possível, utilize imagens oficiais como base para sua imagem. Você

Se mais ferramentas e dependências são necessárias, olhe por imagens como [`buildpack-deps`](https://hub.docker.com/_/buildpack-deps/).

Porém, caso `debian` ainda seja muito grande, existem imagens minimalistas como [`alpine`](https://hub.docker.com/r/gliderlabs/alpine/) ou mesmo [`busybox`](https://hub.docker.com/r/gliderlabs/alpine/). Evite `alpine` se DNS é necessário, existem [alguns problemas a serem resolvidos](https://github.com/gliderlabs/docker-alpine/blob/master/docs/caveats.md). Além disso, evite-o para linguagens que usam o GCC, como Ruby, Node, Python, etc, isso é porque `alpine` utiliza libc MUSL que pode produzir binários diferentes.
Porém, caso `debian` ainda seja muito grande, existem imagens minimalistas como [`alpine`](https://hub.docker.com/r/gliderlabs/alpine/) ou mesmo [`busybox`](https://hub.docker.com/_/busybox). Evite `alpine` se DNS é necessário, existem [alguns problemas a serem resolvidos](https://github.com/gliderlabs/docker-alpine/blob/master/docs/caveats.md). Além disso, evite-o para linguagens que usam o GCC, como Ruby, Node, Python, etc, isso é porque `alpine` utiliza libc MUSL que pode produzir binários diferentes.

Evite imagens gigantes como [`phusion/baseimage`](https://hub.docker.com/r/phusion/baseimage/). Essa imagem é muito grande, foge da filosofia de processo por contêiner e muito do que a compõe não é essencial para contêineres Docker, [veja mais aqui](https://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/) .

Expand Down
Binary file modified manuscript/images/machine1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 3 additions & 1 deletion manuscript/machine.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Docker host é o nome do ativo responsável por gerenciar ambientes Docker, ness

[Docker machine](https://docs.docker.com/machine/) é a ferramenta usada para essa gerência distribuída, permite a instalação e gerência de docker hosts de forma fácil e direta.

Essa ferramenta é muito usada por usuários de sistema operacional “não linux”, como demonstraremos ainda, mas sua função não limita-se a esse fim, pois também é bastante usada para provisionar e gerenciar infraestrutura Docker na nuvem, tal como AWS, Digital Ocean e Openstack.
Essa ferramenta é muito usada por usuários de sistema operacional “não linux”, como demonstraremos ainda, mas sua função não limita-se a esse fim, pois também é bastante usada para provisionar e gerenciar infraestrutura Docker na nuvem, tal como AWS, DigitalOcean e Openstack.

![](images/machine2.png)

Expand Down Expand Up @@ -42,7 +42,9 @@ Para esse exemplo, usaremos o driver mais utilizado, o [virtualbox](https://docs

Antes de criar o ambiente vamos entender como funciona o comando de criação do docker machine:

```
docker-machine create --driver=<nome do driver> <nome do ambiente>
```

Para o driver **virtualbox** temos alguns parâmetros que podem ser utilizados:

Expand Down
Binary file added manuscript/meta/cover.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions manuscript/meta/metadata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<dc:title>Docker para Desenvolvedores</dc:title>
<dc:language>pt-BR</dc:language>
<dc:creator opf:file-as="Gomes, Rafael" opf:role="aut">Rafael Gomes</dc:creator>
<dc:publisher>leanpub.com/dockerparadesenvolvedores</dc:publisher>
<dc:date opf:event="publication">2017-04-29</dc:date>
<dc:rights>Copyright © 2017 Rafael Gomes</dc:rights>
Empty file added manuscript/meta/stylesheet.css
Empty file.
2 changes: 2 additions & 0 deletions manuscript/meta/title.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
% Docker para Desenvolvedores
% Rafael Gomes
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "Docker para Desenvolvedores",
"main": "index.js",
"dependencies": {
"gh-pages": "^0.12.0",
"gh-pages": "^1.0.0",
"gitbook-cli": "^2.3.2",
"gitbook-plugin-ace": "^0.3.2",
"gitbook-plugin-chart": "^0.2.0",
Expand Down

0 comments on commit 5158618

Please sign in to comment.