Пример Dockerfile для Go-приложения

Board index Программирование Docker, Kubernetes

Description: Все что относится к Docker, Kubernetes и работе с ними

#1by mexan » 01.02.2025, 13:18

Code: Select all
# 1. Указываем базовый образ c Go. Это официальный образ из Docker Hub.
FROM golang:1.23 AS builder

# 2. Задаём рабочую директорию внутри контейнера. Все последующие команды будут работать относительно этой директории.
WORKDIR /app

# 3. Копируем файлы из текущего каталога на хосте (в памяти вашей машины) в рабочую директорию контейнера.
COPY go.mod go.sum ./
COPY . .

# 4. Скачиваем зависимости для приложения (на основе \go.mod\ и \go.sum\).
RUN go mod download

# 5. Компилируем приложение. Флаг \-o\ задаёт имя выходного бинарного файла.
RUN go build -o app main.go

# --- Многослойная сборка (для уменьшения размера образа) ---

# 6. Задаём минимальный базовый образ для финального контейнера. Убираем лишнее, чтобы финальный образ занимал меньше места.
FROM alpine:latest

# 7. Устанавливаем рабочую директорию в новом контейнере. Это директория, куда мы скопируем скомпилированное приложение.
WORKDIR /root/

# 8. Копируем скомпилированный бинарный файл Go-приложения из предыдущего слоя сборки.
COPY --from=builder /app/app .

# 9. Указываем команду, которая будет запускаться при запуске контейнера.
CMD ["./app"]
Image
mexan
Администратор
Reputation: 0
Posts: 136
Topics: 110

Return to Docker, Kubernetes

cron