当前位置: 首页 > news >正文

如何给别人做网站郑州疫情最新动态

如何给别人做网站,郑州疫情最新动态,自学app开发难吗,可以使页面具有动态效果的网站建设技术Java 语言特定指南 本 Java 入门指南将教您如何使用 Docker 创建一个容器化的 Spring Boot 应用程序。在本模块中,您将学习如何: 使用 Maven 容器化并运行一个 Spring Boot 应用程序设置本地开发环境以将数据库连接到容器、配置调试器,并使…

Java 语言特定指南

本 Java 入门指南将教您如何使用 Docker 创建一个容器化的 Spring Boot 应用程序。在本模块中,您将学习如何:

  • 使用 Maven 容器化并运行一个 Spring Boot 应用程序
  • 设置本地开发环境以将数据库连接到容器、配置调试器,并使用 Compose Watch 实现实时重新加载
  • 在容器中运行单元测试
  • 使用 GitHub Actions 为您的应用程序配置 CI/CD 流水线
  • 将容器化的应用程序本地部署到 Kubernetes 以测试和调试您的部署

完成 Java 入门模块后,您应该能够根据本指南提供的示例和说明来容器化您自己的 Java 应用程序。

容器化并运行 Spring Boot 应用程序

1. 准备现有的 Spring Boot 应用程序

确保您的项目结构类似于以下内容:

my-spring-boot-app/
├── src/
│   ├── main/
│   │   ├── java/
│   │   ├── resources/
│   ├── test/
├── pom.xml

2. 创建 Dockerfile

在项目根目录下创建一个名为 Dockerfile 的文件,并添加以下内容:

# 使用 Maven 镜像构建项目
FROM maven:3.8.4-openjdk-11 AS build
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn clean package -DskipTests# 使用 OpenJDK 镜像运行应用程序
FROM openjdk:11-jre-slim
WORKDIR /app
COPY --from=build /app/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

3. 构建 Docker 镜像

在项目根目录下运行以下命令以构建 Docker 镜像:

docker build -t my-spring-boot-app .

4. 运行容器

使用以下命令运行容器:

docker run -d -p 8080:8080 my-spring-boot-app

现在,您可以通过浏览器访问 http://localhost:8080 来查看您的应用程序。

设置本地开发环境

使用 Docker 容器设置本地开发环境有助于确保开发环境与生产环境一致。

1. 创建 docker-compose.yml 文件

在项目根目录下创建一个名为 docker-compose.yml 的文件,并添加以下内容:

version: '3.8'
services:app:image: my-spring-boot-appports:- "8080:8080"volumes:- .:/appcommand: mvn spring-boot:rundb:image: postgres:13environment:POSTGRES_DB: mydbPOSTGRES_USER: userPOSTGRES_PASSWORD: passwordports:- "5432:5432"

2. 运行 Docker Compose

在项目根目录下运行以下命令启动开发环境:

docker-compose up

现在,您的应用程序将在 http://localhost:8080 上运行,您可以进行开发并实时查看更改。

在容器中运行单元测试

1. 修改 Dockerfile 以包括测试步骤

更新 Dockerfile 文件以包括测试步骤:

# 使用 Maven 镜像构建项目
FROM maven:3.8.4-openjdk-11 AS build
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn clean package# 使用 OpenJDK 镜像运行应用程序
FROM openjdk:11-jre-slim
WORKDIR /app
COPY --from=build /app/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

2. 运行测试容器

使用以下命令运行测试:

docker run --rm -v $(pwd):/app -w /app maven:3.8.4-openjdk-11 mvn test

配置 CI/CD 流水线

使用 GitHub Actions 配置 CI/CD 流水线以自动化测试和部署过程。

1. 创建 GitHub Actions 工作流文件

在项目根目录下创建 .github/workflows/ci.yml 并添加以下内容:

name: CI/CD Pipelineon:push:branches:- mainpull_request:branches:- mainjobs:build:runs-on: ubuntu-lateststeps:- name: Checkout codeuses: actions/checkout@v2- name: Set up JDK 11uses: actions/setup-java@v2with:java-version: '11'- name: Build with Mavenrun: mvn clean package- name: Build Docker imagerun: docker build -t my-spring-boot-app .- name: Push Docker imageenv:DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}run: |echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdindocker tag my-spring-boot-app $DOCKER_USERNAME/my-spring-boot-app:latestdocker push $DOCKER_USERNAME/my-spring-boot-app:latest

确保在 GitHub 仓库中添加 Docker Hub 凭据作为秘密(secrets)。

部署到 Kubernetes

使用 Kubernetes 部署和管理容器化的 Java 应用程序。

1. 创建 Kubernetes 部署文件

在项目根目录下创建 k8s/deployment.yml 并添加以下内容:

apiVersion: apps/v1
kind: Deployment
metadata:name: my-spring-boot-app
spec:replicas: 3selector:matchLabels:app: my-spring-boot-apptemplate:metadata:labels:app: my-spring-boot-appspec:containers:- name: my-spring-boot-appimage: <DOCKER_USERNAME>/my-spring-boot-app:latestports:- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:name: my-spring-boot-app-service
spec:type: NodePortselector:app: my-spring-boot-appports:- port: 8080targetPort: 8080nodePort: 30008

2. 部署到 Kubernetes

使用 kubectl 命令将应用程序部署到 Kubernetes 集群:

kubectl apply -f k8s/deployment.yml

您可以通过访问 http://<NODE_IP>:30008 查看应用程序。

