Hoy vamos a crear un Docker compose capaz de ejecutar el entorno de Go.
Primero vamos a crear un Dockerfile con la configuración para Go Lang:
# Usa la imagen base de Go 1.23 FROM golang:1.23 AS builder # Establece el directorio de trabajo WORKDIR /app # Copia el resto del código fuente desde app_go COPY app/. . # Crea un archivo go.mod vacío RUN go mod init app # Agrega la dependencia de gorilla/mux RUN go get github.com/gorilla/mux # Compila la aplicación RUN CGO_ENABLED=0 GOOS=linux go build -o main . # Crea la imagen final usando Alpine FROM alpine:latest # Copia el binario compilado desde el builder WORKDIR /root/ COPY --from=builder /app/main . # Expone el puerto de la aplicación EXPOSE 8080 # Comando para ejecutar la aplicación CMD ["./main"]
Tenemos que tener nuestra aplicación dentro de una carpeta llamada ./app
Después iniciará toda la aplicación.
Ahora vamos a crear el docker-compose.yml
services: app: build: context: . ports: - "8080:8080" # Mapea el puerto 8080 del contenedor al 8080 de la máquina host environment: DB_URL: maria_db # Cambia esto por la URL de tu base de datos si es necesario volumes: - ./app:/app # Monta la carpeta app_go en /app del contenedor restart: unless-stopped
Y con esto solo tenemos que hacer un:
docker compose up -d
Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.