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

贵阳网站定制电话号码长沙楼盘信息官网

贵阳网站定制电话号码,长沙楼盘信息官网,深圳网站建设艺之都,网站编辑有前途吗通过Dockerfile来实现项目可以指定读取不同环境的yml包 1. 挂载目录2. DockerFile3. 运行脚本deploy.sh4. 运行查看日志进入容器 5. 接口测试修改application-dev.yml 6. 优化Dockerfile7. 部分参数解释8. 优化不同环境下的日志也不同调整 Dockerfile修改部署脚本 deploy.sh重新… 通过Dockerfile来实现项目可以指定读取不同环境的yml包 1. 挂载目录2. DockerFile3. 运行脚本deploy.sh4. 运行查看日志进入容器 5. 接口测试修改application-dev.yml 6. 优化Dockerfile7. 部分参数解释8. 优化不同环境下的日志也不同调整 Dockerfile修改部署脚本 deploy.sh重新运行dev与prod最新的目录 9. pplication.yml、application-dev.yml、application-test.yml、application-prod.yml这几个有什么区别 1. 挂载目录 注意这里没有使用docker-compose 2. DockerFile # 使用适合 Java 8 的官方镜像 FROM openjdk:8-jre-slim# 创建一个目录来存放应用 WORKDIR /app# 复制 jar 文件和配置文件到容器 COPY ./docker-test-0.0.1-SNAPSHOT.jar /app/docker-test.jar COPY ./config /app/config# 创建日志目录 RUN mkdir /app/logs# 暴露应用端口 EXPOSE 9898# 设置环境变量默认值 ENV SPRING_PROFILES_ACTIVEdev# 运行 Java 应用指定配置文件位置 ENTRYPOINT [java, -jar, -Dspring.config.location/app/config/, -Dlogging.file.name/app/logs/app.log, docker-test.jar]3. 运行脚本deploy.sh #!/bin/bash# 部署脚本使用方式: ./deploy.sh [环境名] # 环境名应为 dev 或 prodENV$1 if [ $ENV ! prod ] [ $ENV ! dev ]; thenecho 请指定正确的环境名: dev 或 prodexit 1 fi# 定义容器和镜像名称 CONTAINER_NAMEdocker-test-$ENV IMAGE_NAMEdocker-test:$ENV# 为不同环境设置不同的端口 if [ $ENV prod ]; thenPORT19898 elsePORT29898 fi# 构建 Docker 镜像 docker build -t $IMAGE_NAME .# 停止并删除旧容器 docker rm -f $CONTAINER_NAME# 运行新的 Docker 容器挂载日志目录到宿主机并设置环境变量 docker run -d -p $PORT:9898 \-e SPRING_PROFILES_ACTIVE$ENV \-v /Users/fanzhen/Documents/docker-project/logs:/app/logs \--name $CONTAINER_NAME $IMAGE_NAMEecho 部署 $ENV 环境完成访问端口$PORT4. 运行 (base) ➜ docker-project sh deploy.sh dev [] Building 6.6s (10/10) FINISHED docker:desktop-linux [internal] load build definition from Dockerfile 0.0s transferring dockerfile: 681B 0.0s [internal] load metadata for docker.io/library/openjdk:8-jre-slim 6.2s [internal] load .dockerignore 0.0s transferring context: 2B 0.0s CACHED [1/5] FROM docker.io/library/openjdk:8-jre-slimsha256:53186129237fbb8bc0a12dd36da6761f4c7a2a20233c20d4eb0d497e4045a4f5 0.0s [internal] load build context 0.1s transferring context: 19.55MB 0.1s [2/5] WORKDIR /app 0.1s [3/5] COPY ./docker-test-0.0.1-SNAPSHOT.jar /app/docker-test.jar 0.0s [4/5] COPY ./config /app/config 0.0s [5/5] RUN mkdir /app/logs 0.1s exporting to image 0.0s exporting layers 0.0s writing image sha256:c7dcfe05d6c1f467f03a24caafe8a66729f60fcebc2be42b2cbb398885503e1a 0.0s naming to docker.io/library/docker-test:dev 0.0sView build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/tc1irjdh2hiyks0o0k93zanrxWhats next:View a summary of image vulnerabilities and recommendations → docker scout quickview Error response from daemon: No such container: docker-test-dev 8a8c4a71e3cad36c9fd2057dee84dbbedcefbc07c6d1ee3e057a96936f94bb1c 部署 dev 环境完成访问端口29898查看日志 (base) ➜ docker-project docker logs docker-test-dev. ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | _ | _| | _ \/ _ | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) ) |____| .__|_| |_|_| |_\__, | / / / /|_||___//_/_/_/:: Spring Boot :: (v2.6.13)2025-01-01 10:28:14.640 INFO 1 --- [ main] c.s.d.dockertest.DockerTestApplication : Starting DockerTestApplication using Java 1.8.0_342 on 8a8c4a71e3ca with PID 1 (/app/docker-test.jar started by root in /app) 2025-01-01 10:28:14.642 INFO 1 --- [ main] c.s.d.dockertest.DockerTestApplication : The following 1 profile is active: dev 2025-01-01 10:28:15.030 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9898 (http) 2025-01-01 10:28:15.037 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2025-01-01 10:28:15.037 INFO 1 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.68] 2025-01-01 10:28:15.074 INFO 1 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2025-01-01 10:28:15.075 INFO 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 412 ms 2025-01-01 10:28:15.239 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9898 (http) with context path 2025-01-01 10:28:15.244 INFO 1 --- [ main] c.s.d.dockertest.DockerTestApplication : Started DockerTestApplication in 0.797 seconds (JVM running for 1.053) 2025-01-01 10:29:49.797 INFO 1 --- [0.0-9898-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet dispatcherServlet 2025-01-01 10:29:49.798 INFO 1 --- [0.0-9898-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet dispatcherServlet 2025-01-01 10:29:49.799 INFO 1 --- [0.0-9898-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms 2025-01-01 10:29:49.811 INFO 1 --- [0.0-9898-exec-1] c.s.d.dockertest.HeartBeatController : 当前环境是:范缜 2025-01-01 10:30:42.360 INFO 1 --- [0.0-9898-exec-3] c.s.d.dockertest.HeartBeatController : 当前环境是:范缜进入容器 (base) ➜ docker-project docker exec -it docker-test-dev /bin/bash宿主机中的application-dev.yml 5. 接口测试 curl -X GET http://0.0.0.0:29898/api/v1/heart-beat修改application-dev.yml 修改宿主机中的application-dev.yml 重新执行运行脚本就可以获取到最新的配置 6. 优化Dockerfile # 使用适合 Java 8 的官方镜像并指定具体的摘要 FROM openjdk:8-jre-slimsha256:53186129237fbb8bc0a12dd36da6761f4c7a2a20233c20d4eb0d497e4045a4f5# 创建一个目录来存放应用 WORKDIR /app# 复制 jar 文件和配置文件到容器 COPY ./docker-test-0.0.1-SNAPSHOT.jar /app/docker-test.jar COPY ./config /app/config# 创建日志目录 RUN mkdir /app/logs# 暴露应用端口 EXPOSE 9898# 设置环境变量默认值 ENV SPRING_PROFILES_ACTIVEdev# 运行 Java 应用指定配置文件位置 ENTRYPOINT [java, -jar, -Dspring.config.location/app/config/, -Dlogging.file.name/app/logs/app.log, docker-test.jar] 通过FROM openjdk:8-jre-slimsha256:53186129237fbb8bc0a12dd36da6761f4c7a2a20233c20d4eb0d497e4045a4f5我就指定了每次运行得jdk是我们已经下载的docker image (base) ➜ docker-project sh deploy.sh prod [] Building 0.0s (10/10) FINISHED docker:desktop-linux [internal] load build definition from Dockerfile 0.0s transferring dockerfile: 972B 0.0s [internal] load metadata for docker.io/library/openjdk:8-jre-slimsha256:53186129237fbb8bc0a12dd36da6761f4c7a2a20233c20d4eb0d497e4045a4f5 0.0s [internal] load .dockerignore 0.0s transferring context: 2B 0.0s [1/5] FROM docker.io/library/openjdk:8-jre-slimsha256:53186129237fbb8bc0a12dd36da6761f4c7a2a20233c20d4eb0d497e4045a4f5 0.0s [internal] load build context 0.0s transferring context: 995B 0.0s CACHED [2/5] WORKDIR /app 0.0s CACHED [3/5] COPY ./docker-test-0.0.1-SNAPSHOT.jar /app/docker-test.jar 0.0s CACHED [4/5] COPY ./config /app/config 0.0s CACHED [5/5] RUN mkdir /app/logs 0.0s exporting to image 0.0s exporting layers 0.0s writing image sha256:f2ff23fd6cbdd0711a2236ed8fef5741a440ce0c9eef1de0729f0fe90bd5cd8f 0.0s naming to docker.io/library/docker-test:prod 0.0sView build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/w8k62khao04fqmmn40xbtlxkpWhats next:View a summary of image vulnerabilities and recommendations → docker scout quickview Error response from daemon: No such container: docker-test-prod 26f15fa78e16ace7184b0350006371a9decb2311bc6df4753f2a3006b79ba726 部署 prod 环境完成访问端口19898再次运行脚本就是秒启动了 7. 部分参数解释 -Dspring.config.location/app/config/ 是一个 JVMJava Virtual Machine系统属性用于指定 Spring Boot 应用的配置文件位置。 -Dlogging.file.name/app/logs/app.log Dockerfile 中使用的 ENTRYPOINT 命令包含了 -Dlogging.file.name/app/logs/app.log 这一部分。这是一个 JVMJava Virtual Machine系统属性用于指定日志文件的输出路径特别是对于使用 Spring Boot 构建的 Java 应用。这样的设置对于管理容器内应用的日志是非常有用的。 8. 优化不同环境下的日志也不同 docker images --digests本地所有镜像的信息包括仓库名、标签、镜像 ID、创建时间、大小以及摘要digest 调整 Dockerfile # 使用适合 Java 8 的官方镜像并指定具体的摘要 FROM openjdk:8-jre-slimsha256:53186129237fbb8bc0a12dd36da6761f4c7a2a20233c20d4eb0d497e4045a4f5# 创建一个目录来存放应用 WORKDIR /app# 复制 jar 文件和配置文件到容器 COPY ./docker-test-0.0.1-SNAPSHOT.jar /app/docker-test.jar COPY ./config /app/config# 创建日志目录 RUN mkdir /app/logs# 设置时区 ENV TZAsia/Shanghai RUN apt-get update apt-get install -y tzdata \ ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \ echo $TZ /etc/timezone \ dpkg-reconfigure -f noninteractive tzdata# 暴露应用端口 EXPOSE 9898# 设置环境变量默认值 ENV SPRING_PROFILES_ACTIVEdev# 运行 Java 应用使用环境变量指定配置文件位置和日志文件名 ENTRYPOINT [java, -jar, -Dspring.config.location/app/config/, -Dlogging.file.name${LOG_FILE_PATH}, docker-test.jar]修改部署脚本 deploy.sh #!/bin/bash# 部署脚本使用方式: ./deploy.sh [环境名] # 环境名应为 dev 或 prodENV$1 if [ $ENV ! prod ] [ $ENV ! dev ]; thenecho 请指定正确的环境名: dev 或 prodexit 1 fi# 定义容器和镜像名称 CONTAINER_NAMEdocker-test-$ENV IMAGE_NAMEdocker-test:$ENV# 为不同环境设置不同的端口和日志文件路径 if [ $ENV prod ]; thenPORT19898LOG_FILE/app/logs/prod-app.log elsePORT29898LOG_FILE/app/logs/dev-app.log fi# 停止之前的容器 docker stop $CONTAINER_NAME# 停止并删除旧容器 docker rm -f $CONTAINER_NAME# 构建 Docker 镜像 docker build -t $IMAGE_NAME .# 检查日志文件是否存在如果不存在则创建空日志文件 LOG_FILE_PATH./logs/$ENV-app.log if [ ! -f $LOG_FILE_PATH ]; thentouch $LOG_FILE_PATH fi# 运行新的 Docker 容器挂载日志目录到宿主机并设置环境变量 docker run -d -p $PORT:9898 \-e SPRING_PROFILES_ACTIVE$ENV \-e LOG_FILE_PATH$LOG_FILE \-v $LOG_FILE_PATH:$LOG_FILE \--name $CONTAINER_NAME $IMAGE_NAMEecho 部署 $ENV 环境完成访问端口$PORT注意这里不需要删除原来的镜像文件如果换了新的jar包会构建新的镜像替代原来的镜像 重新运行dev与prod 没问题 sh deploy.sh dev sh deploy.sh prod最新的目录 请忽略docker-compose 9. pplication.yml、application-dev.yml、application-test.yml、application-prod.yml这几个有什么区别 在现代软件开发中尤其是使用Spring Boot这类框架时application.yml文件通常用来存储应用程序的配置信息。为了适应不同的运行环境如开发、测试、生产等通常会有多个这样的配置文件以便根据环境的不同加载不同的配置。下面是关于你提到的各个文件的详细解释 application.yml 这是主配置文件通常包含所有环境中通用的配置。它是默认被加载的配置文件无论你运行在哪个环境中。此文件中的配置可以被其他环境专用的配置文件覆盖。 application-dev.yml 这个文件包含开发环境特有的配置。它通常包括适用于开发环境的数据库连接、API密钥、调试工具配置等。在开发过程中可以设置Spring Boot使用dev配置文件使其覆盖application.yml中的通用配置。 application-test.yml 此文件包含测试环境特有的配置用于单元测试、集成测试等自动化测试环境。这些配置可能包括指向专门的测试数据库、特定的端口号或服务接口等。在自动化测试时通过设置Spring Boot使用test配置文件确保应用运行在适合测试的环境中。 application-prod.yml 这个文件包含生产环境特有的配置如生产数据库的凭证、API访问限制、性能优化设置等。在应用部署到生产环境时这个文件中的配置会覆盖默认的application.yml文件确保应用按照生产环境的要求运行。 如何切换不同的配置环境 在Spring Boot应用中你可以通过设置环境变量spring.profiles.active来指定激活哪个配置文件。例如通过命令行参数来启动应用时指定使用开发配置 java -jar your-application.jar --spring.profiles.activedev或者在环境变量中设置 export SPRING_PROFILES_ACTIVEdev或者idea中的VM增加 -Dspring.profiles.activeprod
http://www.hkea.cn/news/14309426/

