Skip to content

Commit 9e60d4b

Browse files
committed
revisión del módulo III y separo los deberes en un archivo aparte
1 parent 36bec7e commit 9e60d4b

10 files changed

Lines changed: 1013 additions & 45 deletions

File tree

.vscode/launch.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"configurations": [
3+
{
4+
"name": "Docker Node.js Launch",
5+
"type": "docker",
6+
"request": "launch",
7+
"preLaunchTask": "docker-run: debug",
8+
"platform": "node"
9+
}
10+
]
11+
}

.vscode/tasks.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"version": "2.0.0",
3+
"tasks": [
4+
{
5+
"type": "docker-build",
6+
"label": "docker-build",
7+
"platform": "node",
8+
"dockerBuild": {
9+
"dockerfile": "${workspaceFolder}/01-contenedores/contenedores-iii/hello-world/Dockerfile",
10+
"context": "${workspaceFolder}",
11+
"pull": true
12+
}
13+
},
14+
{
15+
"type": "docker-run",
16+
"label": "docker-run: release",
17+
"dependsOn": [
18+
"docker-build"
19+
],
20+
"platform": "node"
21+
},
22+
{
23+
"type": "docker-run",
24+
"label": "docker-run: debug",
25+
"dependsOn": [
26+
"docker-build"
27+
],
28+
"dockerRun": {
29+
"env": {
30+
"DEBUG": "*",
31+
"NODE_ENV": "development"
32+
}
33+
},
34+
"node": {
35+
"enableDebugging": true
36+
}
37+
}
38+
]
39+
}

01-contenedores/contenedores-iii/contenedores-iii.sh

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@ cd 01-contenedores/contenedores-iii/hello-world
55

66
#Ejecutar la app sin contenerizar
77
npm install
8+
npm run test
89
node server.js
10+
npm run start-dev
11+
12+
#Para crear el archivo Dockerfile y .dockerignore que vimos en la parte teórica, puedes hacerlo con la extensión de Docker de manera sencilla.
13+
#Basta con ejecutar Cmd + P > Add Docker Files to Workspace y seleccionar Node.js. Te pedirá que le selecciones el package.json y el puerto que utiliza tu app.
14+
#Le diremos que no queremos el archivo de Docker compose, lo dejaremos para más adelante :-)
915

1016
#Revisar el archivo Dockerfile
1117
cat Dockerfile
@@ -20,19 +26,36 @@ cat Dockerfile
2026
#COPY coge una fuente y un destino dentro de tu máquina local.
2127
#ADD te permite hacer lo mismo que COPY, pero además puedes especificar una URL como origen o incluso extraer un archivo .tar y descomprimirlo directamente en destino.
2228

23-
2429
#Revisar el archivo .dockerignore
2530
cat .dockerignore
2631

2732
#Generar la imagen en base al Dockerfile
2833
docker build --tag=hello-world .
2934

35+
#Comprobamos las imágenes que ahora tenemos disponibles, así como el peso de hello-world
36+
docker images
37+
3038
#Ver el historico generado para la imagen
3139
docker history hello-world #Los que tienen valor 0B son metadatos
3240

3341
#Ejecutar un nuevo contenedor usando tu nueva imagen:
3442
docker run -p 4000:3000 hello-world
3543

44+
#Modifica el Dockerfile para ejecutar el test con eslint:
45+
# FROM node:12.18-alpine
46+
# LABEL maintainer="Gisela Torres"
47+
# # ENV NODE_ENV production
48+
# WORKDIR /usr/src/app
49+
# COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
50+
# RUN npm install
51+
# COPY . .
52+
# RUN npm run test
53+
# EXPOSE 3000
54+
# CMD ["npm", "start"]
55+
56+
#Si vuelves a generar tu imagen, después de que arregles los errores que reporta eslint, comprobarás que ha engordado
57+
docker images
58+
3659
#Añadir una nueva etiqueta a tu nueva imagen
3760
docker image tag hello-world 0gis0/hello-world:latest
3861
docker images #El image ID es el mismo para ambas etiquetas porque apuntan a la misma imagen
@@ -139,9 +162,3 @@ docker run --rm helloworld cmd.exe /s /c type Hello.txt
139162

140163
# - Elimina herramientas innecesarias de la imagen: wget, netcat, etc. para evitar que los atacantes puedan usarlas si se diera el caso.
141164
# - Utilizar imágenes base reducidas
142-
143-
144-
#Deberes:
145-
# 1. Dockeriza la aplicación de la carpeta hello-lemoncoder
146-
# 2. Ejecutar un contenedor con tu nueva imagen
147-
# 3. Añade un archivo de prueba en el contenedor y crea una nueva imagen a partir de dicho contenedor.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#Deberes:
2+
# 1. Dockeriza la aplicación de la carpeta hello-lemoncoder
3+
# 2. Ejecutar un contenedor con tu nueva imagen
4+
# 3. Añade un archivo de prueba en el contenedor y crea una nueva imagen a partir de dicho contenedor.
Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
1-
node_modules
2-
npm-debug.log
3-
Dockerfile*
4-
docker-compose*
5-
.dockerignore
6-
.git
7-
.gitignore
8-
.env
9-
*/bin
10-
*/obj
11-
README.md
12-
LICENSE
13-
.vscode
1+
**/.classpath
2+
**/.dockerignore
3+
**/.env
4+
**/.git
5+
**/.gitignore
6+
**/.project
7+
**/.settings
8+
**/.toolstarget
9+
**/.vs
10+
**/.vscode
11+
**/*.*proj.user
12+
**/*.dbmdl
13+
**/*.jfm
14+
**/azds.yaml
15+
**/charts
16+
**/docker-compose*
17+
**/Dockerfile*
18+
**/node_modules
19+
**/npm-debug.log
20+
**/obj
21+
**/secrets.dev.yaml
22+
**/values.dev.yaml
23+
README.md

01-contenedores/contenedores-iii/hello-world/.eslintrc.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,12 @@ module.exports = {
99
"ecmaVersion": 12
1010
},
1111
"rules": {
12+
// "semi" : ["error","always"],
13+
// "quotes": ["error", "double"],
14+
"no-debugger": ["error"],
15+
"no-console": ["warn"]
1216
},
1317
"globals": {
1418
"_": false
1519
}
16-
};
20+
};
Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,10 @@
1-
#Esta es la imagen que utilizaré como base de mi imagen
2-
FROM node:10.13-alpine
3-
4-
#Establezco la ruta /app como directorio de trabajo para alojar mi aplicación, instalar dependencias, etc.
5-
WORKDIR /app
6-
7-
#Copio los archivos package.json y package-lock.json en el raiz de mi directorio /app
8-
COPY ["package.json", "package-lock.json", "./"]
9-
10-
#Instalo las dependencias de Node.js definidas en el archivo package.json
11-
RUN npm install
12-
13-
#Copio el resto de archivos en el directorio
14-
COPY . /app
15-
16-
#Añado como metadato que el puerto que utiliza mi aplicación para comunicarse es el 3000. Se puede verificar en la linea 8 del archivo server.js
17-
EXPOSE 3000
18-
19-
#Indica el comando que se va a ejecutar cuando un contenedor se arranque a partir de esta imagen
20-
CMD [ "node", "server.js" ]
1+
FROM node:12.18-alpine
2+
LABEL maintainer="Gisela Torres"
3+
# ENV NODE_ENV production
4+
WORKDIR /usr/src/app
5+
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
6+
RUN npm install
7+
COPY . .
8+
RUN npm run test
9+
EXPOSE 3000
10+
CMD ["npm", "start"]

0 commit comments

Comments
 (0)