打包镜像

FROM docker.xyh.moe/jenkins/jenkins:lts-jdk21

USER root

# 写入 Debian 主源
RUN tee /etc/apt/sources.list.d/debian.sources > /dev/null <<EOF
Types: deb
URIs: https://mirrors.nju.edu.cn/debian
Suites: bookworm bookworm-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF

# 写入 Debian 安全更新源
RUN tee /etc/apt/sources.list.d/debian-security.sources > /dev/null <<EOF
Types: deb
URIs: https://mirrors.nju.edu.cn/debian-security
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF

# 添加 Docker GPG key
RUN install -m 0755 -d /etc/apt/keyrings && \
    curl -fsSL https://mirrors.nju.edu.cn/docker-ce/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
    chmod a+r /etc/apt/keyrings/docker.gpg

# 写入 Docker 源
RUN tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://mirrors.nju.edu.cn/docker-ce/linux/debian
Suites: bookworm
Components: stable
Signed-By: /etc/apt/keyrings/docker.gpg
EOF

# 安装 Docker CE
RUN apt-get update && \
    apt-get install -y docker-ce && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# 将 jenkins 用户加入 docker 组
RUN usermod -aG docker jenkins

USER jenkins

启动

name: jenkins
services:
  jenkins:
    build:
      context: .
      dockerfile: Dockerfile
    image: docker.xyh.moe/jenkins/jenkins:lts-jdk21-docker
    restart: always
    environment:
      - TZ=Asia/Shanghai
    ports:
      - 8080:8080
    volumes:
      - "./data:/var/jenkins_home"
      - "/var/run/docker.sock:/var/run/docker.sock"