最後活躍 6 months ago

Deflector5098 已修改 6 months ago. 還原成這個修訂版本

2 files changed, 118 insertions, 3 deletions

gistfile1.md(檔案已創建)

@@ -0,0 +1,118 @@
1 + ## 🐳 Ejemplos en `Dockerfile`
2 +
3 + ### ✅ Ejemplo 1: API en Node.js
4 +
5 + ```Dockerfile
6 + FROM node:20
7 +
8 + WORKDIR /app
9 + COPY . .
10 +
11 + RUN npm install
12 + EXPOSE 3000
13 +
14 + HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
15 + CMD curl -f http://localhost:3000/health || exit 1
16 +
17 + CMD ["npm", "start"]
18 + ```
19 +
20 + > Aquí se asume que el endpoint `/health` devuelve 200 OK si la app está funcionando.
21 +
22 + ---
23 +
24 + ### ✅ Ejemplo 2: PostgreSQL
25 +
26 + ```Dockerfile
27 + FROM postgres:16
28 +
29 + HEALTHCHECK --interval=10s --timeout=3s --retries=5 \
30 + CMD pg_isready -U postgres || exit 1
31 + ```
32 +
33 + > `pg_isready` es una utilidad que ya viene en la imagen oficial de PostgreSQL y comprueba si se puede conectar a la base de datos.
34 +
35 + ---
36 +
37 + ## 🧩 Ejemplos en `docker-compose.yml`
38 +
39 + ### ✅ Ejemplo 3: API en Rust
40 +
41 + ```yaml
42 + version: "3.8"
43 + services:
44 + rust-api:
45 + image: mi-api-rust
46 + ports:
47 + - "8080:8080"
48 + healthcheck:
49 + test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
50 + interval: 30s
51 + timeout: 5s
52 + retries: 3
53 + start_period: 10s
54 + ```
55 +
56 + > Este sería para una API escrita en Rust usando Axum, por ejemplo.
57 +
58 + ---
59 +
60 + ### ✅ Ejemplo 4: Frontend en React
61 +
62 + ```yaml
63 + services:
64 + frontend:
65 + image: mi-frontend-react
66 + ports:
67 + - "3000:80"
68 + healthcheck:
69 + test: ["CMD-SHELL", "wget -q --spider http://localhost || exit 1"]
70 + interval: 20s
71 + timeout: 3s
72 + retries: 2
73 + ```
74 +
75 + > Utiliza `wget` para comprobar si el frontend devuelve una respuesta correcta.
76 +
77 + ---
78 +
79 + ### ✅ Ejemplo 5: Redis
80 +
81 + ```yaml
82 + services:
83 + redis:
84 + image: redis:7
85 + ports:
86 + - "6379:6379"
87 + healthcheck:
88 + test: ["CMD", "redis-cli", "ping"]
89 + interval: 10s
90 + timeout: 3s
91 + retries: 3
92 + ```
93 +
94 + > Redis responde con "PONG" si está funcionando correctamente.
95 +
96 + ---
97 +
98 + ### 🧠 Extra: Comprobación del estado desde terminal
99 +
100 + Después de definir un healthcheck, puedes consultar el estado con:
101 +
102 + ```bash
103 + docker ps
104 + ```
105 +
106 + Verás una columna llamada `STATUS` donde aparecerá `healthy`, `unhealthy` o `starting`.
107 +
108 + También puedes ver más información detallada con:
109 +
110 + ```bash
111 + docker inspect <nombre_contenedor>
112 + ```
113 +
114 + Y filtrar directamente el estado con:
115 +
116 + ```bash
117 + docker inspect --format='{{json .State.Health}}' <nombre_contenedor>
118 + ```

gistfile1.txt (檔案已刪除)

@@ -1,3 +0,0 @@
1 - docker ps
2 - docker inspect <nombre_contenedor>
3 - docker inspect --format='{{json .State.Health}}' <nombre_contenedor>

Deflector5098 已修改 6 months ago. 還原成這個修訂版本

1 file changed, 3 insertions

gistfile1.txt(檔案已創建)

@@ -0,0 +1,3 @@
1 + docker ps
2 + docker inspect <nombre_contenedor>
3 + docker inspect --format='{{json .State.Health}}' <nombre_contenedor>
上一頁 下一頁