Skip to content

Commit 6bf195e

Browse files
committed
my-app refactor to point node 22
1 parent 5641363 commit 6bf195e

35 files changed

+6870
-26036
lines changed

01-contenedores/contenedores-vi/contenedores-vi.sh

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ docker run -dit --name mysqldb \
1717
-e MYSQL_DATABASE=wpdb \
1818
-e MYSQL_USER=wp_user \
1919
-e MYSQL_PASSWORD=wp_pwd \
20-
mysql:5.7
20+
mysql:8.0
2121

2222
#2.1 Esto habrá hecho que se genere un volumen nuevo llamado mysql_data
2323
docker volume ls
@@ -29,45 +29,46 @@ docker run -dit --name wordpress \
2929
-v wordpress_data:/var/www/html \
3030
-e WORDPRESS_DB_HOST=mysqldb:3306 \
3131
-e WORDPRESS_DB_USER=wp_user -e WORDPRESS_DB_PASSWORD=wp_pwd -e WORDPRESS_DB_NAME=wpdb \
32-
-p 8000:80 wordpress:latest
32+
-p 8000:80 wordpress:6.6.2-php8.1-apache
3333

3434
#Este es el contenido en el volumen wordpress_data
3535
docker exec wordpress ls -l /var/www/html
3636

3737
#Si quisiera eliminar todo el proceso debería de hacer
38-
docker rm -f wordpress mysqldb && \
39-
docker network rm wordpress-network && \
40-
docker volume rm mysql_data wordpress_data
38+
docker kill wordpress mysqldb && \
39+
docker rm wordpress mysqldb && \
40+
docker network rm wordpress-network && \
41+
docker volume rm mysql_data wordpress_data
4142

4243
#Y volver a relanzar todo si quisiera volver a crearlo
4344

4445
#Lo mismo pero con Docker Compose
4546
cat docker-compose.yml
4647

47-
#Levantar la aplicación con docker-compose
48-
docker-compose up
48+
#Levantar la aplicación con docker compose
49+
docker compose up
4950

5051
#Truco:
51-
docker-compose up & #con el & al final te deja utilizar el terminal, además de ver la salida
52+
docker compose up & #con el & al final te deja utilizar el terminal, además de ver la salida
5253

5354
#Ejecutar en segundo plano tu aplicación con Docker Compose
54-
docker-compose up -d
55+
docker compose up -d
5556

5657
#Parar la aplicación con docker-compose
57-
docker-compose stop
58+
docker compose stop
5859

5960
#Parar y eliminar
60-
docker-compose down
61+
docker compose down
6162

6263
#Otro de los escenarios que te puedes encontrar es que quieras que cada vez que haces un compose up
6364
#se genere la imagen de tu app
6465
cd my-app
6566

6667
#Ejecutar y genera la imagen de tu aplicación
67-
docker-compose up --build &
68+
docker compose up --build
6869

6970
#Con docker compose puedes ver todas las aplicaciones que se están ejecutando
70-
docker-compose ps #Pero sólo se ven los contenedores del proyecto que está en la carpeta actual con el nombre actual.
71+
docker compose ps #Pero sólo se ven los contenedores del proyecto que está en la carpeta actual con el nombre actual.
7172

7273
#Como siempre, puedes ver todos los contenedores con docker ps
7374
docker ps -a
@@ -76,10 +77,13 @@ docker ps -a
7677
docker ps -a --filter "label=com.docker.compose.project" -q | xargs docker inspect --format='{{index .Config.Labels "com.docker.compose.project"}}'| sort | uniq
7778

7879
#Añadir un nombre a la aplicación
79-
docker-compose --project-name my_wordpress up -d
80+
docker compose --project-name my_wordpress up -d
8081

8182
#Si quisieramos reiniciar la aplicación
82-
docker-compose -p my_wordpress restart
83+
docker compose -p my_wordpress restart
84+
85+
#Para limpiar ahora necesitamos referenciar el 'proyecto'
86+
docker compose -p my_wordpress down
8387

8488
# Docker Swarm #
8589

01-contenedores/contenedores-vi/docker-compose.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
version: "3.9"
21
services:
2+
33
db:
4-
image: mysql:5.7
4+
image: mysql:8.0
55
volumes:
66
- db_data:/var/lib/mysql
77
restart: always
@@ -12,10 +12,11 @@ services:
1212
MYSQL_PASSWORD: wp_pwd
1313
networks:
1414
- wordpress-network
15+
1516
wordpress:
1617
depends_on:
1718
- db
18-
image: wordpress:latest
19+
image: wordpress:6.6.2-php8.1-apache
1920
volumes:
2021
- wordpress_data:/var/www/html
2122
ports:
@@ -28,8 +29,10 @@ services:
2829
WORDPRESS_DB_NAME: wpdb
2930
networks:
3031
- wordpress-network
32+
3133
volumes:
3234
db_data:
3335
wordpress_data:
36+
3437
networks:
3538
wordpress-network:

