> Java > java지도 시간 > springboot에 구성을 동적으로 주입하고 docker로 환경 변수를 설정하는 방법은 무엇입니까?

springboot에 구성을 동적으로 주입하고 docker로 환경 변수를 설정하는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-05-10 14:37:13
앞으로
1375명이 탐색했습니다.

1. Springboot는 구성 정보를 동적으로 주입합니다.

아주 간단한 질문인데, 저는 springboot 프로젝트를 시작할 때 몇 가지 매개변수를 추가하는 실용적인 jar -jar만 알고 있고, 구체적인 매개변수도 기억하지 못합니다. 이 명령이 무엇인지 모릅니다. 구성 방법이 여기에 간략하게 요약되어 있습니다.

springboot 구성 우선순위 기본 구성 <구성 파일 <명령 구성

1. 데이터베이스 연결 주소 url을 빈 패키징으로 설정합니다.

#这里是数据库配置 数据库的连接地址 现在我把url设置为空然后打包jar
spring:
  datasource:
    #数据源基本配置
    username: root
    password: jishuzhai
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: 
    type: com.alibaba.druid.pool.DruidDataSource
로그인 후 복사

2. 테스트 시작.

java -jar Brief-plus_oa.jar #애플리케이션을 시작하려고 하면 다음 오류가 보고됩니다
#데이터 소스 구성 실패: 'url' 속성이 지정되지 않았으며 포함된 데이터 소스를 구성할 수 없습니다.

3. 매개변수 시작을 삽입합니다.

이 -D는 Java 실행 명령에 대한 이해를 높여줍니다.

java -jar -Dspring.datasource.url="jdbc:mysql://127.0.0.1:3306/brief_min?zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowMultiQueries =true&useUnicode= true&characterEncoding=utf-8" Brief-plus_oa.jar # 프로젝트를 성공적으로 시작합니다. 여기서 spring.datasource.url은 구성 파일

의 필드와 일치해야 합니다. 4. 주입 매개변수 필드를 사용자 정의합니다.

整个url字段全部注入现在太难输入了,整个url只有ip地址是变化的这里可以简化一下看下面配置:
 
 brief:
  mysql:
    host: #自定义的参数
    
spring:
  datasource:
    #数据源基本配置
    username: root
    password: jishuzhai
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://${brief.mysql.host}:3306/brief_min?zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowMultiQueries=true&useUnicode=true&characterEncoding=utf-8
    type: com.alibaba.druid.pool.DruidDataSource
重新打包然后运行:
 
java -jar -Dbrief.mysql.host=127.0.0.1 brief-plus_oa.jar #启动成功
로그인 후 복사

5. 여러 매개변수를 삽입합니다.

java -jar -Dspring.profiles.active=dev -DBRIEF.MYSQL.HOST=192.168.2.5 -DSPRING.REDIS.HOST=192.168.2.5 Brief-plus_oa.jar

6.

구성 파일 설정: 포트, 매개변수 등

로그 출력 설정

가상 머신 설정

인코딩 설정

java -jar -Dserver.port=10000 Brief-plus_oa.jar #포트 설정
java - jar - DSPRING_PROFILES_ACTIVE=dev Brief-plus_oa.jar # 유효한 구성 파일을 dev
java로 설정 -jar -Dlogging.path=/Users/fuping/Desktop/log Brief-plus_oa.jar #로그 파일 저장 디렉터리 설정
java - jar -Dbrief .mysql.host=127.0.0.1 Brief-plus_oa.jar & #인쇄 프로세스 시작 id
java -jar -Dfile.encoding=utf-8 Brief-plus_oa.jar #파일 인코딩을 설정하고 인쇄할 때 사용합니다. Windows 서버가 잘못된 문자로 시작됩니다
nohup java - jar Brief-plus_oa.jar > log.txt 2>&1 & #백그라운드에서 시작하고 시작 로그를 log.txt 파일에 입력하고 프로세스 ID를 인쇄합니다
java -Xms256m -Xmx512m Brief-plus_oa.jar #가상 머신 메모리 주소 설정

-D 뒤의 매개변수 이름은 대소문자를 구분하지 않습니다

2. Docker는 env 환경 변수

1를 동적으로 주입합니다.

FROM openjdk:17
# 镜像是从 openjdk:11-jdk-alpin 继承而来的
VOLUME /root/tmp
# 表示挂载了 /root/tmp 目录到容器中
ADD build/libs/brief-plus_oa-0.0.1-SNAPSHOT.jar apprun.jar
# 将bootJar 添加到镜像中根目录下 命令为 apprun.jar
ENTRYPOINT ["java","-jar","/apprun.jar"]
# ENTRYPOINT 在容器启动后执行 java 命令来运行程序
# 设置容器时间
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
EXPOSE 8099
로그인 후 복사

2. 도커 이미지를 빌드합니다.

sudo docker build -t brief_plus_ao:v1.0.0.1 -f ./Dockerfile .
로그인 후 복사

3. 이미지를 실행하고 env 환경 변수를 삽입합니다. -e

sudo docker run  -p 8090:8090 -e BRIEF.MYSQL.HOST=192.168.31.113  -e SPRING.REDIS.HOST=192.168.31.113 brief_plus_ao:v1.0.0.1
로그인 후 복사

위 내용은 springboot에 구성을 동적으로 주입하고 docker로 환경 변수를 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