Docker容器使用jenkins部署web项目(总结)

下面我将详细讲解Docker容器使用Jenkins部署Web项目的完整攻略。

主要步骤

  1. 安装Docker和Jenkins并配置好环境

安装Docker和Jenkins可以参考Docker官网Jenkins官网,这里不再赘述。安装完成后需要做一些环境配置,比如启动Docker服务并设置防火墙规则,配置Jenkins的基本参数等等。

  1. 编写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 包复制到新镜像里,并启动容器。注意,在构建新镜像时要避免将不必要的文件复制到镜像里,以减小镜像的体积。

  1. 构建Docker镜像

执行以下命令构建 Docker 镜像:

docker build -t demo .

其中的 demo 是新镜像的名称,注意这个名称不能重复。

  1. 使用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技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 一文带你了解linux中Docker背后的原理

    一文带你了解Linux中Docker背后的原理 简介 Docker是一种开源的容器化平台,可以帮助开发人员、系统管理员和DevOps工程师在多种环境中快速、便捷地构建、打包、部署和管理应用程序。本文将详细介绍Docker的原理。 Docker的基本概念 在开始之前,有必要介绍一些Docker的基本概念: 镜像(Image):是Docker容器的静态模板,类似…

    Docker 2023年5月16日
    00
  • Docker 基础之Dockerfile命令详解

    《Docker 基础之Dockerfile命令详解》是一篇介绍Dockerfile命令的文章,下面我们来一步步详细讲解。 1. Dockerfile 概述及其命令基础 Dockerfile 是由 Docker 提供用于定义镜像的文件格式。Docker 通过读取 Dockerfile 中的指令来自动构建镜像,Dockerfile 是构建 Docker 镜像的基…

    Docker 2023年5月16日
    00
  • docker报错:denied: requested access to the resource is denied unauthorized: authentication required

    errors:denied: requested access to the resource is deniedunauthorized: authentication required。 解决方案 修改发布的镜像的REPOSITORY为自己的账户名+镜像,比如我的用户名是123456。 docker tag nginx 123456/nginx:1.0 …

    Docker 2023年4月13日
    00
  • docker swarm 集群进入某节点容器失败的原因及解决方法

    今日在自己的docker swarm 测试环境中,想进入某个节点的容器去查看下,结果进入容器失败,并且报了如下错误信息:     [root@worker1 ~]# docker exec -it 9a6f61107d67 /bin/bashrpc error: code = 2 desc = oci runtime error: exec failed: …

    Docker 2023年4月16日
    00
  • 基于docker的 Hyperledger Fabric 多机环境搭建(上)

    环境:ubuntu 16.04 Docker  17.04.0-ce go 1.7.4 consoul v0.8.0.4   ======================================================================= 一、项目准备 想必能搜到这篇文章的人对Hyperledger Fabric(以下简称Fab…

    Docker 2023年4月16日
    00
  • Docker基础教程之Dockerfile语法详解

    我会为你详细讲解以下“Docker基础教程之Dockerfile语法详解”的攻略及示例说明。 Dockerfile语法详解 Dockerfile是用于创建Docker镜像的脚本文件,其内容包含镜像的构建过程和一系列的指令。下面详细解释Dockerfile的语法: 1. 基础镜像 在Dockerfile中,你需要指定一个基础镜像,作为你构建新镜像的基础。例如:…

    Docker 2023年5月16日
    00
  • Docker 常用命令整理(实用篇)

    下面是对 “Docker 常用命令整理(实用篇)” 这篇文章的详细讲解: 1. 概览 这篇文章主要介绍了 Docker 常用命令,通过示例说明了这些命令的具体用法和注意事项。整篇文章分为以下几个部分: 安装 Docker 基本命令 镜像管理 容器管理 网络管理 数据管理 2. 安装 Docker 该文章介绍了如何在 Ubuntu 和 MacOS 上安装 Do…

    Docker 2023年5月16日
    00
  • Docker Dockerfile 定制镜像的方法

    下面我将为你详细讲解 “Docker Dockerfile 定制镜像的方法” 的完整攻略及包含的两条实例说明: 什么是Dockerfile? Dockerfile是一个文本文件,其包含一组指令,用于在Docker中自动化构建镜像。Dockerfile中定义了一些列指令,这些指令是按照顺序执行的,从而构建出一个完整的镜像。 Dockerfile的编写规则 注释…

    Docker 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部