Tiempo de lectura: < 1 minuto
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
# Copia el resto del código fuente desde app_go
# Crea un archivo go.mod vacío
# Agrega la dependencia de gorilla/mux
RUN go get github.com/gorilla/mux
RUN CGO_ENABLED=0 GOOS=linux go build -o main .
# Crea la imagen final usando Alpine
# Copia el binario compilado desde el builder
COPY --from=builder /app/main .
# Expone el puerto de la aplicación
# Comando para ejecutar la aplicación
# 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"]
# 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
- "8080:8080" # Mapea el puerto 8080 del contenedor al 8080 de la máquina host
DB_URL: maria_db # Cambia esto por la URL de tu base de datos si es necesario
- ./app:/app # Monta la carpeta app_go en /app del contenedor
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
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.
Post Views: 2
Relacionado