truck-company/Dockerfile

36 lines
877 B
Docker

# Этап сборки
FROM docker.io/library/golang:1.22.2 AS builder
# Рабочая директория
WORKDIR /build
# Копируем файлы зависимостей
COPY go.mod go.sum ./
RUN go mod tidy
RUN go mod download
# Копируем весь код
COPY . .
RUN ls
# Собираем приложение (статически линкуем для Alpine)
RUN CGO_ENABLED=0 GOOS=linux go build -o /app ./cmd/api
# Этап запуска
FROM docker.io/library/alpine:latest
# Рабочая директория
WORKDIR /app
# Копируем бинарник из этапа сборки
COPY --from=builder /app .
# Копируем .env файл (если он есть в проекте)
COPY .env .env
# Порт, который будет слушать приложение
EXPOSE 8080
# Команда запуска
CMD ["./app"]