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.
This commit is contained in:
1
aula-01/.env
Normal file
1
aula-01/.env
Normal file
@@ -0,0 +1 @@
|
|||||||
|
MAX_REQUESTS=3
|
||||||
36
aula-01/app.js
Normal file
36
aula-01/app.js
Normal file
@@ -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");
|
||||||
|
});
|
||||||
|
|
||||||
11
aula-01/docker-compose.yml
Normal file
11
aula-01/docker-compose.yml
Normal file
@@ -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
|
||||||
Reference in New Issue
Block a user