이전 글, “Raspberry PI 에서 docker 설치와 실행하기을 참고하여 docker 설치를 완료하였다면 이번 글에서는 docker-compose 를 설치하는 방법입니다. 이미 다른 사이트에 자세한 방법이 나와 있으므로 해당 글을 번역한 수준일 수 있습니다.

※ 원문 Getting docker-compose on Raspberry Pi (ARM) the easy way (updated), Last visited 2018/02/01

AD

1. Github 에서 docker-compose source 를 다운 받자!

$ git clone https://github.com/docker/compose.git
$ cd compose
$ git checkout release

2. RPi 에 맞는 Dockerfile 선택

docker-compose source 에 보면 여러 개의 Dockerfile 이 있습니다. RPi 는 armhf 이 붙은 Dockerfile.armhf 파일을 사용해야 합니다.

  • 원문에선 파일 내용을 sed 를 이용해서 치환하라고 했는데 굳이 치환하지 않고 그대로 사용하면 됩니다.
  • 사용하는 Raspbian 버전이 Dockerfile.armhf 파일 내용과 다를 경우 Dockerfile.armhf 파일을 열고, “From” 행을 수정할 필요가 있습니다.
    $ diff -C0 Dockerfile.armhf.org Dockerfile.armhf
    *** Dockerfile.armhf.org	2018-06-14 18:00:15.209145525 +0900
    --- Dockerfile.armhf	2018-06-14 18:01:05.478736467 +0900
    ***************
    *** 1 ****
    ! FROM armhf/debian:wheezy
    --- 1 ----
    ! FROM armhf/debian:stretch

     

  • Dockerfile.armhf 내용을 보면 apt-get 을 이용해서 신규 package 설치가 필요하기 때문에 apt-get 옵션에 –force-yes 가 없는 경우, 해당 옵션을 추가합니다.

3. docker-compose source 에서 binary를 build

$ sudo docker build -t docker-compose:armhf -f Dockerfile.armhf .
$ docker run --rm --entrypoint="script/build/linux-entrypoint" -v $(pwd)/dist:/code/dist -v $(pwd)/.git:/code/.git "docker-compose:armhf"

원문에서는 build 할 때,  ‘sudo’ 가 빠져 있는데 sudo 가 없이 실행하면 apt-get 을 이용한 package 설치가 안되기 때문에 ‘sudo’ 로 실행해 주어야 합니다.

4. docker-compose binary 를 이동

$ sudo cp dist/docker-compose-Linux-armv7l /usr/local/bin/docker-compose
$ sudo chown root:root /usr/local/bin/docker-compose
$ sudo chmod 0755 /usr/local/bin/docker-compose
$ docker-compose version
docker-compose version 1.19.0-rc2, build dfcb02c
docker-py version: 2.7.0
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

 

AD