
DE ESTO QUE ESTA ARRIBA VAMOS A REFORMARLO
debo copiar package.json solamente
VAMOS A ESTO
Vamos a reformarlo asi copiamos solo el package json y despues del npm install que es la instalacion de dependencias hacemos eso y docker en la linea 9 docker se da cuenta que no debe copiar de nuevo el package json
ahora si cambio las cosas usa el cache del npm install cada vez que reconstruya
hago cambios

cambio a node mon y queda asi para estar pendiente

toalsa
DA un error de dependencias como anteriormente tenia que desaparece node_modules
entonces tenemos que especificar el nombre del archivo a la hora de la ejecucion


nuevo
redes conectando dos contenedores
Comandos:
$ docker network ls (listo las redes)
$ docker network create –atachable plazinet (creo la red)
esta eituqeta da la posibilidad de conectarse con otros contenedores
$ docker inspect plazinet (veo toda la definición de la red creada)
$ docker run -d –name db mongo (creo el contenedor de la BBDD)
$ docker network connect plazinet db (conecto el contenedor “db” a la red “platzinet”)
$ docker run -d -name app -p 3000:3000 –env MONGO_URL=mondodb://db:27017/test platzi (corro el contenedor “app” y le paso una variable)
$ docker network connect plazinet app (conecto el contenedor “app” a la red “plazinet”)
Docker viene con unas redes ya hechas
$ docker run –d –name app -p 3000:3000 –env MONGO_URL=mondodb://db:27017/test platzi (corro el contenedor “app” y le paso una variable) aparentemente esta mal

es el default bridge es por la retrocompiabilitaddad
host es larepresentacion de la red reales interfaces todal a network e intertfaces reales de mi maquina
none es ningun tipo de aceso a redes basicamente edhabilitar el networkimng

coonectadmos
y ahora damos inspect y veras

tiene una vvariable de entorno



docker compose
docker compose viene en windows y mac en linux hay que instlarla
escribir de forma declarativa
primero versiones eso indica las versiones permitidas e incluso cambias las llaves


############################################################
# Dockerfile para configurar aplicación en node.js - Express
############################################################
# Establece la imagen base
FROM node
# Crear directorio de trabajo
RUN mkdir -p /opt/app
# Se estable el directorio de trabajo
WORKDIR /opt/app
# Instala los paquetes existentes en el package.json
COPY ./project/package.json .
RUN npm install --quiet
# Copia la Aplicación
COPY ./project/. .
# Instalación de Nodemon en forma Global
# Al realizarse cambios reiniciar el servidor
RUN npm install nodemon -g --quiet
# Expone la aplicación en el puerto 8000
EXPOSE 8000
# Inicia la aplicación al iniciar al contenedor
CMD nodemon -L --watch . app.js
clase 23
Comandos:
$ docker network ls (listo las redes)
$ docker network inspect docker_default (veo la definición de la red)
$ docker-compose logs (veo todos los logs)
$ docker-compose logs app (solo veo el log de “app”)
$ docker-compose logs -f app (hago un follow del log de app)
$ docker-compose exec app bash (entro al shell del contenedor app)
$ docker-compose ps (veo los contenedores generados por docker compose)
$ docker-compose down (borro todo lo generado por docker compose)




con docker compose los nombres son diferntes pero docker se encarga de conectarlos entre si



usamos la imagen con .
command: npx nodemon --legacy-watch index.js
CMD ["npx", "nodemon", "-L", "index.js"]
docker run --env-file ./.env image
asdasd dasdasdasdad
Usa la barra lateral para añadir la URL del repositorio GitHub a incrustar.
php artisan serve
CMD ["npx", "nodemon", "-L", "index.js"]
shell
1312321
git commit -m "hola"
esto es una preuba
21312312
312321312312
asi lo ignoro

poniendole dos puntos (:) le digo que no toque los dos puntos
alli en ese punto no hay hot reload esta funcionando pero alli no funciona
ahora usamos este comando

con NPX porque no esta instalado globalmente node mon
instalar https://platzi.com/blog/django-docker/
Compose OVERRIDE
Comandos:
$ touch docker-compose.override.yml (creo el archivo override)
$ docker-compose up -d (crea los servicios/contenedores)
$ docker-compose exec app bash (entro al bash del contenedor app)
$ docker-compose ps (veo los contenedores del compose)
$ docker-compose up -d –scale app=2 (escalo dos instancias de app, previamente tengo que definir un rango de puertos en el archivo compose)
$ docker-compose down (borro todo lo creado con compose)}
sirve para hacer pequeños cambios sobre el composer override

esto agrega dos variables la de docker y la otra
Nota los puertos no funcionan bien es mejor dejarlos en un solo lugar
podemos escalar en mas de un puerto con el comando
docker-compose up -d –scale app=2 (escalo dos instancias de app, previamente tengo que definir un rango de puertos en el archivo compose)
asi se define el rango

creando varios ambientes
https://medium.com/it-dead-inside/making-sense-of-docker-compose-overrides-efb757460d64
docker-compose up -d --scale [nameService]=[numberContainers]
clase 26 Administrando tu ambiente de Docker
Comandos:
$ docker ps -a (veo todos los contenedores de mi máquina)
$ docker container prune (borra todos los contenedores inactivos)
$ docker rm -f $(docker ps -aq) (borra todos los contenedores que estén corriendo o apagados)
$ docker network ls (lista todas las redes)
$ docker volume ls (lista todos los volumes)
$ docker image ls (lista todas las imágenes)
$ docker system prune (borra todo lo que no se esté usando)
$ docker run -d –name app –memory 1g platziapp (limito el uso de memoria)
$ docker stats (veo cuantos recursos consume docker en mi sistema)
$ docker inspect app (puedo ver si el proceso muere por falta de recursos)
# Remove All sudo docker rm -vf $(sudo docker ps -a -q) sudo docker rmi -f $(sudo docker images -a -q) sudo docker system prune -f sudo docker volume prune -f
# Eliminar todos los contenedores que no estan corriendo o apagados
docker container prune
# Eliminar todos los contenedores incluyendo los que estan corriendo (-q: muestra ID, -a: todos, -f: fuerza bruta)
docker rm -f $(docker ps -aq)
# Listar redes
docker network ls