version: '3'
services:
db:
build:
context: ./docker-test-db
dockerfile: Dockerfile
ports:
- 3306:3306
volumes:
- ./docker-test-db/store:/var/lib/mysql
networks:
- network
server:
build:
context: ./docker-test-server
dockerfile: Dockerfile
restart: always
ports:
- 8080:8080
depends_on:
- db
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/metadb?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true
SPRING_DATASOURCE_DRIVER: com.mysql.cj.jdbc.Driver
SPRING_DATASOURCE_USERNAME: root
SPRING_DATASOURCE_PASSWORD: root1234
networks:
- network
networks:
network:
services:
db: 이 섹션에서 db 서비스 정의
build: db 서비스의 이미지 빌드 구성
context:빌드를 위한 dockerfile이 있는 경로 지정
dockerfile: 사용할 도커파일의 이름 지정
ports: 호스트(로컬) 의 3306 포트를 컨테이너의 3306 포트로 매핑
volumes: 호스트의 ./docker-test-db/store 디렉토리를 컨테이너의 /var/lib/mysql 디렉토리로 매핑
networks: 'network'라는 이름의 네트워크에 연결
restart: always: 컨테이너 재시작 정책을 '항상' 으로 설정
depends_on: 'db' 서비스를 먼저 시작
environment: 데이터베이스 연결 URL, 드라이버, 사용자 이름, 암호 등의 환경 변수를 설정
→ 자세히 보면 ip주소가 아닌 db로 되어있다