fix: go.work replace + test destroy targets

This commit is contained in:
“Naeel”
2026-03-23 09:30:37 +04:00
parent 2e7cd7f4f7
commit cb77a7f68e
3 changed files with 141 additions and 13 deletions
+7 -5
View File
@@ -1,4 +1,4 @@
# Изменено: 2026-03-22 — v0.1.3: server/ субдиректория + go.work для поддержки пользовательских go.mod.
# Изменено: 2026-03-23 — v0.1.4: fix go.work (убран replace, добавлен sed rename модуля).
# Base builder image для Go 1.23 serverless функций.
# Это BUILDER-образ: golang:1.23-alpine + server/ + pre-cached зависимости.
# go mod download кеширует pgx/v5 в /root/go/pkg/mod — kaniko не скачивает их при каждой сборке.
@@ -7,14 +7,16 @@
# FROM naeel/sless-runtime-go1.23:v0.1.3 AS builder
# WORKDIR /app
# COPY . /app/handler/
# RUN [ -f /app/handler/go.mod ] || printf 'module sless/fn/handler\n\ngo 1.23\n' > /app/handler/go.mod
# RUN printf 'go 1.23\n\nuse ./server\nuse ./handler\n\nreplace sless/fn/handler => ./handler\n' > /app/go.work
# RUN [ -f /app/handler/go.mod ] && sed -i 's/^module .*/module sless\/fn\/handler/' || printf '...' > /app/handler/go.mod
# RUN printf 'go 1.23\n\nuse ./server\nuse ./handler\n' > /app/go.work # БЕЗ replace!
# RUN printf '\nrequire sless/fn/handler v0.0.0\n' >> /app/server/go.mod
# RUN CGO_ENABLED=0 go build -o /server ./server
# FROM alpine:3.20
# COPY --from=builder /server /server
#
# Почему server/ субдиректория: go.work + replace позволяет пользователю иметь любой go.mod
# с любыми зависимостями. Вложенные модули (nested) поддерживаются через workspace.
# Почему replace убран: Go 1.23 запрещает replace для модуля, который одновременно в workspace.
# Ошибка: "workspace module sless/fn/handler is replaced at all versions in the go.work file".
# Решение: handler всегда переименовывается в sless/fn/handler через sed — replace не нужен.
FROM golang:1.23-alpine