인프런 커뮤니티 질문&답변

gang ho lee님의 프로필 이미지
gang ho lee

작성한 질문수

따라하며 배우는 MySQL on Docker

Custom Docker Image 생성

[Dockerfile] RUN yum install

작성

·

1.6K

0

안녕하세요! 강의 수강하고 있는 학생입니다!

강의 수강하면서 차례대로 따라해보고 있는 와중에, Dockerfile 이미지 빌드가 작동하지 않아 질문 올립니다. (구글링해도.. 해결이... 잘..)

 

우선, 수업과 동일하게

수업자료에 올라와있는 파일을 폴더에 1개의 폴더에 넣고, Dockerfile을 build 하였습니다.

스크린샷 2023-02-04 오후 12.33.54.png

저의 실습환경:

MacOS M1, Docker 데스크탑 설치 후, 실습 진행 중(해당 강의 이전 내용들은 문제없이 따라갈 수 있었습니다.)

스크린샷 2023-02-04 오후 12.44.37.png

스크린샷 2023-02-04 오후 12.44.31.png

 

문제는 RUN yum install -y perl.x86_64 ...... openssl.x86_64 에 해당하는 라인이 실행이 안되는 문제를 겪고 있습니다. (즉, No package available)

스크린샷 2023-02-04 오후 12.45.51.png

제가 시도해본 방법은 다음과 같습니다. (아래의 시도들은 전부 실패하였습니다.)

  1. RUN yum install -y epel-release 하고, 해당 문제라인 코드 실행

  2. RUN yum install perl하고, 해당 문제라인 코드 실행

  3. yum clean all & yum clean metadata 하고, 해당 문제라인 코드 실행

  4. 원본 Dockerfile 에서 FROM centos:8 로 수정하여 실행

  5. RUN rpm install -y perl.x86_64 ...... openssl.x86_64 실행 (rpm 명령어로 실행)

  6.  

혹시 방법이 있으시면 알려주시면 수업 내용을 따라하는데 도움이 될 것 같습니다. ㅠㅠ ...

 

 

답변 4

1

제 컴퓨터 os는 ubuntu이고

dockerfile에 yum 명령어 실행전에 아래 명령어 추가하니 정상적으로 이미지 빌드 되었습니다

 

RUN sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-* \
    && sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

 

CentOS의 경우(출처. chat-gpt)

CentOS는 기본적으로 여러 미러 서버를 운영하고 있으며, 사용자가 접속할 때 자동으로 가장 빠르고 가까운 서버를 선택하도록 설계되어 있습니다. yum이 사용하는 리포지토리 설정 파일에서 mirrorlist는 이런 미러 서버 목록을 의미하며, 기본적으로 사용자가 접속할 때 이 목록에서 최적의 서버를 선택하여 패키지를 다운로드합니다.

하지만, 경우에 따라 특정 미러 서버에 문제가 있거나, 네트워크 연결이 원활하지 않을 때, 원본 리포지토리 서버(vault.centos.org)로 직접 연결하여 문제를 해결할 수 있습니다. 이 경우 미러 서버를 우회하고 원본 서버에서 직접 데이터를 가져오게 됩니다.

 

해당 명령어는 CentOS의 yum 설정 파일에서 mirrorlist를 주석 처리하고, baseurlvault.centos.org로 설정하여, 미러 서버가 아닌 CentOS의 원본 리포지토리 서버를 사용하도록 변경하는 것입니다. 이 방법은 네트워크 문제나 미러 서버 장애 시 유용하게 사용할 수 있습니다.

 

감사합니다. 진짜.. 와.. 생 지룰을 다했는데도 안되던데 짱이세요

0

도커이미지에를 ubuntu에서 진행하려고 하는데 yum을 깔았다가 docker demon이랑 충돌나서 제가 가지고 있는 도커이미지 다 날렷네요.. ㅋㅋㅋㅋㅋㅋㅋㅋㅋ yum을 설치하면 진행되는 것 같긴합니다.

 

0

ㅜㅜ 저 사이트에서 주는 url을 가지고 했는데도 해결이 안됩니다 계속 Not Found가 뜨는데 혹시 질문자분 해결하셨다면 알려주실 수 있을까요?

제 mac은 m1이라 cpu계열이 x86_64 계열이 아니여서 안되는거 같은데 정확히 모르겠습니다 알려주세요!


어! 해결했습니다

docker build -t mysql57:0.0 --platform linux/amd64 .

도커파일 내에 라이브러리가 x86 계열로 되어있어

--platform 뒤에 아키텍처를 명시해주면 됩니다.

(저는 m1칩셋입니다)

0

김영헌님의 프로필 이미지
김영헌
지식공유자

안녕하세요.

올려주신 내용을 보니 Yum repo 설정이 먼가 다르게 세팅이 되어 있는 듯 합니다.

제가 테스트했을 때 참조하는 repo url과 사용하시는 yum repo url이 달라서 필요한 패키지를 가져오지 못하고 있는 상황으로 보입니다.

image

혹시 아래 url에 있는 내용이 도움이 될 수도 있을 거 같아 공유드립니다.

https://linuxhostsupport.com/blog/how-to-set-up-and-use-yum-repositories-on-centos-7/

 

gang ho lee님의 프로필 이미지
gang ho lee

작성한 질문수

질문하기