TECNOLOBO

No recuerdas tu codigo?
Se te olvido como se hace?

Aqui podras guardar lo que necesiten
Y cuando sea necesesario

Creado por julian gomez
iiiiii

Multi-State Build



Descripcion

Multi-State Build

Nota 1


NOTA: state son etapas para contruir una imagen.

#como_listar_los_buildesr
 docker buildx ls //Aqui listara todos los builders (Contructores ) que existen instalados. el que esta por defecto tiene un "*"
 
#cambiarnos_deBuilder
docker buildx use default

#Eliminar_un_builder
docker buildx rm mybulder

#agregar_un_nuevo_build
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t <username>/<image>:latest .
						

Nota 2


Ejemplo de cada bloque separado en el archivo Dockerfile
--------------------ETAPA1-----
#############################PRIMERA ETAPA########################
FROM  node:19.2-alpine3.16 as dependencias
# cd app
WORKDIR /app 
#copiamos package.json
COPY package.json ./
#ejecutar comandos para instalar las dependencias
RUN npm install

#############################SEGUNDA ETAPA########################
FROM  node:19.2-alpine3.16 as contrucytest
# cd app
WORKDIR /app 
#copiamos el paso anterior con sus archivos en nuestro directorio de modulos ya que ese paso ya contiene todo los modulos
# desde un state de todos sus node_modules a nuestro ./node_modules
COPY --from=dependencias /app/node_modules ./node_modules
# se copea los archivos app.js y package.json al destino ./app
COPY . .
#realizar tesgin
RUN npm run test

############################TERCERA ETAPA#########################
FROM  node:19.2-alpine3.16 as depenprod
# cd app
WORKDIR /app 
#copiamos package.json
COPY package.json ./
#ejecutar comandos para instalar las dependencias
RUN npm install --prod


#############################CUARTA ETAPA########################
FROM  node:19.2-alpine3.16 as correrapp
# cd app
WORKDIR /app 
#copimos dependendencias solo de produccion y sus archivos ya para la app completa
COPY --from=depenprod /app/node_modules ./node_modules
COPY app.js ./
#si la carpeta task no existe la cera
COPY task  ./task
#comando run aplicacion
CMD [ "node","app.js" ]

						

Nota 3


#Creamos_la_imagen
docker build -t tecnolobo/cron-ticket:latest .
 
#corremos la imagen
docker run tecnolobo/cron-ticket:latest