下面我将详细讲解Docker容器使用Jenkins部署Web项目的完整攻略。
主要步骤
- 安装Docker和Jenkins并配置好环境
安装Docker和Jenkins可以参考Docker官网和Jenkins官网,这里不再赘述。安装完成后需要做一些环境配置,比如启动Docker服务并设置防火墙规则,配置Jenkins的基本参数等等。
- 编写Dockerfile文件
在 Dockerfile 中定义如何构建镜像,具体可以参考如下示例:
FROM tomcat:9-jdk11-openjdk-slim-buster
RUN rm -rf /usr/local/tomcat/webapps/*
COPY target/demo.war /usr/local/tomcat/webapps/ROOT.war
EXPOSE 8080
CMD ["catalina.sh", "run"]
该 Dockerfile 的功能是基于 tomcat:9-jdk11-openjdk-slim-buster
镜像构建一个新镜像,然后将 WAR 包复制到新镜像里,并启动容器。注意,在构建新镜像时要避免将不必要的文件复制到镜像里,以减小镜像的体积。
- 构建Docker镜像
执行以下命令构建 Docker 镜像:
docker build -t demo .
其中的 demo
是新镜像的名称,注意这个名称不能重复。
- 使用Jenkins进行自动化部署
在 Jenkins 里配置自动化部署。
首先,在 Jenkins 的插件管理页面安装“Publish Over SSH”插件,这个插件可以帮我们在远程服务器上运行命令。
接着,在 Jenkins 的配置页面里,配置远程服务器的SSH连接信息,输入远程服务器的IP地址、端口、用户名和密码。
然后,在 Jenkins 里创建一个新的自由风格的项目,输入项目名称和描述,并在“源码管理”选项卡中配置 Git 仓库的地址和分支名称。
在“构建触发器”选项卡中,配置自动构建选项,比如定时构建等。
接下来,在“构建”选项卡中,选择“执行 shell 脚本”命令,在命令框中输入以下内容:
sudo docker stop container-name || true
sudo docker rm container-name || true
sudo docker run -d --name container-name -p 80:8080 demo
其中的 container-name
是容器名称,可以自行定义。这个命令的作用是停止并删除旧容器,重新启动一个新容器,并将容器的 8080
端口映射到主机的 80
端口。
最后,在 Jenkins 里保存项目配置并执行构建。
示例说明
示例1:使用Docker和Jenkins部署Spring Boot应用程序
参考步骤1和步骤2,在 Dockerfile 中添加如下内容:
FROM openjdk:8-jdk-alpine
COPY target/app.jar /app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
该 Dockerfile 的功能是基于 openjdk:8-jdk-alpine
镜像构建一个新镜像,将项目的 jar 包复制到新镜像里,并启动应用程序。这个配置文件用于部署 Spring Boot 应用程序。
然后,参考步骤3和步骤4,执行自动化部署。
示例2:使用Docker和Jenkins部署Node.js应用程序
参考步骤1和步骤2,在 Dockerfile 中添加如下内容:
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
该 Dockerfile 的功能是基于 node:14
镜像构建一个新镜像,将项目的代码复制到新镜像里,并启动应用程序。这个配置文件用于部署 Node.js 应用程序。
然后,参考步骤3和步骤4,执行自动化部署。
以上就是使用 Docker 容器和 Jenkins 进行 Web 项目部署的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker容器使用jenkins部署web项目(总结) - Python技术站