일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 비트코인
- 숨바꼭질3
- 코딩테스트
- k8s
- 모각코
- Jenkins
- 백준
- 너비 우선 탐색
- golang
- cloud
- 13549
- 도커
- kubernetes
- vue.js
- alert
- BaaS
- Programmers
- 프로그래머스
- ChangeCipherSpec
- 서버리스
- 타원곡선
- FAAS
- Vue
- observability
- Props
- 설치과정
- kubernets
- Docker-compose
- docker
- sia
- Today
- Total
작업공간
[docker] compose same directory multiple instances 이슈 본문
동기와 인턴십을 진행 중에 같은 개발 서버가 주어졌고 API 서버를 실행시키기 위해 모든 빌드와 env 설정을 마쳤다.
API 서버는 docker-compose 커맨드로 실행되었고 여기까지는 잘 되었다. 문제는 한 쪽에서 up 이나 down을 통해 실행/중지를 하면 다른 쪽도 마찬가지로 작동하는 것이었다.
docker는 운영/배포에 대한 도구라고 들었는데 , 깃헙이나 빗버켓으로 배포가 충분히 이루어지는 상황이라 굳이 필요할까?라는 생각이 들었다. 이렇듯 도커에 대한 이해가 부족했기에 먼저 docker를 공부했다.
참고 영상 https://www.youtube.com/watch?v=hWPv9LMlme8
Docker
버전 충돌을 막기 위해, 개발 환경의 대략적인 설계도/안내도의 역할을 하는 도구
이번 3-1 학기에서 윈도우 환경에 우분투 3가지 버전을 사용하였더니 충돌이 굉장히 많이 일어났다. 결국 맥과 윈도우 나눠서 진행했었다.
도커는 서비스마다 컨테이너를 구성하여 해당 서비스를 이용할 때 다른 버전과 충돌이 일어나지 않도록 해준다.
설계도/안내도 : Dockerfile
Dockerfile은 도커가 이미지라는 파일을 빌드할 때 어떻게 컨테이너를 구성할 지 미리 정의하는 파일이다. 따라서 기존 서비스에 투입되는 일이 생겨도 Dockerfile이 있다면 해당 서비스의 개발 환경을 이해할 수 있다.
설계도 연동 : docker-compose.yaml
docker-compose.yaml 파일은 dockerfile들을 빌드하고 생성된 이미지들을 연동해주는 거시적 설계도이다.
MacOS : docker compose same directory two instances 이슈 해결 방법
docker-compose --env-file=env up -d (env는 각자 설정)을 통해 빌드를 하게되면 현재 디렉토리 이름으로 프로젝트가 실행된다.
나와 동기 둘 다 같은 프로젝트 이름으로 도커에 올라가서 서버 실행/중지를 했을 때 서로 영향을 끼쳤던 것이다.
docker-compose --env-file=env --proejct-name='your prj name' up -d
위 커맨드를 통해 서로 다른 프로젝트 이름으로 서버를 실행했더니 문제없이 잘 돌아갔다 !
< docker ps 커맨드로 서로 다른 이름으로 실행 확인 >
'하루살이' 카테고리의 다른 글
[MAC] Symmetric Key 서명 검증이 가능 ? (0) | 2021.08.09 |
---|---|
[Cryptography] 타원곡선알고리즘 (0) | 2021.07.22 |
[Vue] Vue router ( + props 전달 ) (0) | 2021.07.13 |