docker 构建Jenkins并配置

1 Docker安装

1.安装Docker服务

复制代码
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

systemctl start docker
systemctl enable docker

2.验证docker是否安装成功

复制代码
docker run hello-world

3.配置镜像加速

复制代码
vi /etc/docker/daemon.json

{
  "registry-mirrors": ["https://*****.mirror.aliyuncs.com"]
}

systemctl daemon-reload
systemctl restart docker

4.安装Docker-composer服务

复制代码
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

5.给予运行权限

复制代码
chmod +x /usr/local/bin/docker-compose

6.验证是否安装成功

复制代码
验证docker-composer是否安装成功

7.使用docker命令安装Jenkins

7.1 Jenkins安装目录
复制代码
app
└── data
    ├── deploy
    │   └── jenkins
    │       ├── config
    │       ├── docker-composer.yml
    │       └── Dockerfile
    └── jenkins
        ├── certs
        └── data
7.2 创建部署目录和数据目录
复制代码
# 存放docker-compose相关配置文件
mkdir -p /app/data/deploy/jenkins 
# 存放Jenkins证书相关文件
mkdir -p /app/data/jenkins/certs 
# 存放Jenkins数据文件
mkdir -p /app/data/jenkins/data 
# 修改权限
cd /app/data
chmod 775 -R jenkins/
chown -R 1000:1000 jenkins/
7.3 创建相应文件配置
复制代码
cd /app/data/deploy/jenkins/
7.7 构建启动Jenkins镜像
bash 复制代码
#构建镜像
docker-compose -f docker-composer.yml build

#启动服务
docker-compose -f docker-composer.yml up -d

#查看日志获取首次登录密码
docker logs -f jenkins-blueocean

8 使用docker命令启动

复制代码
docker run -d \
  --name jenkins \
  -u root \
  -p 8080:8080 \
  -p 50000:50000 \
  -v /app/data/jenkins/data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $(which docker):/usr/bin/docker \
  -v /app/data/jenkins/config/apache-maven-3.8.8/conf/settings.xml:/var/jenkins_home/maven/settings.xml \
  jenkins/jenkins:lts
8.1 下载镜像
8.2 Jenkins配置
8.3 插件安装

如果没有对应插件,去插件管理界面自己搜索下载:

8.4 创建任务
复制代码
clean install -Dmaven.test.skip=true
复制代码
#!/bin/bash
set -e

cd test1

APP_NAME="test1"
IMAGE_NAME="test-ai-app"
CONTAINER_NAME="test-ai-container"
PORT=8889

echo "📦 Building JAR..."
mvn clean package -DskipTests

echo "🏗️ Building Docker image..."
docker build -t $IMAGE_NAME .

echo "⏹️ Stopping old container (if exists)..."
docker stop $CONTAINER_NAME || true
docker rm $CONTAINER_NAME || true

echo "🚀 Starting new container..."
docker run -d \
  --name $CONTAINER_NAME \
  -p $PORT:$PORT \
  $IMAGE_NAME

echo "✅ $APP_NAME is running in container '$CONTAINER_NAME' on port $PORT"
echo "📄 Logs: docker logs -f $CONTAINER_NAME"