Docker 19.03 on SLES (ppc64le)

Overview

ppc64le용 docker 19.03 설치하는 방법

+)
200330 현재는 yum repo에서 도커다운받으면 18.03이 가장 최신 버전임.
docker buildx 기능을 사용하려면 19 이상의 버전이 필요함
근데 아무리찾아봐도 도커19버전을 yum으로 설치할수있는 repo를 찾을수없었고
rpm 소스파일만 있었기에 그 방법을 기술해둡니다…

Prerequisites

  • SLES 또는 SUSE 15

STEP

1. RPM source 파일 다운로드

링크 : docker-19.03.1_ce-lp151.2.12.1 RPM for ppc64le

다운받아서 컴파일하기위해 한번 풀어준다

$ rpm -Uvh https://download.opensuse.org/ports/update/leap/15.1/oss/src/docker-19.03.1_ce-lp151.2.12.1.src.rpm

2. 컴파일

위 과정을 거치면 빌드할 rpm이 나온다.

.../SPEC 밑의 rpm을 빌드해주면되는데 os마다 SPEC폴더의 위치가 다른것같다.

find / -name SPEC으로 찾아보자!

$ cd /usr/src/packages/SPEC

컴파일은 rpmbuild로 한다.

$ rpmbuild --bb docker…..rpm

무턱대고 rpmbuild를 하면 당연히 에러가 발생한다.
rpmyum이나 apt-get과 달리 dependency가 없으면 빌드도 설치도 하지 못한다.
그래서 수작업으로 모든 의존성파일들을 설치해주어야한다.

다행히 모든 의존성파일들은 위의 다운로드페이지에서 찾을 수 있다.
일단 먼저 rpmbuild를 한 뒤에 문제를 일으키는 dependency들만 골라서 다운받도록 하자.

3. Dependency download

다른것들은 그냥 눌러서 os사양에 맞게 rpm으로 설치해주면되지만 주의해야할 점들이 있다.

뒤에 특정 버전이 적혀있는 경우

꼭 해당 버전으로만 다운받아줘야한다.

  • containerd-git = 894b81a4b802e4eb2a91d1ce216b8817763c29fb
  • docker-libnetwork-git = fc5a7d91d54cc98f64fc28f9e288b46a0bee756c
  • docker-runc-git = 425e105d5a03fabd737a126ad93d62a9eeede87f
    요 세개를 주의해서 다운받아준다.

go언어는 기본 repo에 없음

OpenSUSE download페이지에서 os버전에 따라 설치를 진행해준다.

# For SLE 15 run the following as root:
$ zypper addrepo https://download.opensuse.org/repositories/devel:languages:go/SLE_15/devel:languages:go.repo
$ zypper refresh
$ zypper install go

4. 다시 빌드

모든 의존성파일이 설치되었으면 정상적으로 rpmbuild가 종료될것이다.

5. docker 설치

그럼 ../RPMS/ppc64le 폴더로 이동하자
빌드가 완료된 rpm파일이 있을것

rpm -Uvh로 rpm설치를 진행해주면 도커설치가 완료된다!

Appendix. docker buildx

해당 커맨드는 도커 19에서도 실험적인 기능이라 사용하려면 추가로 설정을 더 해줘야한다.

docker의 config.json파일에 experimentalenabled로 설정해주면 된다.

vim .docker/config.json
{
        "experimental": "enabled",
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "dddddddddddddddddddddddddd=="
                }
        },
        "HttpHeaders": {
                "User-Agent": "Docker-Client/19.03.5 (linux)"
        }
}

댓글남기기