Published on

自动化部署nextjs网站实践(1)

Table of Contents

jenkins通过docker 安装

1. 拉取镜像

官网下载最新版本的jenkins,命令如下:

docker pull jenkins/jenkins:2.462.1

由于jenkins是通过docker安装的,jenkins容器内是没有docker环境的,本文使用docker outside of docker的方式,让jenkins容器使用宿主机的docker

2. 运行容器

docker run -d \
  -p 8999:8080 \
  -p 50000:50000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v jenkins_home:/var/jenkins_home \
  -e DOCKER_HOST=tcp://host.docker.internal:2375 \
  jenkins/jenkins:latest-jdk17
  
  # -v /var/run/docker.sock:/var/run/docker.sock 将主机的 Docker 套接字挂载到 Jenkins 容器内,使 Jenkins 容器可以直接与主机上的 Docker 守护进程通信。
  # -v /path/on/host/jenkins_home:/var/jenkins_home 挂载volume jenkins_home 数据卷持久化数据
  # -e DOCKER_HOST=tcp://host.docker.internal:2375 \  
  # 在容器内设置环境变量DOCKER_HOST,其值为tcp://host.docker.internal:2375。这告诉容器,Docker客户端应该通过TCP连接到宿主机的Docker守护进程。

3. 安装Docker cli 到jenkins容器

docker exec -it <jenkins_container_id> /bin/bash
cat /etc/os-release # 查看内核版本
apt update
# 遇到权限问题,可以退出容器,开个root权限的shell进来
# docker exec -u 0 -it <jenkins_container_id> /bin/bash
apt install -y docker.io
docker --version
docker ps

4. 查看jenkins初始密码

docker exec -it <jenkins_container_id> bash
cat /var/jenkins_home/secrets/initialAdminPassword
exit