Docker compose y Docker File para un servidor en Go

Tiempo de lectura: < 1 minuto

Hoy vamos a crear un Docker compose capaz de ejecutar el entorno de Go.

Roof - Pexels

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

Deja un comentario