Рефакторил Dockerfile и конфигурацию Drone для оптимизации кеширования сборки. Обновлённый Dockerfile теперь копирует только файлы зависимостей для кеширования слоёв и упрощает команду сборки. Улучшён файл .drone.yml для использования кеша сборки с целью повышения эффективности.

This commit is contained in:
Struchkov Mark
2025-12-04 20:02:43 +03:00
parent be2084d0f1
commit b4d09c6c65
2 changed files with 10 additions and 8 deletions

View File

@@ -20,7 +20,7 @@ steps:
- echo "$DOCKER_REGISTRY_TOKEN" | docker login docker.struchkov.dev --username $DOCKER_REGISTRY_USER --password-stdin - echo "$DOCKER_REGISTRY_TOKEN" | docker login docker.struchkov.dev --username $DOCKER_REGISTRY_USER --password-stdin
- echo "$DOCKER_REGISTRY_TOKEN" | docker login hub.docker.struchkov.dev --username $DOCKER_REGISTRY_USER --password-stdin - echo "$DOCKER_REGISTRY_TOKEN" | docker login hub.docker.struchkov.dev --username $DOCKER_REGISTRY_USER --password-stdin
- docker buildx create --use - docker buildx create --use
- docker buildx build --push --platform linux/arm/v7,linux/arm64/v8,linux/amd64 -t "docker.struchkov.dev/transmission-telegram:latest" . - docker buildx build --push --platform linux/arm/v7,linux/arm64/v8,linux/amd64 --cache-from type=registry,ref=docker.struchkov.dev/transmission-telegram:buildcache --cache-to type=registry,ref=docker.struchkov.dev/transmission-telegram:buildcache,mode=max -t "docker.struchkov.dev/transmission-telegram:latest" .
trigger: trigger:
branch: branch:
@@ -45,6 +45,6 @@ image_pull_secrets:
# drone sign --save DockerFiles/transmission-telegram # drone sign --save DockerFiles/transmission-telegram
--- ---
kind: signature kind: signature
hmac: 63a5d3f03d7ca0c308b8c97513c78fa8e4a7cacb34531826118a3c17be4a4524 hmac: 0446f310a43b140589dac34f54b5caf39af939b59fe59cf9d743d034c6b8b7fc
... ...

View File

@@ -3,14 +3,16 @@ FROM golang:alpine AS build
RUN apk add --no-cache --no-scripts git RUN apk add --no-cache --no-scripts git
WORKDIR /go/src/transmission-telegram WORKDIR /go/src/transmission-telegram
# Копируем только файлы зависимостей для кэширования слоя
COPY go.mod go.sum* ./
RUN go mod download
# Копируем остальной код
COPY . . COPY . .
RUN go mod init transmission-telegram # Собираем в одну команду
RUN go mod tidy RUN CGO_ENABLED=0 GOOS=linux go build -o main .
RUN go get -d -v ./...
RUN go install -v ./...
RUN go build -o main .
FROM alpine:latest FROM alpine:latest
RUN apk --no-cache --no-scripts add ca-certificates RUN apk --no-cache --no-scripts add ca-certificates