Bienvenido, soy Miguel y hoy les traigo este tutorial.
Cómo usar el mismo contenedor para ejecutar y probar su aplicación
Una de mis cosas favoritas que hace Docker es salvarnos del dolor de cabeza de configurar un nuevo entorno. Cuando trabaja con muchas dependencias de terceros o con lenguajes como C ++ que no tienen un administrador de paquetes, aprende a amarlo.
Y Docker es como un lenguaje universal, hay varias herramientas que pueden trabajar con él, como Kubernetes, Google Cloud Run, AWS ECS, etc. Cuando usamos una herramienta de CI, generalmente construimos y ejecutamos pruebas fuera de un contenedor, pero hay una forma fácil de hacer todo por dentro.
Esto es especialmente útil cuando usa herramientas como GitHub Actions o Jenkins, luego necesita compilar su aplicación solo una vez y usar su imagen de Docker para probar e implementar en cualquier otro lugar.
Escribiré un código simple de Hello World, una prueba y un Dockerfile para ello. Estoy usando Golang, pero puedes usar el mismo para cualquier idioma, solo necesitas conocer los comandos para ejecutarlo y probarlo.
Hice un repositorio de GitHub con algunos ejemplos de código para varios idiomas, no dude en consultarlo:
Aquí está nuestro Hola Mundo:
Aquí está nuestra prueba:
Y aquí está nuestro Dockerfile:
FROM golang:alpine ENV CGO_ENABLED=0 WORKDIR /app COPY . . RUN go build -o main . CMD [ "./main" ]
Tenga en cuenta que usamos CMD
para ejecutar nuestra aplicación, así que cuando usamos el docker run
comando se ejecutará normalmente. Puedes tener un ENTRYPOINT
también.
Ahora, para ejecutar nuestra aplicación, necesitamos compilarla y ejecutarla, así:
$ docker build . -t manualestutor-example $ docker run manualestutor-example
Podemos ver nuestro Hola mundo:
Ahora para ejecutar nuestras pruebas, simplemente pasamos sh -c "TEST_COMMAND"
después del comando docker run. Me gusta esto:
$ docker run manualestutor-example sh -c "go test"
los sh -c
le permite ejecutar cualquier comando dentro de su contenedor. Si tienes un CMD
o entrypoint
setup, lo sobrescribirá.
Si tiene una compilación de varias etapas, debe asegurarse de que sus archivos de código estén presentes en la última etapa y que su comando pueda «verlos». Si tiene un usuario diferente para ejecutar su código binario, asegúrese de que tenga permiso para ejecutar sus pruebas.
Un último consejo, puede crear un script para ejecutar varios tipos de pruebas y hacer la misma estrategia para ejecutarlo.
Espero que te sirva esta información.
Añadir comentario