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

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

  • 1. 配置文件
  • 2. 启动命令
  • 切换不同环境
  • 注意挂载的文件权限要777

1. 配置文件

在这里插入图片描述

在这里插入图片描述

version: '3.8'
services:
  docker-test:
    image: openjdk:8-jdk-alpine
    ports:
      - "${APP_PORT}:${CONTAINER_PORT}"
    volumes:
      - "${JAR_PATH}:/app/docker-test.jar"
      - "${APPLICATION_YML}:/app/config/application.yml"
      - "${APPLICATION_DEV_YML}:/app/config/application-dev.yml"
      - "${APPLICATION_PROD_YML}:/app/config/application-prod.yml"
      - "${LOGS_PATH}:/app/logs"
    environment:
      - SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE}
    command: >
      sh -c "java -jar /app/docker-test.jar > /app/logs/log.out 2>&1"
    restart: always
# env文件
# 配置文件路径
CONFIG_PATH=./

# 应用程序配置文件
APPLICATION_YML=${CONFIG_PATH}/application.yml
APPLICATION_DEV_YML=${CONFIG_PATH}/application-dev.yml
APPLICATION_PROD_YML=${CONFIG_PATH}/application-prod.yml

# Spring Profile (可以是 dev、prod 或其他配置)
SPRING_PROFILES_ACTIVE=dev

# 端口映射
APP_PORT=1888
CONTAINER_PORT=9898
JAR_PATH=./docker-test-0.0.1-SNAPSHOT.jar
LOGS_PATH=./logs

2. 启动命令

(base) ➜  docker-project docker-compose up -d
WARN[0000] /Users/fanzhen/Documents/docker-project/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 4/4
 ✔ docker-test Pulled                                                                                                                                                        31.7s
   ✔ 0362ad1dd800 Pull complete                                                                                                                                               3.3s
   ✔ 571218f61883 Pull complete                                                                                                                                               3.4s
   ✔ abe576d65b4c Pull complete                                                                                                                                              20.7s
[+] Running 2/2Network docker-project_default          Created                                                                                                                            0.0s
 ✔ Container docker-project-docker-test-1  Started
(base) ➜  docker-project docker-compose ps
NAME                           IMAGE                  COMMAND                   SERVICE       CREATED         STATUS         PORTS
docker-project-docker-test-1   openjdk:8-jdk-alpine   "sh -c 'java -jar /a…"   docker-test   8 minutes ago   Up 8 minutes   0.0.0.0:1888->8989/tcp
(base)~ docker images
REPOSITORY   TAG            IMAGE ID       CREATED       SIZE
openjdk      8-jdk-alpine   e4105db9d469   5 years ago   103MB


(base)~ docker ps
CONTAINER ID   IMAGE                  COMMAND                   CREATED          STATUS          PORTS                    NAMES
8ac0558be7c9   openjdk:8-jdk-alpine   "sh -c 'java -jar /a…"   11 minutes ago   Up 11 minutes   0.0.0.0:1888->8989/tcp   docker-project-docker-test-1

查看容器内容

(base) ➜  ~ docker exec -it docker-project-docker-test-1 /bin/sh
/app # pwd
/app
/app # ls

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 宿主机内安装curl
apk add --no-cache curl

/ # curl -L -X GET 'http://0.0.0.0:9898/api/v1/heart-beat' \
>
prod
/ #

切换不同环境

(base) ➜  docker-project docker-compose stop docker-test
[+] Stopping 1/0Container docker-project-docker-test-1  Stopped                                                         0.1s

(base) ➜  docker-project SPRING_PROFILES_ACTIVE=prod docker-compose up -d docker-test
[+] Running 1/1Container docker-project-docker-test-1  Started

注意挂载的文件权限要777

# 在容器内检查挂载的文件确保它确实链接到了你期望的宿主机文件:
(base) ➜  docker-project docker exec -it docker-project-docker-test-1 cat /app/config/application-dev.yml

spring:
  application:
    name: docker-test

server:
  port: 9898
  address: 0.0.0.0

env: devasdasd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/942280.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为实训课笔记 2024 1223-1224

华为实训 12/2312/24 12/23 [Huawei]stp enable --开启STP display stp brief --查询STP MSTID Port Role STP State Protection 实例ID 端口 端口角色 端口状态 是否开启保护[Huawei]display stp vlan xxxx --查询制定vlan的生成树计算结…

GitCode 光引计划投稿 | GoIoT:开源分布式物联网开发平台

GoIoT 是基于Gin 的开源分布式物联网(IoT)开发平台,用于快速开发,部署物联设备接入项目,是一套涵盖数据生产、数据使用和数据展示的解决方案。 GoIoT 开发平台,它是一个企业级物联网平台解决方案&#xff…

EasyGBS国标GB28181公网平台P2P远程访问故障诊断:云端服务端排查指南

随着信息技术的飞速发展,视频监控领域正经历从传统安防向智能化、网络化安防的深刻转变。EasyGBS平台,作为基于国标GB28181协议的视频流媒体平台,为用户提供了强大的视频监控直播功能。然而,在实际应用中,P2P远程访问可…

Vnlhun靶场Log4j2漏洞

相关概念 log4j2是Apache的⼀个java日志框架,我们借助它进行日志相关操作管理,然而在2021年末log4j2爆出了远程代码执行漏洞,属于严重等级的漏洞 漏洞原理 简单说就是当你使⽤log4j2中提供的⽅法去输出⽇志信息时,⽐如说最常⻅…

千兆网中的gmii与rgmii

物理链路上是千兆网。1 Gbps1000 Mb/s1000/8 MB/s125 MB/s,这是和你的测试设备相连的1 Gbps物理带宽下的极速。关键点是1 B(byte)8 b(bit)。实际下载速度还取决于下载源的限制、出口的物理链路和运营商的限制。

