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

通过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


http://www.kler.cn/a/449616.html

相关文章:

  • OpenResty开发环境搭建
  • 项目实战——高并发内存池
  • ubuntu 如何重装你的apt【apt-get报错: symbol lookup error/undefined symbol】
  • Java基础面试题19:解释什么是Servlet链
  • Postman接口测试工具使用详解
  • 百度热力图数据处理,可直接用于论文
  • 【D03】SNMP、NETBIOS和SSH
  • sqli-labs(第二十六关-第三十关卡通关攻略)
  • 使用 Marp 将 Markdown 导出为 PPT 后不可编辑的原因说明及解决方案
  • K8s 无头服务(Headless Service)
  • Go语言zero项目部署后启动失败问题分析与解决
  • Springboot调整接口响应返回时长详解(解决响应超时问题)_springboot设置请求超时时间
  • 使用ID3算法根据信息增益构建决策树
  • 中小企业的助力工具:项目管理系统如何优化资源配置?
  • golang 链路追踪
  • 计算机毕业设计Python+Spark知识图谱高考志愿推荐系统 高考数据分析 高考可视化 高考大数据 大数据毕业设计
  • 快速定位sql索引未使用上的问题
  • C语言指针与数组深入剖析及优化示例 指针解读 数组与指针的关系
  • 如何正确计算显示器带宽需求
  • Sequelize ORM sql 语句工具
  • 安装MongoDB,环境配置
  • 对于其他管理的理解(下)
  • C#调用WebService的方法
  • 基于 SSM 架构的 JAVA 网络直播带货查询系统设计与 JSP 实践成果
  • 轻量型 5G DTU 选型
  • 记Fastjson2的一个报ConcurrentModificationException的bug