본문 바로가기

Docker

(에러)bash: /usr/bin/docker-compose: /usr/bin/python: bad interpreter: No such file or directory

docker-compose up 할 때

 

이러한 에러가 나올 때 어떻게 해야할까?

 

저 위의 에러는 간단히 말하면 /usr/bin/python파일이 없다라는 의미이다.

하지만, 우리가 docker를 쓰는 이유는 환경설정하기 싫고 docker 안에서 가상환경을 설치하고 싶은 것 때문이지 않나?

 

따라서 현재 local에서 가지고 있는 환경과는 독립적이라고 생각했기 때문에, 저런 에러가 왜 뜨는지 궁금했다.

그래서 왜 저런 에러가 뜨는지를 알아보자.

 

일단 docker-compose up이 아니라 docker-compose --version할 때에도 위 같은 에러가 뜬다.

그렇다면 image 빌드할 때 local python이 필요한게 아니라 docker-compose에 문제가 있음을 알 수 있다.

 

그래서 일단 /usr/bin/으로 가서 python이 없으니 python link를 만들어 줬다.

 

sudo ln -s python3.5 python

 

그런 다음 docker-compose를 실행해보니,

 

 

이렇게 뜬다.

 

이렇게 뜨는 정확한 이유는 잘 모르겠지만, 구버전의 충돌이라고 말한다.

즉, 새로운 버전으로 docker-compose를 설치하면 됬었다.

 

sudo apt-get install docker-compose # 구버전으로 install 위와 같은 에러발생
# 위와 같이 설치하면 안되고 아래와 같이 설치.
# 설치하기전에
# sudo apt remove docker-compose

# 버전은 docker github에 나와있으니 참고
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose # 안해주면 실행x, which도 안보임.
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

sudo docker-compose up

 

하면 /usr/bin/python link가 없어도 아래와 같이 잘 나오는 것을 확인 할 수 있다.

 

 

구버전이 왜 저런 충동을 일으키는 지는 잘 모르겠지만, latest 버전을 설치함으로써 해결되고, 또한 local 환경에 상관없이 docker conatiner를 독립적으로 실행시킬 수 있는 확신을 얻었다.