Писал ли Dockerfile

«Писал ли Dockerfile» — вопрос из категории DevOps, который задают на 28% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, писал. Dockerfile — это текстовый файл с инструкциями для сборки Docker-образа. Пример простого Dockerfile для Go-приложения:

# Базовый образ
FROM golang:1.21-alpine

# Рабочая директория
WORKDIR /app

# Копируем модули и скачиваем зависимости
COPY go.mod go.sum ./
RUN go mod download

# Копируем исходный код
COPY . .

# Собираем приложение
RUN go build -o /myapp

# Указываем команду для запуска
CMD ["/myapp"]

Ключевые инструкции:

  • FROM — базовый образ
  • WORKDIR — рабочая директория
  • COPY — копирование файлов
  • RUN — выполнение команд
  • CMD — команда запуска контейнера

Для мультистадийной сборки можно использовать два этапа: сборка и финальный образ с минимальным весом.