application.properties 설정을 환경 변수를 사용하여 local 및 Docker 시작으로 전환

소개



아래 기사에서 보충
【IntelliJ + Docker (APP+DB) + SpringBoot (Maven) 환경 구축】
htps : // m / sm3G / ms / bd61970648d94cb691

docker-compose.yml에 환경 변수 설명



환경에서 Docker 컨테이너를 시작할 때 전달할 환경 변수를 작성할 수 있습니다.

docker-compose.yml
version: '3'
services:
  app:
    image: openjdk:14-jdk-alpine
    ports:
      - "80:8080"
    volumes:
      - .:/app
    working_dir: /app
    command: ./mvnw spring-boot:run
    environment:
      DATASOURCE: jdbc:mysql://db:3306/sample
  db:
# 省略

application.properties에 환경 변수 설명



아래 부분
spring.datasource.url=${DATASOURCE:jdbc:mysql://localhost:3306/sample}

application.properties
spring.datasource.url=${DATASOURCE:jdbc:mysql://localhost:3306/sample}
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
${環境変数:デフォルト値} 라고 기재
환경 변수가 설정된 경우 환경 변수 로드
설정되지 않은 경우 기본값 로드

SpringBoot 시작



로컬 부팅



환경 변수는 아무것도 설정하지 않았기 때문에
기본값 jdbc:mysql://localhost:3306/sample 로드

Docker 시작



docker-compose.yml에서 DATASOURCE라는 이름으로 환경 변수를 설정했기 때문에
앱 컨테이너 내에서이 환경 변수가 적응됩니다.

1. 컨테이너 내에서 SpringBoot 시작
2. 컨테이너에서 application.properties 로드
3. 환경 변수 jdbc:mysql://db:3306/sample 로드

set 에서 환경 변수를 확인했는데 제대로 설정되었습니다.


${環境変数:デフォルト値} 쓰는 법을 전혀 모르고 대머리 같았다.
SprinBoot application.properties 환경 변수 전환 변수 리터럴 ${} 쉘 변수 등으로 여러가지 조사되었다

좋은 웹페이지 즐겨찾기