Я Backend разработчик на Python, и в одном из проектов мне понадобилось настроить сборку Docker-образа в GitLab CI/CD. Базовую настройку я сделал без проблем, но я хотел ускорить сборку по максимуму. И здесь я обнаружил Cache mount или кэш-монтирование.
Рубрика «dockerfile»
Кэш-монтирование или Cache mount в Docker. Использование кэш-монтирования в GitLab CI-CD
2026-02-11 в 17:21, admin, рубрики: buildkit, cache, CICD, deploy, dind, docker, dockerfile, Git, gitlab, pythonКак я уменьшил Docker-образ Go-приложения с 1.92 GB до 9 MB
2025-11-01 в 6:13, admin, рубрики: backend, devops, docker, docker desktop, dockerfile, Go, микросервисы, минимизация, оптимизацияВведение
Первый Docker-образ для моего Go-приложения весил 1.92 GB. Для микросервиса на 100 строк — абсурдно. Решил разобраться, куда именно уходит место и как добиться максимально лёгкого образа.
За несколько итераций оптимизации удалось уменьшить образ в 91 раз — до 21 MB production вариант. С дополнительным UPX-сжатием в 213 раз — до 9 MB.
В статье
-
Максимальная оптимизация Docker-образа для Go
-
Выбор базового образа и техник для каждого сценария
Создал простенький мониторинг микросервис
Функционал:
-
/healthЧитать полностью »
Как собрать Docker-образ, который можно запускать в проде (а не только у себя на ноуте)
2025-06-10 в 11:17, admin, рубрики: cluster, deploy, deployment tools, docker, dockerfile, security, stableЕсли ты пишешь Dockerfile, скорее всего, он работает. Но вопрос не в том, работает ли. Вопрос в другом: будет ли он работать через неделю, на другом сервере, в CI/CD, на чужом железе — и будет ли это безопасно. Или всё сломается, потому что ты не зафиксировал зависимости, положился на latest, и забыл про то, что ENTRYPOINT — это тоже код.
В этой статье — как собрать нормальный Docker-образ, который предсказуем, устойчив и готов к продакшену.
1. Первая ошибка: ты начинаешь с плохой базы
Многие берут базовый образ, не задумываясь. Например, python:3.12Читать полностью »
Практика создания кастомных сборок Spark Kubernetes Executor
2025-03-24 в 10:16, admin, рубрики: cassandra, docker, dockerfile, executor, kubernetes, pyspark, sparkПоделюсь с коллегами практикой создания Docker-сборок на базе Spark разных версий, которые могут запускаться как Spark Kubernetes Executors для параллельного выполнения Spark-задач в кластере.
В нашем конкретном случае сборки включают Pyspark и Cassandra Connector, однако вы можете использовать этот материал как набор практических примеров, чтобы сконструировать собственные Docker-сборки для Spark на другом стеке или с другими приложениями.
Docker для начинающих: простое развертывание приложения за несколько шагов
2025-03-06 в 12:15, admin, рубрики: docker, docker-compose, dockerfile, java, контейнеризация, контейнеры docker, приложения, развертывание приложенийВсем привет! Для своей первой статьи я решил выбрать проблему, с которой сам столкнулся при изучении Java и попытке упаковки приложения в докер-контейнер. К сожалению не нашел ни одной исчерпывающей статьи, как это делать, поэтому решил написать свою.
Давайте писать удобное локальное окружение…
2025-02-12 в 15:15, admin, рубрики: development, devops, django, docker, docker-compose, dockerfile, environment, PDM, python, webВсем привет, меня зовут Аббакумов Валерий.
Я Python разработчик, в основном занимаюсь бэкэндом веб приложений и каждый раз когда дело доходит до разворачивания нового проекта по моей щеке начинает течь слеза.
Думаю, никто не будет спорить с тем, что локальное разворачивание нового проекта может вызвать неограниченное количество проблем. В данной статье я хочу представить выстраданную годами структуру проекта и организацию его окружения, которые помогают избежать большей части проблем, связанных с локальным разворачиванием проекта.
Подмания: запускаем графические приложения в контейнерах
2024-11-12 в 8:15, admin, рубрики: docker, dockerfile, podman, десктопное приложение, десктопные приложения, контейнер, контейнеризацияРекомендации по работе с Docker для Golang-разработчиков (Multistage Building)
2022-01-23 в 11:37, admin, рубрики: docker, dockerfile, Go, golangСтарайтесь всегда использовать многоэтапную сборку, для создания более компактных Docker образов. Давайте, рассмотрим на примере, как многоэтапная сборка позволяет значительно уменьшить размер Docker образа. В качестве примера, мы будем использовать простое веб-приложение на Golang:
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", HelloServer)
fmt.Printf("Starting server at port 8080n")
if err := http.ListenAndServe(":8080", nil); err != nil {
log.Fatal(err)
}
}
func HelloServer(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello world")
}
Сначала, соберем Docker образ в один этап:
Читать полностью »