2024-12-24 NO1. XR Interaction ToolKit 环境配置

文章目录 1 软件配置2 安装 XRToolKit3 配置 OpenXR4 安装示例场景5 运行测试 1 软件配置 Unity 版本:Unity6000.0.26 ​ 2 安装 XRToolKit 创建新项目(URP 3D),点击进入 Asset Store。 进入“Unity Registry”页签&#xff0…

重温设计模式--外观模式

文章目录 外观模式(Facade Pattern)概述定义 外观模式UML图作用 外观模式的结构C 代码示例1C代码示例2总结 外观模式(Facade Pattern)概述 定义 外观模式是一种结构型设计模式,它为子系统中的一组接口提供了一个统一…

【恶意软件检测】一种基于API语义提取的Android恶意软件检测方法(期刊等级:CCF-B、Q2)

一种基于API语义提取的Android恶意软件检测方法 A novel Android malware detection method with API semantics extraction 摘要 由于Android框架和恶意软件的持续演变,使用过时应用程序训练的传统恶意软件检测方法在有效识别复杂演化的恶意软件方面已显不足。为…

【微信小程序】2|轮播图 | 我的咖啡店-综合实训

轮播图 引言 在微信小程序中,轮播图是一种常见的用户界面元素,用于展示广告、产品图片等。本文将通过“我的咖啡店”小程序的轮播图实现,详细介绍如何在微信小程序中创建和管理轮播图。 轮播图数据准备 首先,在home.js文件中&a…

RT-DETR学习笔记(2)

七、IOU-aware query selection 下图是原始DETR。content query 是初始化为0的label embedding, position query 是通过nn.Embedding初始化的一个嵌入矩阵,这两部分没有任何的先验信息,导致DETR的收敛慢。 RT-DETR则提出要给这两部分(conten…

fpgafor循环语句使用

genvar i;//循环变量名称 generate for(i0;i<4;ii1)begin:tx//自己定义名称 //循环内容 end endgenerate12位的16进制乘以4就是48位位宽的2进制 因为 222*2(2^4)16

62.基于SpringBoot + Vue实现的前后端分离-驾校预约学习系统(项目+论文)

项目介绍 伴随着信息技术与互联网技术的不断发展&#xff0c;人们进到了一个新的信息化时代&#xff0c;传统管理技术性没法高效率、容易地管理信息内容。为了实现时代的发展必须&#xff0c;提升管理高效率&#xff0c;各种各样管理管理体系应时而生&#xff0c;各个领域陆续进…

网站灰度发布?Tomcat的8005、8009、8080三个端口的作用什么是CDNLVS、Nginx和Haproxy的优缺点服务器无法开机时

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c; 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把…

路由器转发数据报的封装过程

✍作者&#xff1a;柒烨带你飞 &#x1f4aa;格言&#xff1a;生活的情况越艰难&#xff0c;我越感到自己更坚强&#xff1b;我这个人走得很慢&#xff0c;但我从不后退。 &#x1f4dc;系列专栏&#xff1a;网路安全入门系列 目录 路由器转发数据的封装过程 路由器转发数据的封…

webrtc音频模块(三) windows Core Audio API及声音的播放

在前面介绍了ADM(Audio Device Module)&#xff0c;它用于抽象音频设备管理和音频数据采集/播放接口。windows的实现是AudioDeviceWinowCode&#xff0c;它封装了Core Audio APIs实现了对音频设备的操作。 Core Audio APIs windows提供了多种音频操作API&#xff0c;比如最常…

虚拟机桥接模式

主机Win10,虚拟机xp 1.虚拟机设置中选择桥接模式 2.在虚拟机菜单&#xff1a;编辑>虚拟机网络编辑&#xff0c;点击“更改设置”&#xff0c;可以看到三个网卡&#xff0c;这三个网卡分别对应不同的网络共享模式。桥接模式须使用VMnet0&#xff0c;如果没看到这个网卡&…

重温设计模式--享元模式

文章目录 享元模式&#xff08;Flyweight Pattern&#xff09;概述享元模式的结构C 代码示例1应用场景C示例代码2 享元模式&#xff08;Flyweight Pattern&#xff09;概述 定义&#xff1a; 运用共享技术有效地支持大量细粒度的对象。 享元模式是一种结构型设计模式&#xff0…

单机游戏《野狗子》游戏运行时提示dbghelp.dll缺失是什么原因?dbghelp.dll缺失要怎么解决?

《野狗子》游戏运行时提示dbghelp.dll缺失&#xff1a;原因与解决方案 在畅游《野狗子》这款引人入胜的游戏世界时&#xff0c;突然遭遇“dbghelp.dll缺失”的错误提示&#xff0c;无疑会给玩家的探险之旅蒙上一层阴影。作为一名深耕软件开发领域的从业者&#xff0c;我深知此…

CASA模型相关遥感数据及MODIS NDVI、FPAR遥感产品数据时序重建

植被作为陆地生态系统的重要组成部分对于生态环境功能的维持具有关键作用。植被净初级生产力&#xff08;Net Primary Productivity, NPP&#xff09;是指单位面积上绿色植被在单位时间内由光合作用生产的有机质总量扣除自养呼吸的剩余部分。植被NPP是表征陆地生态系统功能及可…

如何在谷歌浏览器中设置桌面快捷方式

在日常使用电脑时&#xff0c;反复在浏览器中输入经常访问的网址不仅耗时&#xff0c;而且降低了工作效率。为了解决这一问题&#xff0c;我们可以通过在主屏幕上创建谷歌浏览器的快捷方式来简化操作。本文将详细介绍如何在Windows和Mac系统中实现这一功能。 一、步骤概述 1. …