Автодеплой через Gitea Actions на cacto-homelab
.gitea/workflows/deploy.yml: пуш в main -> build+up прямо на runner'е (docker.sock смонтирован, registry и SSH не нужны). docker-compose.prod.yml: внешняя сеть caddy_net, container_name cactoz-nginx для reverse_proxy из Caddy. gameserver/Dockerfile: зависимости (uSockets/json) вынесены в отдельный кэшируемый слой — пересборка после правки src/ упала с ~6.5 мин до ~9 сек.
This commit is contained in:
@@ -3,9 +3,17 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
build-essential cmake git ca-certificates zlib1g-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
WORKDIR /app
|
||||
|
||||
# Кэшируемый слой: конфигурация + сборка зависимостей (uSockets, json).
|
||||
# Заглушки вместо src/, чтобы cmake configure не падал на несуществующих
|
||||
# исходниках — они не компилируются, т.к. просим собрать только usockets.
|
||||
COPY CMakeLists.txt ./
|
||||
RUN mkdir src && touch src/main.cpp src/Lobby.cpp src/Lobby.hpp
|
||||
RUN cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build --target usockets -j"$(nproc)"
|
||||
|
||||
# Реальный код поверх уже собранных зависимостей — пересобирается за секунды.
|
||||
COPY src ./src
|
||||
RUN cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j"$(nproc)"
|
||||
RUN cmake --build build --target gameserver -j"$(nproc)"
|
||||
|
||||
FROM debian:bookworm-slim
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends zlib1g \
|
||||
|
||||
Reference in New Issue
Block a user