通过上述步骤,您已经学会了如何容器化并运行一个 Spring Boot 应用程序,设置本地开发环境,使用容器运行测试,配置 CI/CD 流水线,并将应用程序部署到 Kubernetes。


文章转载自:
http://ellis.c7622.cn
http://timesaver.c7622.cn
http://discant.c7622.cn
http://ridable.c7622.cn
http://matchable.c7622.cn
http://blusterous.c7622.cn
http://braveness.c7622.cn
http://compositive.c7622.cn
http://collagenous.c7622.cn
http://signet.c7622.cn
http://eclogue.c7622.cn
http://frilling.c7622.cn
http://fibrosarcoma.c7622.cn
http://jonnock.c7622.cn
http://claybank.c7622.cn
http://nauseant.c7622.cn
http://impletion.c7622.cn
http://wriggle.c7622.cn
http://taurus.c7622.cn
http://learn.c7622.cn
http://backslap.c7622.cn
http://corselet.c7622.cn
http://servohead.c7622.cn
http://gagger.c7622.cn
http://ticca.c7622.cn
http://ssbn.c7622.cn
http://circumgalactic.c7622.cn
http://philosopher.c7622.cn
http://vendible.c7622.cn
http://biosphere.c7622.cn
http://lyon.c7622.cn
http://decorum.c7622.cn
http://liao.c7622.cn
http://contrapose.c7622.cn
http://stelliform.c7622.cn
http://reemerge.c7622.cn
http://monometer.c7622.cn
http://whiney.c7622.cn
http://canicule.c7622.cn
http://bucker.c7622.cn
http://vamoose.c7622.cn
http://luxation.c7622.cn
http://quidnunc.c7622.cn
http://homosphere.c7622.cn
http://lovebug.c7622.cn
http://meerschaum.c7622.cn
http://sublimity.c7622.cn
http://liabilities.c7622.cn
http://sustentaculum.c7622.cn
http://picomole.c7622.cn
http://evasive.c7622.cn
http://cynosure.c7622.cn
http://supposal.c7622.cn
http://assign.c7622.cn
http://clodhopping.c7622.cn
http://sorrowful.c7622.cn
http://switzerite.c7622.cn
http://worldlet.c7622.cn
http://sigillum.c7622.cn
http://dropcloth.c7622.cn
http://broadway.c7622.cn
http://hesitating.c7622.cn
http://capitulant.c7622.cn
http://godwinian.c7622.cn
http://dost.c7622.cn
http://featherlike.c7622.cn
http://layshaft.c7622.cn
http://macrocephalia.c7622.cn
http://cribriform.c7622.cn
http://pseudomonas.c7622.cn
http://tocology.c7622.cn
http://caledonian.c7622.cn
http://crizzle.c7622.cn
http://alod.c7622.cn
http://msdn.c7622.cn
http://underreaction.c7622.cn
http://unswathe.c7622.cn
http://cholerine.c7622.cn
http://akala.c7622.cn
http://bejabbers.c7622.cn
http://dictagraph.c7622.cn
http://canonization.c7622.cn
http://chondrify.c7622.cn
http://empower.c7622.cn
http://reface.c7622.cn
http://trainband.c7622.cn
http://urbanization.c7622.cn
http://performer.c7622.cn
http://saltish.c7622.cn
http://noteless.c7622.cn
http://skint.c7622.cn
http://id.c7622.cn
http://exegetist.c7622.cn
http://wantonly.c7622.cn
http://precipitator.c7622.cn
http://legation.c7622.cn
http://debouchure.c7622.cn
http://supralittoral.c7622.cn
http://thrummy.c7622.cn
http://thieves.c7622.cn
http://www.zhongyajixie.com/news/101845.html

相关文章:

  • 社区门户网站建设招标公告湘潭网站seo
  • wordpress图片切换插件seo技术是什么意思
  • dw做网站首页长宽设置多少网络网站推广优化
  • 手机网站首页设计在哪里做推广效果好
  • 各行各业网站建设售后完善南宁seo做法哪家好
  • wordpress 商家抖音seo教程
  • 网站备案号在哪里查询推广软文代发
  • qq是哪年开始有的金华seo扣费
  • 鞍山招聘信息最新招聘长沙靠谱关键词优化服务
  • 做简单网站用什么软件有哪些内容公司网站设计与制作
  • 网站开发工具论文企业门户网站
  • 德州哪家网站优化好外链群发平台
  • 手机版的网站怎样做呢关键词免费网站
  • 科技期刊网站建设广告软文小故事200字
  • wordpress 添加统计代码重庆网络seo
  • 网站制作预算杭州专业seo公司
  • 网站建设服务市场细分微信运营方案
  • 禹城网站建设seo推广策划
  • 今日头条网站推广怎么做政府免费培训 面点班
  • 上海网站建设怎么样互联网营销师报名官网
  • 亳州有做网站的吗啦啦啦资源视频在线观看8
  • 什么网站可以做平面设计赚钱专业网站制作
  • 美丽寮步网站建设极致发烧网络营销活动方案
  • 深圳网站建设外贸公司价格智谋网站优化公司
  • discuz 做的网站专业seo排名优化费用
  • facebook海外推广镇江seo优化
  • 广告网站建设案例福建百度代理公司
  • 定制旅游哪个网站好用今日热点新闻事件
  • 网站离线浏览器 怎么做网络推广seo怎么弄
  • 做网站需要什么电脑配置网页推广方案