相关文章:

  • 网站建设要费用多少网站是怎么建立的
  • 网站开发过程的需求分析无锡鸿源建设集团有限公司网站
  • 网站降权网站开发项目计划书
  • 网站建设好后打开是目录文件中国最大的电商平台是哪家
  • 做外贸的网站有哪些建设银行的积分网站
  • 做交通工程刬线的网站公司网站开发最好
  • 自动翻译wordpress苏州seo门户网
  • 校园网网站的安全建设方案保健品的营销及推广方案
  • 唐山网站排名推广wordpress自助发布插件
  • 东莞有什么比较好的网站公司标签怎么删除wordpress
  • 网站域名是什么东西crazyuncle WordPress
  • 兰州网站建设企业名录四川住房建设网站
  • 赣州企业网站在那做最开放的浏览器下载
  • 网站建设审批wordpress站外搜索
  • 烟台做网站房地产网址大全
  • 英文网站推广服务中国咨询公司排名前十名
  • 湖北住房和城乡建设厅官方网站成都新闻最新消息
  • 河南做网站多少钱无锡网站制作选哪家
  • 网站图片设置隐私保护怎么下载路由器搭建wordpress
  • 珠海建设工程网站开发人员公众号
  • react.js 做网站好吗哪些网站做简历合适
  • 如何评判网站建设岗位网站开发技术论文
  • 廊坊网站建设价格wordpress随机评论头像
  • 事业单位考试网站北京建筑公司
  • 电子商务网站建设的流程图邯郸市内最新招聘信息
  • 重庆市建设工程节能中心网站北京模板开发建站
  • 万网 网站 流程百度账户托管
  • 装饰设计网站建设工业设计大赛官网
  • 服装公司网站模版wordpress会员中心添加头像上传
  • 网站后台后缀名网络营销论文选题