unified: Phantom Protocol 2025 complete archive integration

This commit is contained in:
NW
2026-05-18 17:28:53 +01:00
commit b680c5aeca
553 changed files with 112091 additions and 0 deletions

101
release/Dockerfile Normal file
View File

@@ -0,0 +1,101 @@
# Dockerfile для Phantom Protocol
# Многоэтапная сборка для оптимизации размера образа
# Этап 1: Сборка
FROM ubuntu:22.04 AS builder
# Метаданные образа
LABEL maintainer="Phantom Protocol Modernization Team"
LABEL description="Phantom Protocol - Anonymous Network Communication System"
LABEL version="2025-modernized"
# Установка переменных окружения для неинтерактивной установки
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=UTC
# Установка зависимостей для сборки
RUN apt-get update && apt-get install -y \
build-essential \
gcc \
make \
libssl-dev \
libxml2-dev \
pkg-config \
protobuf-c-compiler \
libprotobuf-c-dev \
git \
&& rm -rf /var/lib/apt/lists/*
# Создание рабочей директории
WORKDIR /build
# Копирование исходного кода
COPY . .
# Генерация protobuf файлов
WORKDIR /build/protos
RUN chmod +x generate_protos.sh && ./generate_protos.sh
# Сборка проекта
WORKDIR /build/src
RUN make clean && make phantomd
# Этап 2: Рабочий образ
FROM ubuntu:22.04 AS runtime
# Установка переменных окружения
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=UTC
# Установка только необходимых runtime зависимостей
RUN apt-get update && apt-get install -y \
libssl3 \
libxml2 \
libprotobuf-c1 \
iproute2 \
iptables \
net-tools \
iputils-ping \
curl \
&& rm -rf /var/lib/apt/lists/*
# Создание пользователя phantom для безопасности
RUN groupadd -r phantom && useradd -r -g phantom -d /home/phantom -s /bin/bash phantom
# Создание необходимых директорий
RUN mkdir -p /home/phantom/{config,logs,data,keys} \
&& chown -R phantom:phantom /home/phantom
# Копирование собранных бинарных файлов
COPY --from=builder /build/src/phantomd /usr/local/bin/
COPY --from=builder /build/src/test/*.conf /home/phantom/config/
# Копирование скриптов запуска
COPY docker/entrypoint.sh /usr/local/bin/
COPY docker/generate-config.sh /usr/local/bin/
COPY docker/healthcheck.sh /usr/local/bin/
# Установка прав на выполнение
RUN chmod +x /usr/local/bin/entrypoint.sh \
&& chmod +x /usr/local/bin/generate-config.sh \
&& chmod +x /usr/local/bin/healthcheck.sh
# Переключение на пользователя phantom
USER phantom
WORKDIR /home/phantom
# Открытие портов
# 8080 - основной порт Phantom Protocol
# 8081 - порт для Kademlia DHT
EXPOSE 8080 8081
# Настройка health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
CMD /usr/local/bin/healthcheck.sh
# Точка входа
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
# Команда по умолчанию
CMD ["phantomd"]