53 lines
1.4 KiB
Docker
53 lines
1.4 KiB
Docker
# Упрощенный Dockerfile для демонстрации Phantom Protocol
|
||
# Без сетевых функций для совместимости с sandbox средой
|
||
|
||
FROM ubuntu:22.04
|
||
|
||
# Установка базовых зависимостей
|
||
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 \
|
||
curl \
|
||
&& rm -rf /var/lib/apt/lists/*
|
||
|
||
# Создание пользователя phantom
|
||
RUN useradd -m -s /bin/bash phantom
|
||
|
||
# Копирование исходного кода
|
||
COPY src/ /home/phantom/src/
|
||
COPY protos/ /home/phantom/protos/
|
||
COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh
|
||
COPY docker/healthcheck.sh /usr/local/bin/healthcheck.sh
|
||
|
||
# Установка прав
|
||
RUN chmod +x /usr/local/bin/entrypoint.sh /usr/local/bin/healthcheck.sh
|
||
RUN chown -R phantom:phantom /home/phantom/
|
||
|
||
# Переключение на пользователя phantom
|
||
USER phantom
|
||
WORKDIR /home/phantom
|
||
|
||
# Генерация protobuf файлов
|
||
RUN cd protos && ./generate_protos.sh
|
||
|
||
# Сборка проекта
|
||
RUN cd src && make clean && make phantomd
|
||
|
||
# Создание директорий
|
||
RUN mkdir -p /home/phantom/data /home/phantom/logs
|
||
|
||
# Порты
|
||
EXPOSE 8080 8081
|
||
|
||
# Точка входа
|
||
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
||
CMD ["phantomd"]
|
||
|