01-contenedores/contenedores-vi/my-app/backend/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM node:10.13-alpine
1+
FROM node:22-alpine
22

33
WORKDIR /app
44

Lines changed: 53 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
const express = require('express'),
2-
mongoose = require('mongoose'),
3-
bodyParser = require('body-parser'),
4-
cors = require('cors'),
5-
app = express();
1+
const Topic = require("./models/topics");
2+
const express = require("express"),
3+
mongoose = require("mongoose"),
4+
bodyParser = require("body-parser"),
5+
cors = require("cors"),
6+
app = express();
67

78
//configure CORS
89
app.use(cors());
@@ -13,47 +14,64 @@ app.use(bodyParser.json());
1314

1415
const port = process.env.PORT || 8080;
1516

16-
mongoose.connect('mongodb://mongodb:27017', err => {
17-
if (err)
18-
throw err;
19-
console.log('Connected to mongodb');
20-
});
17+
const delay = () =>
18+
new Promise((res) => {
19+
setTimeout(() => {
20+
res();
21+
}, 1000);
22+
});
2123

22-
//mongoDB service
23-
var Topic = require('./models/topics');
24+
const connect = async () => {
25+
await delay();
26+
try {
27+
await mongoose.connect("mongodb://mongodb:27017/test");
28+
console.log("connected to test");
29+
} catch (error) {
30+
console.error(error);
31+
}
32+
};
2433

2534
//Routes
26-
var router = express.Router();
27-
28-
router.post('/topics', (req, res) => {
29-
console.log('[POST] Topics');
35+
const router = express.Router();
3036

31-
var topic = new Topic();
32-
topic.name = req.body.name;
37+
router.post("/topics", async (req, res) => {
38+
console.log("[POST] Topics");
3339

34-
topic.save(err => {
35-
if (err)
36-
res.send(err);
40+
const topic = new Topic();
41+
topic.name = req.body.name;
3742

38-
res.json({ message: 'Topic created!' });
39-
});
43+
try {
44+
const result = await topic.save();
45+
console.log(result);
46+
res.send(result);
47+
} catch (error) {
48+
console.error(error);
49+
res.send(JSON.parse(error));
50+
}
4051
});
4152

42-
router.get('/topics', (req, res) => {
43-
console.log('[GET] Topics');
53+
router.get("/topics", async (_, res) => {
54+
console.log("[GET] Topics");
55+
console.log(Topic);
4456

45-
Topic.find((err, topics) => {
46-
if (err)
47-
res.send(err);
48-
49-
res.json(topics);
50-
});
57+
try {
58+
const collection = await Topic.find({});
59+
const topics = collection.map((t) => ({
60+
id: t._id.toString(),
61+
name: t.name,
62+
}));
63+
res.send(topics);
64+
} catch (error) {
65+
console.error(err);
66+
res.send(JSON.parse(error));
67+
}
5168
});
5269

5370
//all routes will be prefixed with /api
54-
app.use('/api', router);
71+
app.use("/api", router);
5572

5673
//start the server
57-
app.listen(port, () => {
58-
console.log(`Server up and running on port ${port}`);
59-
});
74+
app.listen(port, async () => {
75+
console.log(`Server up and running on port ${port}`);
76+
await connect();
77+
});

01-contenedores/contenedores-vi/my-app/backend/models/topics.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
const mongoose = require('mongoose'),
44
Schema = mongoose.Schema;
55

6-
var TopicSchema = new Schema({
6+
const TopicSchema = new Schema({
77
name: String
88
});
99

01-contenedores/contenedores-vi/my-app/backend/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
"version": "1.0.0",
44
"description": "",
55
"main": "index.js",
6+
"engines": {
7+
"node": "22.x.x"
8+
},
69
"scripts": {
710
"start": "node index.js",
811
"test": "echo \"Error: no test specified\" && exit 1"
@@ -14,6 +17,6 @@
1417
"body-parser": "^1.19.0",
1518
"cors": "^2.8.5",
1619
"express": "^4.17.1",
17-
"mongoose": "^5.10.10"
20+
"mongoose": "8.7.3"
1821
}
1922
}
Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
1-
version: '3.9'
21
services:
2+
33
frontend:
44
build:
55
context: ./frontend
66
# dockerfile: Dockerfile
77
deploy:
8-
replicas: 2
8+
# replicas: 2
9+
replicas: 1
910
ports:
10-
- 3000
11+
# - 3000
12+
- 3000:8080
1113
depends_on:
1214
- backend
15+
1316
backend:
1417
build:
1518
context: ./backend
@@ -18,5 +21,6 @@ services:
1821
- 8080:8080
1922
depends_on:
2023
- mongodb
24+
2125
mongodb:
2226
image: mongo:latest
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"presets": [
3+
"@babel/preset-env",
4+
"@babel/preset-typescript",
5+
"@babel/preset-react"
6+
]
7+
}

01-contenedores/contenedores-vi/my-app/frontend/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM node:10.13-alpine
1+
FROM node:22-alpine
22

33
WORKDIR /app
44

0 commit comments

Comments
 (0)