작업공간

[docker] compose same directory multiple instances 이슈 본문

하루살이

[docker] compose same directory multiple instances 이슈

씨코더 2021. 7. 27. 16:49

  동기와 인턴십을 진행 중에 같은 개발 서버가 주어졌고 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