Direto na Imagem
Laboratório
Será utilitzada a aplicação:
~/devops-simulador-caos/src$ ls
Dockerfile package.json server.ts tsconfig.json viewsEditar o Dockerfile:
$ vim DockerfileFROM node:20.9.0
WORKDIR /app
COPY package*.json ./
RUN npm install
RUN apt update && apt install stress --yes
COPY . .
RUN npm run compile
HEALTHCHECK --interval=10s --timeout=5s --retries=1 --start-period=30s CMD ["curl","-f","http://localhost:3000/health"]
EXPOSE 3000
CMD ["npm", "start"]Construir a imagem:
~/devops-simulador-caos/src$ docker image build \
-t marcelodpbarbieri/simulador-caos:v2 \
-f Dockerfile .
[+] Building 12.5s (13/13) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 332B 0.0s
=> [internal] load metadata for docker.io/library/node:20.9.0 1.8s
=> [auth] library/node:pull token for registry-1.docker.io 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 53B 0.0s
=> [1/7] FROM docker.io/library/node:20.9.0@sha256:146bbe4eaee99ae885be2 0.2s
=> => resolve docker.io/library/node:20.9.0@sha256:146bbe4eaee99ae885be2 0.0s
=> => sha256:a6759aea6838201fb9b76b3ffccce537c745cef4b76 2.00kB / 2.00kB 0.0s
=> => sha256:03501b0671a4e8450444678df0aad9c78ecce5fe2f4 7.52kB / 7.52kB 0.0s
=> => sha256:146bbe4eaee99ae885be2a0a767f63a4b96032141d7 1.21kB / 1.21kB 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 24.80kB 0.0s
=> [2/7] WORKDIR /app 0.0s
=> [3/7] COPY package*.json ./ 0.0s
=> [4/7] RUN npm install 5.6s
=> [5/7] RUN apt update && apt install stress --yes 3.1s
=> [6/7] COPY . . 0.0s
=> [7/7] RUN npm run compile 1.3s
=> exporting to image 0.2s
=> => exporting layers 0.2s
=> => writing image sha256:fcf7250a5d8e31876ba86365cd12ec249c21dc6318bfe 0.0s
=> => naming to docker.io/marcelodpbarbieri/simulador-caos:v2 0.0s O healthcheck não foi exposto na construção, pois o sistema de arquivos não está sendo alterado. O healthcheck altera os metadados da imagem:
Subir a imagem para o Docker Registry:
Atualizar a tag latest:
Editar o arquivo compose.yaml e alterar a versão para v2:
Subir o Docker Compose:
Monitoramento:
Container em execução e saudável:


Caso seja utilizada a versão 1 da imagem, o healthcheck não seria habilitado:

Retornar para a versão 2 onde o healthcheck está habilitado:

Desabilitar o healthcheck no Docker Compose:

Last updated