이슈사항

  1. Multi-arch 환경에서의 개발을 Docker로 가상환경을 구성하여 테스팅해야하는 상황
    1. 소프트웨어와 하드웨어의 호환성, 성능, 전력 소비에 큰 영향
    2. OS는 RHEL 9.4, CPU는 x86_64 아키텍처 환경의 서버에 어플리케이션 웹서버를 설치해야함
  2. docker에서 CPU아키텍처 호환성을 맞출 수 있는가?

이슈해결

  1. 간단한 CPU아키텍처 설명 ( x86 vs ARM )

    특징 x86 (AMD, Intel) ARM (Apple, Qualcomm, Samsung 등)
    명령어 집합 CISC (Complex Instruction Set Computer) RISC (Reduced Instruction Set Computer)
    전력 효율성 상대적으로 낮음 매우 우수함
    성능 고성능 데스크톱, 서버 최적화 모바일과 데스크톱 모두에서 강력한 성능
    소프트웨어 호환성 방대한 레거시 소프트웨어 지원 일부 플랫폼 전용 소프트웨어 필요 (호환성 계층 제공)
    칩 설계 방식 주로 범용 CPU 사용 (독립된 CPU, GPU, 메모리 등) 통합 SoC 구조로 설계 (CPU, GPU, 메모리 등을 하나로 통합)
  2. 아키텍처 호환은 Docker 멀티 아키텍처 지원을 통해 x86_64기반 이미지를 qemu 에뮬레이션으로 실행

    [참고자료]

    # Multi platform 
    docker buildx build --platform linux/amd64 -f ${DOCKERFILE} -t ${IMAGE_NAME} .
    
    # run
    docker run -d --platform linux/amd64 ${IMAGE_ID} /sbin/init
    
    # 호스트와 연결된 docker container에서 내부파일 Copy
    docker cp ${CONTAINER_ID}:${컨테이너 내부경로} ${호스트 경로} 
    # OR
    # 볼륨을 마운트하여 컨테이너 실행 시, CMD를 통해 install 진행
    docker run -v ${호스트 경로}:${컨테이너 내부경로} --platform linux/amd64 ${CONTAINER_ID}
    

    참고사진

    ARM 아키텍처에서 해당 이미지는 경고 표시

    ARM 아키텍처에서 해당 이미지는 경고 표시

    Shell에서 아키텍처가 정상적으로 확인

    Shell에서 아키텍처가 정상적으로 확인

해결해야 할 과제

내일 해야할 일

  1. 실제 컴퓨팅환경에서 설치
  2. 오프라인 환경에서의 모의
  3. 가이드 생성