Categorias
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