문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
docker:docker_compose [2022/03/17 16:25] kwon37xi [docker-compose 에서 network 생성 불가시] |
docker:docker_compose [2023/02/02 09:22] (현재) kwon37xi |
||
|---|---|---|---|
| 줄 2: | 줄 2: | ||
| * https:// | * https:// | ||
| * https:// | * https:// | ||
| + | * [[https:// | ||
| * v2 부터 cli plugin 으로 '' | * v2 부터 cli plugin 으로 '' | ||
| 줄 14: | 줄 15: | ||
| * '' | * '' | ||
| * [[https:// | * [[https:// | ||
| + | * [[: | ||
| ===== 네트워크 ===== | ===== 네트워크 ===== | ||
| * '' | * '' | ||
| 줄 27: | 줄 28: | ||
| ERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network | ERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network | ||
| </ | </ | ||
| - | * 이 경우 이미 존재하는 network 를 '' | + | * **하지 말 것** : 이 경우 이미 존재하는 network 를 '' |
| services: | services: | ||
| | | ||
| 줄 34: | 줄 35: | ||
| * '' | * '' | ||
| * docker-compose user defined bridge 일 때만 이름 기반 lookup이 작동한다. | * docker-compose user defined bridge 일 때만 이름 기반 lookup이 작동한다. | ||
| - | * 더 좋은 해결책 : IP 대역 충돌이 일어나지 않는 subnet 을 지정한 network 를 생성하고 '' | + | * 더 좋은 해결책 : IP 대역 충돌이 일어나지 않는 subnet 을 지정한 network 를 생성하고 '' |
| <code yml> | <code yml> | ||
| networks: | networks: | ||
| 줄 56: | 줄 57: | ||
| - subnet: ${MY_SUBNET: | - subnet: ${MY_SUBNET: | ||
| </ | </ | ||
| + | * 이 경우 '' | ||
| * [[https:// | * [[https:// | ||
| ===== .env ===== | ===== .env ===== | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| * 환경 변수를 지정할 수 있다. | * 환경 변수를 지정할 수 있다. | ||
| * '' | * '' | ||
| 줄 80: | 줄 83: | ||
| - web-variables.env # 환경변수 파일 내의 환경변수들이 전달됨. | - web-variables.env # 환경변수 파일 내의 환경변수들이 전달됨. | ||
| </ | </ | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ===== Multiple docker-compose.yml 다중 파일 설정 ===== | ||
| + | * 기본적으로 '' | ||
| + | * 따라서 개발자가 자기만의 환경이 필요할 때는 '' | ||
| + | * [[https:// | ||
| + | * '' | ||
| + | <code sh> | ||
| + | # 두 파일을 순서대로 읽고 설정을 override 한다. | ||
| + | docker-compose -f docker-compose.yml -f docker-compose.production.yml up -d | ||
| + | </ | ||
| + | * admin 처럼 기본 '' | ||
| + | <code sh> | ||
| + | # docker-compose.admin.yml 에 dbadmin, db-backup 이라는 서비스가 docker-compose.yml 에 있는 db에 접속해서 실행되는 것이라면 | ||
| + | docker-compose -f docker-compose.yml -f docker-compose.admin.yml run dbadmin db-backup | ||
| + | </ | ||
| + | |||
| + | ===== Extending Service : 서비스 확장 ===== | ||
| + | * 다중 파일 기법과 유사하지만 공통 설정을 빼놓고 항상 읽어들이는 방식 | ||
| + | * '' | ||
| + | |||
| + | <code yml> | ||
| + | # common-services.yml - 아래 서비스는 설정일 뿐, 실제로 작동하는게 아님 | ||
| + | webapp: | ||
| + | build: . | ||
| + | ports: | ||
| + | - " | ||
| + | volumes: | ||
| + | - "/ | ||
| + | </ | ||
| + | <code yml> | ||
| + | # docker-compose.yml - webapp 을 확장한 web 서비스 | ||
| + | web: | ||
| + | extends: | ||
| + | file: common-services.yml | ||
| + | service: webapp | ||
| + | </ | ||
| + | * 서비스들은 '' | ||
| ===== 참조 ===== | ===== 참조 ===== | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||