SoC : : Architecture/: : i.MX

Docker in i.MX

Jay.P Morgan 2024. 5. 11. 22:56

  0.  Intro

 

이 설정은 docker를 사용하여 격리된 환경에서 i.MX BSP를 구축하는 데 도움이 됩니다.

 

 

  1.  사전 설정

 

  1.1  Install Docker

  docker를 설치하는 방법에는 docker 스크립트를 사용하는 등 다양한 방법이 있습니다. 
 
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
 

 

  1.2  Run Docker without sudo

  sudo 없이 docker를 더 잘 사용하려면 사용자를 docker 그룹에 추가하세요.
 
  그룹 멤버십을 재평가하려면 로그아웃했다가 다시 로그인하세요.
 

 

  1.3  Set Docker to work with proxy

 
  ~/.docker/config.json에 docker 구성 파일을 만들고 다음을 입력합니다.
{
"proxies":
    {
     "default":
         {
          "httpProxy":"http://proxy.example.com:80"
         }
    }
}
 
※ Note: '예제' 프록시를 당신의 프록시 정보로 바꾸세요.

 

 

  1.4 Create Docker service

$ sudo mkdir -p /etc/systemd/system/docker.service.d
$ sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf​
  다음을 추가하세요.
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"
Environment="NO_PROXY=localhost,someservices.somecompany.com"​
  Restart Docker
  $ sudo systemctl daemon-reload
  $ sudo systemctl restart docker​
 

 

  2.  Build i.MX with Docker

.
├── Dockerfile-Ubuntu-18.04
├── Dockerfile-Ubuntu-20.04
├── Dockerfile-Ubuntu-22.04
├── README.md
├── docker-build.sh
├── docker-run.sh
├── env.sh -> imx-6.6.3-1.0.0/env.sh
└── imx-6.6.3-1.0.0
    ├── env.sh
    └── yocto-build.sh

 

 

  2.1  Set variables

  env.sh를 사용하여 빌드 설정에 대한 변수를 설정하세요. 더 큰 파티션에 현재 사용자가 소유한 작업 디렉토리를 생성했는지 확인하세요.

 
 

 

  2.2  Create a yocto-ready docker image

 

  운영 체제에 해당하는 Dockerfile과 관련된 하나의 인수를 사용하여 docker-build.sh를 실행합니다(: UbuntuDockerfile 버전 22.04).

  $ ./docker-build.sh Dockerfile-Ubuntu-22.04​
 

 

  2.3  Build the yocto imx-image in a docker container

  $ ./docker-run.sh ${IMX_RELEASE}/yocto-build.sh

  i.e IMX_RELEASE=imx-6.6.3-1.0.0​

 

  또는 docker 컨테이너 프롬프트로 이동하여 거기에서 빌드 스크립트를 실행합니다.

  $ ./docker-run.sh​
 
  실행 시 볼륨은 호스트에 빌드 아티팩트를 저장하는 데 사용됩니다. 

 

  {DOCKER_WORKDIR}을 기본 작업공간으로 사용

  {DOCKER_WORKDIR}/${IMX_RELEASE} yocto 빌드 스크립트를 컨테이너에 사용할 수 있도록 합니다.

  {HOME}은 현재 홈 사용자를 마운트하고 컨테이너 내부에서 사용자 설정(ssh , git config )을 사용할 수 있도록 합니다.