commit 1ea1a98e60007b0bbbb5c15688a1a929f72353dc Author: Allyson de Paula Date: Thu Dec 25 13:31:02 2025 -0300 aula-01: Docker Compose com restart policy App Node.js que trava após MAX_REQUESTS para demonstrar como o Docker Compose lida com containers que falham. diff --git a/aula-01/.env b/aula-01/.env new file mode 100644 index 0000000..2028189 --- /dev/null +++ b/aula-01/.env @@ -0,0 +1 @@ +MAX_REQUESTS=3 diff --git a/aula-01/app.js b/aula-01/app.js new file mode 100644 index 0000000..3753a6a --- /dev/null +++ b/aula-01/app.js @@ -0,0 +1,36 @@ +const http = require("http"); + +const MAX_REQUESTS = Number(process.env.MAX_REQUESTS || 3); + +let requestCount = 0; + +console.log("MAX_REQUESTS =", MAX_REQUESTS); + +const server = http.createServer((req, res) => { + if (req.url === "/health") { + if (requestCount > MAX_REQUESTS) { + // app travado, mas processo vivo + return; + } + + res.writeHead(200); + res.end(`ok`); + return; + } + + requestCount++; + console.log("request", requestCount); + + if (requestCount > MAX_REQUESTS) { + console.log(`🔥 App travado após ${MAX_REQUESTS} requests`); + return; + } + + res.writeHead(200); + res.end(`Req -> ${requestCount}/${MAX_REQUESTS}`); +}); + +server.listen(3000, () => { + console.log("App rodando na porta 3000"); +}); + diff --git a/aula-01/docker-compose.yml b/aula-01/docker-compose.yml new file mode 100644 index 0000000..fa586ec --- /dev/null +++ b/aula-01/docker-compose.yml @@ -0,0 +1,11 @@ +services: + node-app: + image: node:24-alpine + container_name: node-bugado + working_dir: /app + volumes: + - ./app.js:/app/app.js + command: node app.js + ports: + - "3000:3000" + restart: always