Creando una Aplicación Go en Docker
Creando una Aplicación Go
Empecemos creando una sencilla aplicación Go. Crea un nuevo archivo llamado main.go con el siguiente contenido:
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 :8080")
http.ListenAndServe(":8080", nil)
}
Esta aplicación Go escucha en el puerto 8080 y responde con el mensaje "¡Hola, LabEx!" cuando se realiza una solicitud a la URL raíz (/).
Creando una Imagen Docker
Para ejecutar esta aplicación Go en un contenedor Docker, necesitamos crear una imagen Docker. Crea un nuevo archivo llamado Dockerfile con el siguiente contenido:
FROM golang:1.18-alpine
WORKDIR /app
COPY . .
RUN go build -o main .
CMD ["./main"]
Este Dockerfile:
- Utiliza la imagen oficial
golang:1.18-alpine como imagen base.
- Establece el directorio de trabajo en
/app.
- Copia el código de la aplicación Go al contenedor.
- Compila la aplicación Go y crea un ejecutable llamado
main.
- Define el comando para ejecutar el ejecutable
main cuando se inicia el contenedor.
Construyendo la Imagen Docker
Para construir la imagen Docker, ejecuta el siguiente comando en el mismo directorio que el Dockerfile:
docker build -t my-go-app .
Este comando construye una imagen Docker con la etiqueta my-go-app.
Verificando la Imagen Docker
Puedes listar las imágenes Docker disponibles en tu sistema ejecutando el siguiente comando:
docker images
Debes ver la imagen my-go-app en la lista.
Ahora que tenemos una imagen Docker para nuestra aplicación Go, ejecutémosla en un contenedor Docker.