diff --git a/source/pages/concepts/; b/source/pages/concepts/; deleted file mode 100644 index 1dd15fef71cefa48772bfb1fb6ecd7419259ea4a..0000000000000000000000000000000000000000 --- a/source/pages/concepts/; +++ /dev/null @@ -1,44 +0,0 @@ -# Fundamentos do Docker - -Assume-se que quem ler essa documentação é familiarizado com os conceitos -básicos de Docker[^cite_docker_concepts]. - -## Trabalhando com **contêineres** -### Hello, World! - -## O arquivo **Dockerfile** - -## Analisando **imagens** - -## Persistindo mudanças no disco com **volumes** - -## Uma introdução a **redes** (de Docker) - -## Docker Compose -### docker-compose.yml -... - -## Exemplo de deploy -TODO: exemplo de backend e frontend configurando o nginx - -:::{admonition} Esse **não é** o método preferido. -:class: note -Idealmente com Docker **separa-se o código da -infraestrutura** completamente. - -Logo, o fluxo de trabalho ideal para um projeto em Docker seria -realizar o `push` de sua imagem para um *registry* e o ambiente -de deploy fazer o `pull` dela. Tarefas que podem até ser realizadas -por times distintos. - -Esse tipo de automação pode ser integrada ao desenvolvimento -utilizando ferramentas como GitLabCI[^cite_gitlab_ci] para -realizar esse deploy com qualquer *merge* na branch `main`, -por exemplo. - -Entretanto, no momento em que esse documento é escrito esse é -o método utilizado no C3SL. -::: - - -[^cite_docker_concepts]: [Conceitos básicos de Docker](../concepts/docker.md). diff --git a/source/pages/guides/docker-fundamentals.md b/source/pages/guides/docker-fundamentals.md index 6845dd73dc65aec1d6d58822b5b3fe42c88cb376..6527fc46a22060de02da88a91264a84742a9a087 100644 --- a/source/pages/guides/docker-fundamentals.md +++ b/source/pages/guides/docker-fundamentals.md @@ -289,16 +289,29 @@ executar o servidor com `npm start`. Para isso é necessário que o `npm` esteja instalado no sistema. ```Dockerfile - FROM node:lts + +WORKDIR /app/ + +EXPOSE 3000 + +COPY package.json /app/package.json + +RUN npm install + +COPY . /app/ + +CMD [ "npm", "start" ] ``` +TODO: explicar tudo em detalhes................................................. + :::{caution} A imagem escolhida é `node:lts`. Para usos além de testes locais é sempre bom mudar a tag `lts` para uma versão específica da imagem. Isso pois `lts` é uma **tag dinâmica**. Hoje essa tag aponta para uma versão -específica (20.11.1 no momento) da escrita desse parágrafo, mas conforme o +específica (20.11.1 no momento da escrita desse parágrafo), mas conforme o tempo passa a versão LTS (Long Term Support[^cite_lts]) mudará; e não é impossível que essa mudança quebre a aplicação. @@ -312,9 +325,13 @@ suas dependências mudar ele **deveria** acompanhar essa mudança. Infelizmente o mundo da teoria é muito mais bonito e previsível que o da prática.) ::: -#### Camadas +#### Sequência de passos +TODO: eventualmente comentar do .dockerignore, talvez não aqui + ##### Ordenando as camadas +TODO: mostrar trocas de camadas + #### Mapeando portas :::{attention} @@ -327,7 +344,16 @@ utilizando a imagem quais portas devem ser "publicadas". Ela serve como uma espécie de **documentação**. ::: +#### ARG e ENV + +#### CMD vs ENTRYPOINT + +:::{note} +Uma instrução particularmente interessante é a `HEALTHCHECK`. +::: + ### *Attached* e *detached* + #### Vendo Logs ## Disco persistente com **volumes** @@ -367,6 +393,7 @@ docker-compose vs. docker compose Falar de `pull`, `login`, `push` e etc. ## Exemplo de *deploy* manual + TODO: fazer o exemplo :::{admonition} Esse não é necessariamente o melhor método. @@ -383,6 +410,8 @@ ferramentas como GitLabCI[^cite_gitlab_ci] para realizar esse deploy com qualquer *merge* na branch `main`, por exemplo. ::: +### Produção e Desenvolvimento + ## TODO: Fernando comentou sobre docker debian12 em host debian9 -> estudar ## TODO: Colinha de Docker