Skip to content
Snippets Groups Projects
Commit c9e29028 authored by MarcusVRP's avatar MarcusVRP
Browse files

feat(docker-fundamentals): almost finished


Signed-off-by: default avatarMarcus V. <mvrp21@inf.ufpr.br>
parent cc4ce10f
Branches
No related tags found
No related merge requests found
...@@ -722,7 +722,45 @@ Para ver em detalhes como é feito o cache de camadas do Docker na hora do ...@@ -722,7 +722,45 @@ Para ver em detalhes como é feito o cache de camadas do Docker na hora do
::: :::
#### ARG e ENV #### ARG e ENV
TODO: :) `NODE_ENV` for `production` no Dockerfile então haverá uma variável de ambiente
no contêner chamada `NODE_ENV` que terá o valor `production`.
:::{note}
Mais à frente veremos o comando `docker exec`, que permitirá interagir com um
contêiner em execução, assim poderemos verificar as variáveis de ambiente nela
e interagir com todo o sistema de arquivos utilizando uma *shell* como bash.
:::
Isso nem sempre é o comportamento desejado. É possível que alguma variável de
ambiente seja apenas necessária no momento da criação da imagem, para comandos
executados dentro dela.
Uma solução para isso pode ser incluir a variável de ambiente na linha de
comando executada:
```Dockerfile
RUN DEBIAN_FRONTEND=noninteractive apt update
...
RUN DEBIAN_FRONTEND=noninteractive apt upgrade
```
Entretanto isso gera duplicação caso a mesma variável precise ser utilizada
mais de uma vez. Para evitar isso existe a instrução `ARG`, que essencialmente
faz a mesma coisa que a `ENV`, mas a variável de ambiente não é passada para
o contêiner. O exemplo dado acima seria reescrito como:
```Dockerfile
ARG DEBIAN_FRONTEND=noninteractive
RUN apt update
...
RUN apt upgrade
```
Entretanto `ARG` é ainda mais poderoso
:::{seealso}
TODO: Passando argumentos e variáveis de ambiente por linha de comando.
:::
#### COPY e RUN #### COPY e RUN
O comando `COPY` copia arquivos do *host* para o contêiner. Seu uso avançado O comando `COPY` copia arquivos do *host* para o contêiner. Seu uso avançado
...@@ -791,6 +829,11 @@ root@devops: ~/node-test# ...@@ -791,6 +829,11 @@ root@devops: ~/node-test#
Perceba que não vimos o output do contêiner, e no mesmo terminal pudemos Perceba que não vimos o output do contêiner, e no mesmo terminal pudemos
executar `docker ps` para ver que o contêiner estava sim em execução. executar `docker ps` para ver que o contêiner estava sim em execução.
:::{seealso}
Para mais informações sobre a CLI do `docker attach` veja a [documentação
oficial](https://docs.docker.com/reference/cli/docker/container/attach/).
:::
#### Vendo Logs #### Vendo Logs
Mas e se quisermos ver o output do contêiner? Para isso existe o comando Mas e se quisermos ver o output do contêiner? Para isso existe o comando
`docker logs <identificador>`, cujo funcionamento é similar ao comando `tail`, `docker logs <identificador>`, cujo funcionamento é similar ao comando `tail`,
...@@ -844,10 +887,16 @@ em particular são bem relevantes para o uso com esse comando: ...@@ -844,10 +887,16 @@ em particular são bem relevantes para o uso com esse comando:
seja executado em modo `attached`. seja executado em modo `attached`.
- `--tty`/`-t`: Aloca um pseudo-TTY. - `--tty`/`-t`: Aloca um pseudo-TTY.
:::{seealso} :::{note}
TODO: explicar TTY? TODO: explicar TTY?
::: :::
:::{seealso}
Para mais informações sobre a CLI do `docker exec` veja a [documentação
oficial](https://docs.docker.com/reference/cli/docker/container/exec/)
:::
## Disco persistente com **volumes** ## Disco persistente com **volumes**
Caso ainda não tenha reparado, sempre que executamos um contêiner ele tem seus Caso ainda não tenha reparado, sempre que executamos um contêiner ele tem seus
próprios arquivos, muito similar a uma máquina virtual. Entretanto, toda vez que próprios arquivos, muito similar a uma máquina virtual. Entretanto, toda vez que
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment