Files
Carbon/Dockerfile
Azreyo 8d26913c62 Develop (#7)
* Add Dockerfile and docker-compose.yml for containerized setup; create .dockerignore

* Update CI pipeline and Docker configuration for improved build process and health checks
2025-11-24 12:42:34 +00:00

60 lines
1.3 KiB
Docker

FROM debian:bookworm-slim AS builder
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
apt-utils \
gcc \
make \
libssl-dev \
libmagic-dev \
libnghttp2-dev \
pkg-config \
build-essential \
git \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /build
RUN git clone --depth 1 --branch main https://github.com/Azreyo/Carbon.git . && \
make clean && make release
FROM debian:bookworm-slim
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
apt-utils \
libssl3 \
libmagic1 \
libnghttp2-14 \
ca-certificates \
curl \
&& rm -rf /var/lib/apt/lists/*
RUN useradd -m -u 1000 -s /bin/bash carbon
WORKDIR /app
RUN mkdir -p /app/www /app/log /app/ssl/cert && \
chown -R carbon:carbon /app
COPY --from=builder /build/server /app/
COPY --from=builder /build/server.conf /app/
COPY --from=builder /build/www/ /app/www/
COPY --from=builder /build/README.md /app/
COPY --from=builder /build/DOCUMENTATION.md /app/
COPY --from=builder /build/LICENSE /app/
RUN chown -R carbon:carbon /app
USER carbon
EXPOSE 8080 443
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost:8080/ || exit 1
CMD ["./server"]