Desarrollo de una aplicación Golang con Docker
Creación de una aplicación Golang
Empecemos creando una sencilla aplicación Golang. Crea un nuevo directorio para tu proyecto y navega hacia él en tu terminal. Luego, crea un nuevo archivo llamado main.go y añade el siguiente código:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, LabEx!")
})
fmt.Println("Iniciando servidor en el puerto 8080...")
http.ListenAndServe(":8080", nil)
}
Este código crea un servidor web simple que escucha en el puerto 8080 y responde con el mensaje "¡Hola, LabEx!" cuando se accede a la URL raíz (/).
Dockerización de la aplicación Golang
Para ejecutar esta aplicación Golang usando Docker, necesitamos crear un Dockerfile. Un Dockerfile es un archivo de texto que contiene un conjunto de instrucciones para construir una imagen Docker.
Crea un nuevo archivo llamado Dockerfile en el mismo directorio que tu archivo main.go y añade el siguiente contenido:
## Usa la imagen oficial de Golang como imagen base
FROM golang:1.16
## Establece el directorio de trabajo en /app
WORKDIR /app
## Copia el código Go al contenedor
COPY . .
## Construye la aplicación Go
RUN go build -o main .
## Exponer el puerto 8080 para el servidor web
EXPOSE 8080
## Ejecuta la aplicación Go cuando se inicia el contenedor
CMD ["./main"]
Este Dockerfile realiza lo siguiente:
- Utiliza la imagen oficial de Golang como imagen base.
- Establece el directorio de trabajo en
/app.
- Copia el código Go al contenedor.
- Construye la aplicación Go y nombra el ejecutable
main.
- Expone el puerto 8080 para el servidor web.
- Ejecuta la aplicación Go cuando se inicia el contenedor.
Construcción de la imagen Docker
Ahora, construyamos la imagen Docker para nuestra aplicación Golang. En tu terminal, ejecuta el siguiente comando:
docker build -t labex/golang-app .
Este comando construye una imagen Docker con la etiqueta labex/golang-app utilizando el Dockerfile en el directorio actual.
Ejecución del contenedor Docker
Una vez construida la imagen, puedes ejecutar la aplicación Golang en un contenedor Docker usando el siguiente comando:
docker run -p 8080:8080 labex/golang-app
Este comando ejecuta el contenedor labex/golang-app y mapea el puerto 8080 del host al puerto 8080 en el contenedor.
Ahora puedes abrir tu navegador web y navegar a http://localhost:8080 para ver el mensaje "¡Hola, LabEx!".
Siguiendo estos pasos, has desarrollado e implementado con éxito una aplicación Golang usando Docker. En la siguiente sección, exploraremos cómo implementar esta aplicación Golang basada en Docker.