forked from enviPath/enviPy
51 lines
1.3 KiB
Docker
51 lines
1.3 KiB
Docker
# Custom CI Docker image for Gitea runners
|
|
# Pre-installs Node.js 24, pnpm 10, uv, and system dependencies
|
|
# to eliminate setup time in CI workflows
|
|
|
|
FROM ubuntu:24.04
|
|
|
|
# Prevent interactive prompts during package installation
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && \
|
|
apt-get install -y \
|
|
postgresql-client \
|
|
redis-tools \
|
|
openjdk-11-jre-headless \
|
|
curl \
|
|
ca-certificates \
|
|
gnupg \
|
|
lsb-release \
|
|
git \
|
|
ssh \
|
|
libxrender1 \
|
|
libxext6 \
|
|
libfontconfig1 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Node.js 24 via NodeSource
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - && \
|
|
apt-get install -y nodejs && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Enable corepack and install pnpm 10
|
|
RUN corepack enable && \
|
|
corepack prepare pnpm@10 --activate
|
|
|
|
# Install uv https://docs.astral.sh/uv/guides/integration/docker/#available-images
|
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
|
|
ENV PATH="/root/.cargo/bin:${PATH}"
|
|
|
|
# Verify installations
|
|
RUN node --version && \
|
|
npm --version && \
|
|
pnpm --version && \
|
|
uv --version && \
|
|
pg_isready --version && \
|
|
redis-cli --version && \
|
|
java -version
|
|
|
|
# Set working directory
|
|
WORKDIR /workspace
|