Добавлены скрипты сборки для кроссплатформенных двоичных файлов и лицензия GPL.

- Добавлен файл LICENSE с лицензией GNU General Public License версии 3.0.
- Создан скрипт PowerShell (build-all.ps1) для сборки двоичных файлов Windows и Linux из Windows с использованием кросс-компиляции.
- Разработан скрипт сборки Linux (build-linux.sh) для сборки двоичных файлов Linux.
- Реализован скрипт PowerShell (build-windows.ps1) для сборки двоичных файлов Windows.
- Каждый скрипт сборки включает упаковку и генерацию контрольной суммы SHA256 для двоичных файлов.
This commit is contained in:
Dmitriy Fofanov
2025-11-05 13:05:49 +03:00
parent 77af408c9e
commit eee9a4a093
33 changed files with 1091 additions and 126 deletions

View File

@@ -1,12 +1,12 @@
# Dockerfile для PDF Compressor
# Dockerfile для Compress
# Multi-stage сборка для оптимизации размера образа
# Стадия 1: Сборка приложения
FROM golang:1.24-alpine AS builder
# Метаданные
LABEL maintainer="PDF Compressor Team"
LABEL description="PDF Compressor - автоматическое сжатие PDF файлов"
LABEL maintainer="Compress Team"
LABEL description="Compress - автоматическое сжатие PDF и изображений"
LABEL version="1.0.0"
# Установка необходимых пакетов для сборки
@@ -40,7 +40,7 @@ USER builder
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
-ldflags='-w -s -extldflags "-static"' \
-a -installsuffix cgo \
-o pdf-compressor cmd/main.go
-o compress cmd/main.go
# Стадия 2: Минимальный runtime образ
FROM alpine:3.19
@@ -60,7 +60,7 @@ RUN mkdir -p /app/input /app/output /app/config /app/logs && \
chown -R pdfuser:pdfuser /app
# Копирование скомпилированного приложения
COPY --from=builder /app/pdf-compressor /usr/local/bin/pdf-compressor
COPY --from=builder /app/compress /usr/local/bin/compress
# Копирование конфигурационного файла по умолчанию
COPY config.yaml /app/config/config.yaml
@@ -86,18 +86,18 @@ VOLUME ["/app/input", "/app/output", "/app/config", "/app/logs"]
# Healthcheck для мониторинга
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD pdf-compressor --version || exit 1
CMD compress --version || exit 1
# Команда запуска
ENTRYPOINT ["pdf-compressor"]
ENTRYPOINT ["compress"]
CMD ["--config", "/app/config/config.yaml"]
# Метаданные образа
LABEL org.opencontainers.image.title="PDF Compressor"
LABEL org.opencontainers.image.title="Compress"
LABEL org.opencontainers.image.description="Автоматическое сжатие PDF файлов с TUI интерфейсом"
LABEL org.opencontainers.image.version="1.0.0"
LABEL org.opencontainers.image.created="2024"
LABEL org.opencontainers.image.vendor="PDF Compressor Team"
LABEL org.opencontainers.image.vendor="Compress Team"
LABEL org.opencontainers.image.licenses="MIT"
LABEL org.opencontainers.image.documentation="https://github.com/your-username/pdf-compressor"
LABEL org.opencontainers.image.source="https://github.com/your-username/pdf-compressor"
LABEL org.opencontainers.image.documentation="https://github.com/your-username/compress"
LABEL org.opencontainers.image.source="https://github.com/your-username/compress"