- 0. 문제
- 1. 원인 : 우분투 버전문제라는 듯
22.04를 쓰면 해결된다는데, 우분투를 버전별로 하나씩 가지고 있을 순 없으니까 도커를 이용할 것이다.
- 2. 해결
도커파일로 만든다.
FROM ubuntu:22.04
WORKDIR /app
COPY ./calc /app/calc
RUN chmod +x /app/calc
CMD ["/bin/bash"]
실행
docker build -t ubuntu-22.04 .
docker run -it ubuntu-22.04
- 3. Troubleshooting
실행 시 여전히 에러 발생 : No such file or directory. 파일이 있는데도 없다고 나옴.
22.04는 기본적으로 64비트 라이브러리들이 깔리는데, calc파일이 32비트 파일이라 여전히 실행이 안된다.
32bit와 관련된 라이브러리를 설치해준다.
apt-get update
dpkg --add-architecture i386
apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
기본적으로 root이기때문에 sudo안먹음.
- 4. 결론
3번 내용 Dockerfile에 추가
FROM ubuntu:22.04
WORKDIR /app
COPY ./calc /app/calc
RUN apt-get update
RUN dpkg --add-architecture i386
RUN apt-get update
RUN apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 -y
RUN chmod +x /app/calc
CMD ["/bin/bash"]