DevGang
Авторизоваться

Уменьшить размер образа докера для приложения golang 

Вы когда-нибудь долго ждали, чтобы отправить образ докера приложения golang в docker hub или другой реестр контейнеров? Если да, то эта статья может быть вам полезна.

Идея в том, чтобы уменьшить размер образа. Мы можем сделать это с помощью многоэтапной сборки. Сначала нам понадобится образ golang для построения кода, а результат будет двоичным файлом. А затем для следующего этапа нам понадобится рабочий образ и скопируйте двоичный файл из первой сборки.

Это пример кода приложения golang.

package main

import "fmt"

func main() {
	fmt.Println("testing 123")
}

И это dockerfile без многоступенчатой сборки.

FROM golang:1.16
WORKDIR /app
COPY . .
RUN go build -o app
CMD ["./app"]

Размер этого изображения 921 МБ.

А это новый dockerfile с многоэтапной сборкой.

FROM golang:1.16 as gobuild
WORKDIR /app
COPY . .
RUN go build -o app

FROM scratch
WORKDIR /app
COPY --from=gobuild /app/app .
CMD ["./app"]

Размер этого изображения составляет 1,94 МБ.

#Golang #Docker
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

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

Попробовать

В подарок 100$ на счет при регистрации

Получить