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

做付费网站好wordpress cms 比较

做付费网站好,wordpress cms 比较,wordpress建站空间推荐,中江县规划和建设局网站通过Dockerfile来实现项目可以指定读取不同环境的yml包 1. 挂载目录2. DockerFile3. 运行脚本deploy.sh4. 运行查看日志进入容器 5. 接口测试修改application-dev.yml 6. 优化Dockerfile7. 部分参数解释8. 优化不同环境下的日志也不同调整 Dockerfile修改部署脚本 deploy.sh重新…

通过Dockerfile来实现项目可以指定读取不同环境的yml包

  • 1. 挂载目录
  • 2. DockerFile
  • 3. 运行脚本deploy.sh
  • 4. 运行
    • 查看日志
    • 进入容器
  • 5. 接口测试
    • 修改application-dev.yml
  • 6. 优化Dockerfile
  • 7. 部分参数解释
  • 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_ACTIVE=dev# 运行 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 或 prod"exit 1
fi# 定义容器和镜像名称
CONTAINER_NAME="docker-test-$ENV"
IMAGE_NAME="docker-test:$ENV"# 为不同环境设置不同的端口
if [ "$ENV" == "prod" ]; thenPORT=19898
elsePORT=29898
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 环境完成,访问端口:$PORT"

4. 运行

(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-slim@sha256: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/tc1irjdh2hiyks0o0k93zanrxWhat's 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-slim@sha256: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_ACTIVE=dev# 运行 Java 应用,指定配置文件位置
ENTRYPOINT ["java", "-jar", "-Dspring.config.location=/app/config/", "-Dlogging.file.name=/app/logs/app.log", "docker-test.jar"]

通过FROM openjdk:8-jre-slim@sha256: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-slim@sha256:53186129237fbb8bc0a12dd36da6761f4c7a2a20233c20d4eb0d497e4045a4f5                                                                                                                              0.0s=> [internal] load .dockerignore                                                                                                                                                                                                                                          0.0s=> => transferring context: 2B                                                                                                                                                                                                                                            0.0s=> [1/5] FROM docker.io/library/openjdk:8-jre-slim@sha256: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/w8k62khao04fqmmn40xbtlxkpWhat's 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. 部分参数解释

  1. -Dspring.config.location=/app/config/ 是一个 JVM(Java Virtual Machine)系统属性,用于指定 Spring Boot 应用的配置文件位置。
    在这里插入图片描述

  2. -Dlogging.file.name=/app/logs/app.log Dockerfile 中使用的 ENTRYPOINT 命令包含了 -Dlogging.file.name=/app/logs/app.log 这一部分。这是一个 JVM(Java Virtual Machine)系统属性,用于指定日志文件的输出路径,特别是对于使用 Spring Boot 构建的 Java 应用。这样的设置对于管理容器内应用的日志是非常有用的。
    在这里插入图片描述

8. 优化不同环境下的日志也不同

docker images --digests本地所有镜像的信息,包括仓库名、标签、镜像 ID、创建时间、大小以及摘要(digest)

调整 Dockerfile

# 使用适合 Java 8 的官方镜像,并指定具体的摘要
FROM openjdk:8-jre-slim@sha256: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 TZ=Asia/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_ACTIVE=dev# 运行 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 或 prod"exit 1
fi# 定义容器和镜像名称
CONTAINER_NAME="docker-test-$ENV"
IMAGE_NAME="docker-test:$ENV"# 为不同环境设置不同的端口和日志文件路径
if [ "$ENV" == "prod" ]; thenPORT=19898LOG_FILE="/app/logs/prod-app.log"
elsePORT=29898LOG_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文件通常用来存储应用程序的配置信息。为了适应不同的运行环境(如开发、测试、生产等),通常会有多个这样的配置文件,以便根据环境的不同加载不同的配置。下面是关于你提到的各个文件的详细解释:

  1. application.yml
    这是主配置文件,通常包含所有环境中通用的配置。它是默认被加载的配置文件,无论你运行在哪个环境中。此文件中的配置可以被其他环境专用的配置文件覆盖。

  2. application-dev.yml
    这个文件包含开发环境特有的配置。它通常包括适用于开发环境的数据库连接、API密钥、调试工具配置等。在开发过程中,可以设置Spring Boot使用dev配置文件,使其覆盖application.yml中的通用配置。

  3. application-test.yml
    此文件包含测试环境特有的配置,用于单元测试、集成测试等自动化测试环境。这些配置可能包括指向专门的测试数据库、特定的端口号或服务接口等。在自动化测试时,通过设置Spring Boot使用test配置文件,确保应用运行在适合测试的环境中。

  4. application-prod.yml
    这个文件包含生产环境特有的配置,如生产数据库的凭证、API访问限制、性能优化设置等。在应用部署到生产环境时,这个文件中的配置会覆盖默认的application.yml文件,确保应用按照生产环境的要求运行。

如何切换不同的配置环境
在Spring Boot应用中,你可以通过设置环境变量spring.profiles.active来指定激活哪个配置文件。例如,通过命令行参数来启动应用时指定使用开发配置:

java -jar your-application.jar --spring.profiles.active=dev

或者在环境变量中设置:

export SPRING_PROFILES_ACTIVE=dev

或者idea中的VM增加 -Dspring.profiles.active=prod

http://www.yayakq.cn/news/122818/

相关文章:

  • 联盟网站做任务医院网站 功能
  • 企智网络网站建设公司大龄网站开发人员
  • 友情链接网站免费搜索引擎查询
  • 微网站建设步骤网站建设软件
  • 商城网站制作的教程flash html网站模板
  • 网站访问速度优化有云服务器和域名怎么做网站
  • wordpress comments温州网站制作优化
  • 可信网站认证必须做天津建设工程信息网专家申请题库
  • 咸阳做网站的公司有哪些广州网站建设培训班
  • 外贸产品网站建设阳江网站seo服务
  • 小猪网站怎么做的流量最大的网站
  • 网站开发的技术可行性怎么写网页添加兼容性站点
  • 毕业生对于网站建设感受app开发公司哪个公司好
  • 枣庄做网站制作外包小程序
  • 建设网站需要几个人完成广西网站建设-好发信息网
  • 哪个网站可以做化学实验wordpress禁止百度转码
  • 福建就福建省住房与城乡建设厅网站网站设计文字大小
  • 京东网站的建设与发展现状分析专业做网站联系电话
  • 网站备案工信部可以做司法考试题的网站
  • 家装网上怎么接单啊淄博优化推广
  • aspnet网站开发实例项目代理记账公司怎么找客源
  • 沈阳做微信和网站的公司做网站公司融资多少钱
  • 如何去建立和设计一个公司网站程序源代码网站
  • 微网站制作软件新手wordpress添加注册表
  • 企业电子商务网站平台建设闵行网站建设
  • 哪里建个人网站好怎么更改网站首页图片
  • 做网站推广也要营业执照吗网页制作的公司为什么瓯北没有
  • 桂阳网站设计河北省建设项目环保备案网站
  • 如何设计中文网站注册有限公司需要多少钱
  • 我做的网站有时打开很慢什么原因2016年做网站能赚钱