Red de conocimiento informático - Material del sitio web - Cómo implementar una aplicación web Go usando Docker

Cómo implementar una aplicación web Go usando Docker

Paso 1: crear Dockerfile

El siguiente Dockerfile cumple con los requisitos anteriores:

**FROM** golang:1.6

*# Instale las herramientas de desarrollo beego y bee *

**RUN** ve a obtener github.com/astaxie/beego && ve a github.com/beego/bee

*# Exponer la aplicación en el puerto 8080*

**EXPOSE** 8080

*# Establezca el punto de entrada del contenedor para ejecutar la aplicación *

*# y monitoree el comando bee para detectar cambios*

**CMD** ["bee ", "run"]

La primera línea,

FROM golang:1.6

Usar archivo de imagen oficial de Go como imagen base. Esta imagen viene con Go 1.6 preinstalado. La imagen tiene $GOPATH configurado en /go . Se puede acceder a todos los paquetes instalados en /go/src mediante el comando go.

La segunda línea,

EJECUTAR go get github.com/astaxie/beego && go get github.com/beego/bee

Instalar el paquete de software beego y herramientas para abejas. El paquete beego se utilizará en la aplicación. La herramienta bee se utiliza para recargar nuestro código durante el desarrollo.

La tercera línea,

EXPOSE 8080

abre el puerto 8080 para la aplicación utilizando un contenedor en el host de desarrollo.

La última línea,

CMD ["bee", "run"]

utiliza el comando bee para iniciar una recarga en línea de la aplicación.

Paso 2: crear la imagen

Después de crear el archivo Docker, ejecute el siguiente comando para crear la imagen:

docker build -t ma-image.

Al ejecutar el comando anterior se creará una imagen llamada ma-image. La imagen ahora está disponible para cualquiera que use la aplicación. Esto garantizará que el equipo tenga acceso a un entorno de desarrollo unificado.

Para ver una lista de imágenes en su sistema, ejecute el siguiente comando:

docker images

Esta línea de comando generará algo similar a:

imágenes acoplables

p>

ETIQUETA DEL REPOSITORIO ID DE IMAGEN TAMAÑO CREADO

ma-image última 8d53aa0dd0cb Hace 31 segundos 784,7 MB

golang 1.6 22a6ecf1f7cc Hace 5 días 743,9 MB

Tenga en cuenta que los nombres y números exactos de las imágenes pueden diferir, pero al menos debería ver una lista que contenga golang y ma-images.

Paso 3: ejecutar el contenedor

Una vez que ma-image esté completo, puede iniciar el contenedor usando el siguiente comando:

docker run -it -- rm --name instancia-ma -p 8080:8080 \

-v /app/MathApp:/go/src/MathApp -w /go/src/MathApp ma-image

Analicemos Ejecute el comando anterior para ver qué hace.

. El comando docker run se utiliza para iniciar un contenedor desde una imagen

. El indicador -it inicia el contenedor de forma interactiva

.

El indicador --rm limpia el contenedor después de cerrarlo

. --name ma-instance Nombra la instancia principal del contenedor

. -p 8080:8080 El indicador -p 8080:8080 permite el acceso al contenedor a través del puerto 8080

. -v /app/MathApp:/go/src/MathApp es un poco más complicado. Asigna /app/MathApp en el host a /go/src/MathApp en el contenedor, lo que hará que los archivos de desarrollo sean accesibles dentro y fuera del contenedor.

La sección .ma-image declara la imagen que utilizará el contenedor.

Al ejecutar el comando anterior se iniciará el contenedor Docker. El contenedor desarrolla el puerto 8080 para su propia aplicación. Siempre que se realicen cambios, automáticamente refactorizará su propia aplicación. Verá el siguiente resultado en la consola:

bee :1.4.1

beego :1.6.1

Go :go version go1.6 linux/ amd64

2016/04/10 13:04:15 [INFO] Usando 'MathApp' como 'nombre de aplicación'

2016/04/10 13:04:15 [INFO] Inicializando Observador...

2016/04/10 13:04:15 Directorio [TRAC](/go/src/MathApp)

2016/04/10 13:04: 15 [INFO] Comenzar a construir...

2016/04/10 13:04:18 [SUCC] Compilado exitosamente

2016/04/10 13:04:18 [INFO] Reinicie MathApp...

2016/04/10 13:04:18 [INFO] ./MathApp se está ejecutando...

2016/04/10 13:04 :18 [asm_amd64.s:1998] [I] servidor http ejecutándose en :8080